Messages in this thread | | | Date | Wed, 21 Jul 2010 00:17:40 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH 00/10] x86, xsave: some code cleanups and reworks |
| |
On Wed, Jul 21, 2010 at 12:07:29AM +0400, Cyrill Gorcunov wrote: ... > > > > But first question is, is it always !smp_processor_id()? At least > > current implementation indicates this: > > > > I guess so, since it's assigned from boot_cpu_id iirc >
well, not true, this id is being set in setup_per_cpu_areas() note the snippet
if (cpu == boot_cpu_id) switch_to_new_gdt(cpu);
but cycle of assignment is done over all possible cpus so smp_processor_id will be = 0 for BP but definitely it's confusing and better to check for BP via explicit cpu == boot_cpu_id I think. Though I might be missing something.
> > void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) > > { > > BUG_ON(c == &boot_cpu_data); > > ... > > > > with: > > > > #define boot_cpu_data cpu_data[0] > > > > ... which is valid for 32 and 64 bit. > > -- Cyrill
| |