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