In XEN 3.0.3, some functions have prototypes incompatible with their body: - prototype fct "asmlinkage void do_nmi(struct cpu_user_regs *regs)" in svm.c:57 is incompatible with body in traps.c:1608 - same for fct "do_memory_op" in hypercall.h:46 and memory.c:511 resp. - same for functions "cyrix_init_mtrr", "centaur_init_mtrr" and "amd_init_mtrr" perhaps due to porting from x86 to x86_64... Also, it seems that in the declaration part (file vmx.c:1966) of the following fct, some extern are missing, and that the functions smp_event_check_interrupt and smp_call_function_interrupt are also incompatible with their body (in file smp.c:326 and smp.c:332) static inline void vmx_vmexit_do_extint(struct cpu_user_regs *regs) { unsigned int vector; int error; asmlinkage void do_IRQ(struct cpu_user_regs *); fastcall void smp_apic_timer_interrupt(struct cpu_user_regs *); extern fastcall void smp_event_check_interrupt(void); fastcall void smp_invalidate_interrupt(void); extern fastcall void smp_call_function_interrupt(void); fastcall void smp_spurious_interrupt(struct cpu_user_regs *regs); fastcall void smp_error_interrupt(struct cpu_user_regs *regs); ... Armand _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 27/4/07 09:23, "PUCCETTI Armand" <armand.puccetti@cea.fr> wrote:> Also, it seems that in the declaration part (file vmx.c:1966) of the > following fct, some > extern are missing, and that the functions smp_event_check_interrupt and > smp_call_function_interrupt > are also incompatible with their body (in file smp.c:326 and smp.c:332)Extern is optional on function prototypes. Asmlinkage defines away to nothing. So there''s a lack of consistency, but nothing incorrect. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser a écrit :> > On 27/4/07 09:23, "PUCCETTI Armand" <armand.puccetti@cea.fr> wrote: > > >> Also, it seems that in the declaration part (file vmx.c:1966) of the >> following fct, some >> extern are missing, and that the functions smp_event_check_interrupt and >> smp_call_function_interrupt >> are also incompatible with their body (in file smp.c:326 and smp.c:332) >> > > Extern is optional on function prototypes. Asmlinkage defines away to > nothing. So there''s a lack of consistency, but nothing incorrect. > > -- Keir > > > >You''re quite right on the first point. However the incompatible prototypes might lead to errors if some of these functions are called. Armand _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 27/4/07 16:51, "PUCCETTI Armand" <armand.puccetti@cea.fr> wrote:> You''re quite right on the first point. However the incompatible prototypes > might lead to errors if some of these functions are called.__attribute__((regparm(0))) is the default for i386 anyway. Really asmlinkage should define to nothing for all x86 architectures, and we can just kill off all use of asmlinkage under arch/x86. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser wrote:> __attribute__((regparm(0))) is the default for i386 anyway. Really > asmlinkage should define to nothing for all x86 architectures, and we can > just kill off all use of asmlinkage under arch/x86.We don''t use regparm(3) inside Xen? Works nicely for the kernel. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 27/4/07 17:18, "Jeremy Fitzhardinge" <jeremy@goop.org> wrote:> Keir Fraser wrote: >> __attribute__((regparm(0))) is the default for i386 anyway. Really >> asmlinkage should define to nothing for all x86 architectures, and we can >> just kill off all use of asmlinkage under arch/x86. > > We don''t use regparm(3) inside Xen? Works nicely for the kernel.What''s the speedup? K. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser wrote:>> We don''t use regparm(3) inside Xen? Works nicely for the kernel. >> > > What''s the speedup? >Mumble mumble. Don''t know. It''s been that way for quite a long time now. But it makes the generated code moderately smaller. -freg-struct-return helps too (about 2k of text saved on the kernel, which is fairly piddling). J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel