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

From: Heiko Carstens
Date: Tue Feb 07 2006 - 23:39:00 EST


> > I am looking at 2.6.16-rc1 and I don't see cpu_possible_map
> > being set in setup_smp()
>
> You're right, my bad. I looked at setup_smp() and how it walked through
> every CPU in the firmware, but it doesn't actually ever set the possible
> map, it fills in just hwrpb_cpu_present_mask (which is then then only used
> _later_ to set cpu_possible_map for some silly reason).
>
> As far as I can tell, "hwrpb_cpu_present_mask" is just wrong, and the code
> _should_ be using cpu_possible_map.

We still have this one in init/main.c:

/* Sets up cpus_possible() */
smp_prepare_cpus(max_cpus);

That is actually why s390 is doing this in smp_prepare_cpus. We also use the
passed value of max_cpus to set the number of bits in cpu_possible_map
accordingly. This isn't possible anymore if this should be done in setup_arch.

So it looks like we have to switch to setup_arch and set NR_CPUS bits in
cpu_possible_map on s390.

Heiko
-
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/