Re: [RFC][PATCH 3/3] x86: make MP a required-feature on 64-bit

From: Borislav Petkov
Date: Fri Jun 20 2014 - 16:00:41 EST


On Fri, Jun 20, 2014 at 11:54:14AM -0700, H. Peter Anvin wrote:
> No, it has to be cpu_has() -- the dynamic, CPU-specific version.

Ok, sry, but I have to ask: why cpu_has? Why not boot_cpu_has and thus
static_cpu_has_safe?

At
if (this_cpu->c_init)
this_cpu->c_init(c)

time in identify_cpu() when we execute init_amd(), we have run
generic_identify(c) which would have done get_cpu_cap() already and
boot_cpu_data.x86_capability[1] would have cpuid_edx(0x80000001) where
X86_FEATURE_MP bit would be set too.

Oh, and this happens after the first clearing

/* Clear/Set all flags overriden by options, after probe */

but this won't clear it. And we're before the building of the common
feature set at the end of identify_cpu(). But even that doesn't matter
in this case because this bit will be set in CPUID on every core and
thus remain set in boot_cpu_data.

Bah, so what am I missing?

Thanks.

--
Regards/Gruss,
Boris.

Sent from a fat crate under my desk. Formatting is fine.
--
--
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/