Message ID | 20241220213711.1892696-3-sohil.mehta@intel.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Prepare for new Intel family models | expand |
On 12/20/24 13:36, Sohil Mehta wrote: > The MP specification version 1.4 references the i486 and early Pentium > processors in family 5. Can you please elaborate on how this reference is relevant to the patch at hand? > However, all processors starting with family 6 likely do not need the > 10 msec INIT delay. The omission of the Pentium 4s (family 15) seems > like an oversight in the original check. > > With some risk, choose a simpler check and extend the quirk to all > recent and upcoming Intel processors. I'm struggling to follow this a bit. I think these are the facts that matter: * init_udelay=0 means "no quirk" * Modern CPUs don't have the quirk * The current check says "only family 6 is modern" * Family 15 is _probably_ modern and just forgotten about And this is what you're doing in the end: Consider everything PPro and later to be modern, including all of families 6, 15 and the new 18/19 CPUs. Right?
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index b5a8f0891135..6c98e9178963 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -668,7 +668,7 @@ static void impress_friends(void) * But that slows boot and resume on modern processors, which include * many cores and don't require that delay. * - * Cmdline "init_cpu_udelay=" is available to over-ride this delay. + * Cmdline "cpu_init_udelay=" is available to override this delay. * Modern processor families are quirked to remove the delay entirely. */ #define UDELAY_10MS_DEFAULT 10000 @@ -690,9 +690,9 @@ static void __init smp_quirk_init_udelay(void) return; /* if modern processor, use no delay */ - if (((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 == 6)) || - ((boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) && (boot_cpu_data.x86 >= 0x18)) || - ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && (boot_cpu_data.x86 >= 0xF))) { + if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL && boot_cpu_data.x86_vfm >= INTEL_PENTIUM_PRO) || + (boot_cpu_data.x86_vendor == X86_VENDOR_HYGON && boot_cpu_data.x86 >= 0x18) || + (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && boot_cpu_data.x86 >= 0xF)) { init_udelay = 0; return; }
The MP specification version 1.4 references the i486 and early Pentium processors in family 5. However, all processors starting with family 6 likely do not need the 10 msec INIT delay. The omission of the Pentium 4s (family 15) seems like an oversight in the original check. With some risk, choose a simpler check and extend the quirk to all recent and upcoming Intel processors. While at it, fix the command line parameter comment to match with the actual name. Signed-off-by: Sohil Mehta <sohil.mehta@intel.com> --- arch/x86/kernel/smpboot.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)