Messages in this thread | | | Date | Mon, 04 Jun 2012 22:23:15 +0530 | From | "Srivatsa S. Bhat" <> | Subject | Re: [PATCH 01/27] smpboot: Provide a generic method to boot secondary processors |
| |
On 06/04/2012 06:48 PM, Thomas Gleixner wrote:
> On Mon, 4 Jun 2012, Srivatsa S. Bhat wrote: >> On 06/04/2012 04:02 PM, Thomas Gleixner wrote: >> I can add the prototype w/o the __weak prefix and the #ifndef magic in >> include/linux/smpboot.h (which I will, and include it in v2). >> >> However, I can't get rid of the #ifndef magic in kernel/smpboot.c because >> it will cause build failures on x86. >> >> I addressed this same issue in another email: >> https://lkml.org/lkml/2012/6/3/33 > >> In short, to avoid breaking build on x86. >> We wanted to follow the x86 convention of having static inline functions in >> arch/x86/include/asm/smp.h and use the smp_ops structure to route the calls >> to x86 or xen as appropriate (see patch 4 in this series). > > Oh no. That's not really a good argument. > > There is no reason why this _must_ be an inline function on x86. It > can be a proper function in arch/x86/kernel/smpboot.c as well. >
Ok, I'll adopt this approach.
> The alternative solution is to generalize the smp_ops approach and get > rid of the weak implementations completely. >
Ok, but this would mean changes to all architectures, which could be avoided.
One reason why x86 uses that smp_ops structure is because it decides the implementation routines between x86 and xen at run-time. Such requirements don't exist on other architectures, from what I saw (except sparc32).
So I'll stick with the former approach of adding a proper function for x86, and retaining the default weak implementations in kernel/smpboot.c.
Regards, Srivatsa S. Bhat
| |