[PATCH 0/4] CPU hotplug support for Versatile platforms

Will Deacon will.deacon at arm.com
Wed Sep 22 13:45:15 EDT 2010


Hi Rob,

> On 09/17/2010 06:01 PM, Russell King - ARM Linux wrote:
> > On Fri, Sep 17, 2010 at 04:21:42PM -0500, Rob Herring wrote:
> >> The platform specific SMP code is one area that prevents supporting a
> >> single kernel image. All the functions in platsmp.c need to be converted
> >> to function pointers and a lot of that code is pretty simliar across
> >> platforms. What's needed is a common platsmp.c with something like
> >> platform specific smp_ops like PowerPC. I think addressing that first
> >> would simplify this restructuring as you are doing some of what's
> >> needed, but you introducing new namespace problems like platform_cpu_*.
> >
> > The split between smp.c and platsmp.c is there to allow different SMP
> > implementations from the standard ARM Ltd SMP implementation (and there
> > will be different implementations.)
> >
> > Just because all the SMP implementations that are currently merged are
> > the standard ARM Ltd SMP implementation does not mean that we should
> > move stuff out of platsmp.c into the generic code.
> 
> Agreed, but the interface between smp.c and platsmp.c does not allow for
> more than one SMP platform in a single image. Granted, there are plenty
> of other obstacles to multi-platform kernel binaries, but this one would
> be good to address before there are a bunch of SMP platforns rather than
> after. Ideally, platsmp.c could be common, but optional for platforms
> that are significantly different.
> 
> The idea I have is add a smp_init function ptr to struct mdesc which
> would fill in an smp_ops struct of function pointers and call
> set_cpu_possible for each core. This would replace the direct
> smp_init_cpus call.

I think this is a separate patch. Whilst this sort of stuff is in the
back of my mind when doing BSP stuff, it's not the primary concern of
these patches. The platform_cpu_* namespace exists in the kernel already
and is not something I have introduced [see mach-realview/hotplug.c].

The main aim of these patches is to allow multiple variants (core tiles)
to exist for the versatile express without having to have separate machine
IDs.

Cheers,

Will





More information about the linux-arm-kernel mailing list