Re: [PATCH] percpu data: only iterate over possible CPUs

From: Andrew Morton
Date: Wed Feb 08 2006 - 22:04:18 EST


Rik van Riel <riel@xxxxxxxxxx> wrote:
>
> On Sun, 5 Feb 2006, Linux Kernel Mailing List wrote:
>
> > [PATCH] percpu data: only iterate over possible CPUs
>
> This sched.c bit breaks Xen, and probably also other architectures
> that have CPU hotplug. I suspect the reason is that during early
> bootup only the boot CPU is online, so nothing initialises the
> runqueues for CPUs that are brought up afterwards.
>
> I suspect we can get rid of this problem quite easily by moving
> runqueue initialisation to init_idle()...

We've hit this snag with a few architectures. They're setting up
cpu_possible_map too late. It's never been clearly defined.

sched_init() is called here:

asmlinkage void __init start_kernel(void)
{
...
printk(linux_banner);
setup_arch(&command_line);
setup_per_cpu_areas();
smp_prepare_boot_cpu();
sched_init();

Users of __GENERIC_PER_CPU definitely need cpu_possible_map to be initialised
by the time setup_per_cpu_areas() is called, so I think it makes sense to
say "thou shalt initialise cpu_possible_map in setup_arch()".

I guess Xen isn't doing that. Can it be made to?
-
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/