x86_32_early_logical_apicid() -> one warning per CPU on late-determined BIGSMP systems

From: Jan Beulich
Date: Thu Aug 11 2011 - 08:48:12 EST


Tejun,

with generic_processor_info() getting run before generic_bigsmp_probe(),
the values obtained by the former though apic->x86_32_early_logical_apicid()
(still pointing to default_x86_32_early_logical_apicid() at that time) and
stored into early_per_cpu(x86_cpu_to_logical_apicid, cpu) can't possibly
match the ones obtained by setup_local_APIC() (since only at this point
apic->x86_32_early_logical_apicid() points to bigsmp_early_logical_apicid()),
thus causing the warning there to generally trigger on each CPU.

Except for removing the warning, all other possible solutions to this that
I can think of seem ugly to me (i.e. somehow re-initializing
x86_cpu_to_logical_apicid for all CPUs), but I wonder why setting up
x86_cpu_to_logical_apicid needs to be done this early if prior to
setup_local_APIC() doing it a second time the value can't be used for
anything anyway (because it could validly be BAD_APICID). If there
aren't any future plans (honestly, I can't really make much sense of
commit acb8bc09c6185e4d3d582d0076aaa6a89f19d8c5's comment),
perhaps x86_32_early_logical_apicid() could get removed again?

Jan

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