Re: [patch 00/18] SMP: Boot and CPU hotplug refactoring - Part 1

From: James Bottomley
Date: Fri Apr 20 2012 - 10:27:34 EST


On Fri, 2012-04-20 at 13:05 +0000, Thomas Gleixner wrote:
> Dear all,
>
> I'm working on refactoring the SMP boot and CPU hotplug implementation.
>
> The current code has evolved over time into a conglomerate of
> warts. My main goals are to:
>
> - reduce the architecture code by moving repeating constructs to the
> core
>
> - redesigning the handling of per cpu threads. There is no point to
> tear down the threads just to create them again.
>
> - restructuring the notifier facility into a proper tree with
> dependencies to avoid the gazillion of callbacks and moving
> setup/teardown code into the context of the upcoming/dying cpu
>
> The motivation behind this work is the cpu hotplug nightmare which we
> are facing in the RT kernel and the requests from several groups
> (e.g. ARM) to make hotplug more lightweight and faster.
>
> This first part moves the idle thread management for non-boot cpus
> into the core. fork_idle() is called in a workqueue as it is
> implemented in a few architectures already. This is necessary when not
> all cpus are brought up by the early boot code as otherwise we would
> take a ref on the user task VM of the thread which brings the cpu up
> via the sysfs interface.
>
> This converts all architectures except m32r, mn10300, tile and UM to
> the new core facility. These architecture are calling fork_idle() in
> the very early boot code in smp_prepare_cpus() for unknown reasons.
> I haven't analyzed yet, whether this is on purpose or can be moved
> over to the generic facility. It'd be nice if the responsible maintainers
> could look into that as well.

Do you have a git tree we can try? If you do, I promise to test as soon
as I can get my parisc systems nursed back to health after their
apparently trying voyage across the atlantic.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/