summaryrefslogtreecommitdiffstats
path: root/0001-Add-support-for-deprecating-processors.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-Add-support-for-deprecating-processors.patch')
-rw-r--r--0001-Add-support-for-deprecating-processors.patch303
1 files changed, 303 insertions, 0 deletions
diff --git a/0001-Add-support-for-deprecating-processors.patch b/0001-Add-support-for-deprecating-processors.patch
new file mode 100644
index 000000000..d16c1459f
--- /dev/null
+++ b/0001-Add-support-for-deprecating-processors.patch
@@ -0,0 +1,303 @@
+From 8d47dd05633e96999b9bcff01544a19dec69094c Mon Sep 17 00:00:00 2001
+From: Laura Abbott <labbott@redhat.com>
+Date: Wed, 13 Nov 2019 14:44:30 -0500
+Subject: [PATCH] Add support for deprecating processors
+
+Message-id: <20191113144431.9403-4-labbott@redhat.com>
+Patchwork-id: 286081
+O-Subject: [ARK INTERNAL PATCHv2 3/4] [redhat] Add support for deprecating processors
+Bugzilla:
+RH-Acked-by: Don Zickus <dzickus@redhat.com>
+RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
+RH-Acked-by: Jiri Benc <jbenc@redhat.com>
+
+This is the squashed version of the following patches
+modifed to use the new CONFIG_RH_DISABLE_DEPRECATED option
+
+add rh_check_supported
+
+Message-id: <1525313397-75200-1-git-send-email-darcari@redhat.com>
+Patchwork-id: 212189
+O-Subject: [RHEL8.0 BZ 1565717 v2] x86: add rh_check_supported
+Bugzilla: 1565717
+RH-Acked-by: Steve Best <sbest@redhat.com>
+RH-Acked-by: Mikulas Patocka <mpatocka@redhat.com>
+
+Description:
+
+Add code to verify that the booted x86 processor is supported by
+Red Hat. In cases where the processor is not supported a critical
+message is logged.
+
+Initially the supported set of processors for RHEL8 remains the same
+as RHEL7.
+
+Bugzilla: http://bugzilla.redhat.com/1565717
+Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=15966242
+
+Test: Booted brew build on supported (Haswell) and unsupported processor (CNL)
+ and achieved desired results.
+
+Upstream: RHEL Only
+
+Cc: David Arcari <darcari@redhat.com>
+Cc: Mikulas Patocka <mpatocka@redhat.com>
+Cc: Dave Young <dyoung@redhat.com>
+Cc: Josh Poimboeuf <jpoimboe@redhat.com>
+Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
+
+update rh_check_supported processor list
+
+Message-id: <1530618602-17477-1-git-send-email-darcari@redhat.com>
+Patchwork-id: 223452
+O-Subject: [RHEL8.0 BZ 1595918] x86: update rh_check_supported processor list
+Bugzilla: 1595918
+RH-Acked-by: Jarod Wilson <jarod@redhat.com>
+RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
+RH-Acked-by: Steve Best <sbest@redhat.com>
+
+Bugzilla: http://bugzilla.redhat.com/1595918
+Upstream Status: RHEL_only
+Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16916208
+Tested: Verified on a varity of supported and unsupported Intel and AMD systems.
+ Results as expected.
+
+In RHEL8, we are marking some of the older processors as unsupported. No code
+is being removed; however, the older processors are not supported and as such
+are not candidates for certification.
+
+Cc: David Arcari <darcari@redhat.com>
+Cc: Prarit Bhargava <prarit@redhat.com>
+Cc: Steve Best <sbest@redhat.com>
+Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
+Signed-off-by: Jakub Racek <jracek@redhat.com>
+refresh: rename FAM6_ATOM again, see f2c4db1bd
+
+mark whiskey-lake processor supported
+
+Message-id: <1533125629-12870-1-git-send-email-darcari@redhat.com>
+Patchwork-id: 225809
+O-Subject: [ BZ 1609604] mark whiskey-lake processor supported
+Bugzilla: 1609604
+RH-Acked-by: Steve Best <sbest@redhat.com>
+RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
+RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
+
+Bugzilla: http://bugzilla.redhat.com/1609604
+Build Info: https://brewweb.devel.redhat.com/taskinfo?taskID=17474338
+Upstream Status: RHEL Only
+Tested: Successful excecution of platform-test suite.
+
+Whiskey Lake is cpu model 142 with stepping 11. Stepping > 11 for cpu model
+142 is not supported.
+
+For model 158, the highest supported stepping is 10.
+
+Cc: Prarit Bhargava <prarit@redhat.com>
+Cc: David Arcari <darcari@redhat.com>
+Cc: Dave Young <dyoung@redhat.com>
+Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
+
+mark intel knights landing and knights mill unsupported
+
+Message-id: <1533580277-126323-1-git-send-email-darcari@redhat.com>
+Patchwork-id: 226187
+O-Subject: [RHEL8.0 BZ 1610493] mark intel knights landing and knights mill unsupported
+Bugzilla: 1610493
+RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
+RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
+RH-Acked-by: Steve Best <sbest@redhat.com>
+
+Bugzilla: http://bugzilla.redhat.com/1610493
+Build Info: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=17625348
+
+Tested: verified on KNL/KNM system
+Upstream Status: RHEL Only
+Depends: http://bugzilla.redhat.com/1609604
+
+We are marking KNL/KNM processors as unsupported. No code is being removed;
+however, the older processors are not supported and as such are not
+candidates for certification.
+
+Upstream Status: RHEL only
+Cc: Prarit Bhargava <prarit@redhat.com>
+Cc: David Arcari <darcari@redhat.com>
+Cc: Dave Young <dyoung@redhat.com>
+Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
+---
+ arch/x86/kernel/cpu/common.c | 1 +
+ arch/x86/kernel/setup.c | 132 ++++++++++++++++++++++++++++++++++-
+ 2 files changed, 132 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
+index bed0cb83fe24..a15622e0d79f 100644
+--- a/arch/x86/kernel/cpu/common.c
++++ b/arch/x86/kernel/cpu/common.c
+@@ -1205,6 +1205,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
+ cpu_detect(c);
+ get_cpu_vendor(c);
+ get_cpu_cap(c);
++ get_model_name(c); /* RHEL: get model name for unsupported check */
+ get_cpu_address_sizes(c);
+ setup_force_cpu_cap(X86_FEATURE_CPUID);
+
+diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
+index 4b3fa6cd3106..e39ec0f88d28 100644
+--- a/arch/x86/kernel/setup.c
++++ b/arch/x86/kernel/setup.c
+@@ -44,6 +44,7 @@
+ #include <asm/unwind.h>
+ #include <asm/vsyscall.h>
+ #include <linux/vmalloc.h>
++#include <asm/intel-family.h>
+
+ /*
+ * max_low_pfn_mapped: highest directly mapped pfn < 4 GB
+@@ -747,7 +748,132 @@ static void __init trim_low_memory_range(void)
+ {
+ memblock_reserve(0, ALIGN(reserve_low, PAGE_SIZE));
+ }
+-
++
++static bool valid_amd_processor(__u8 family, const char *model_id)
++{
++ bool valid;
++
++ switch(family) {
++ case 0x15:
++ valid = true;
++ break;
++
++ case 0x17:
++ valid = strstr(model_id, "AMD EPYC 7");
++ break;
++
++ default:
++ valid = false;
++ break;
++ }
++
++ return valid;
++}
++
++static bool valid_intel_processor(__u8 family, __u8 model, __u8 stepping)
++{
++ bool valid;
++
++ if (family != 6)
++ return false;
++
++ switch(model) {
++ case INTEL_FAM6_ATOM_GOLDMONT_D:
++ case INTEL_FAM6_ATOM_GOLDMONT_PLUS:
++
++ case INTEL_FAM6_BROADWELL:
++ case INTEL_FAM6_BROADWELL_G:
++ case INTEL_FAM6_BROADWELL_X:
++ case INTEL_FAM6_BROADWELL_D:
++
++ case INTEL_FAM6_HASWELL:
++ case INTEL_FAM6_HASWELL_G:
++ case INTEL_FAM6_HASWELL_L:
++ case INTEL_FAM6_HASWELL_X:
++ valid = true;
++ break;
++
++ case INTEL_FAM6_KABYLAKE:
++ valid = (stepping <= 10);
++ break;
++
++ case INTEL_FAM6_KABYLAKE_L:
++ valid = (stepping <= 11);
++ break;
++
++ case INTEL_FAM6_SKYLAKE_L:
++ case INTEL_FAM6_SKYLAKE:
++ case INTEL_FAM6_SKYLAKE_X:
++ /* stepping > 4 is Cascade Lake and is not supported */
++ valid = (stepping <= 4);
++ break;
++
++ default:
++ valid = false;
++ break;
++ }
++
++ return valid;
++}
++
++static void rh_check_supported(void)
++{
++ bool guest;
++
++ guest = (x86_hyper_type != X86_HYPER_NATIVE || boot_cpu_has(X86_FEATURE_HYPERVISOR));
++
++ /* RHEL supports single cpu on guests only */
++ if (((boot_cpu_data.x86_max_cores * smp_num_siblings) == 1) &&
++ !guest && is_kdump_kernel()) {
++ pr_crit("Detected single cpu native boot.\n");
++ pr_crit("Important: In this kernel, single threaded, single CPU 64-bit physical systems are unsupported.");
++ }
++
++ /*
++ * If the RHEL kernel does not support this hardware, the kernel will
++ * attempt to boot, but no support is provided for this hardware
++ */
++ switch (boot_cpu_data.x86_vendor) {
++ case X86_VENDOR_AMD:
++ if (!valid_amd_processor(boot_cpu_data.x86,
++ boot_cpu_data.x86_model_id)) {
++ pr_crit("Detected CPU family %xh model %d\n",
++ boot_cpu_data.x86,
++ boot_cpu_data.x86_model);
++ mark_hardware_unsupported("AMD Processor");
++ }
++ break;
++
++ case X86_VENDOR_INTEL:
++ if (!valid_intel_processor(boot_cpu_data.x86,
++ boot_cpu_data.x86_model,
++ boot_cpu_data.x86_stepping)) {
++ pr_crit("Detected CPU family %d model %d stepping %d\n",
++ boot_cpu_data.x86,
++ boot_cpu_data.x86_model,
++ boot_cpu_data.x86_stepping);
++ mark_hardware_unsupported("Intel Processor");
++ }
++ break;
++
++ default:
++ pr_crit("Detected processor %s %s\n",
++ boot_cpu_data.x86_vendor_id,
++ boot_cpu_data.x86_model_id);
++ mark_hardware_unsupported("Processor");
++ break;
++ }
++
++ /*
++ * Due to the complexity of x86 lapic & ioapic enumeration, and PCI IRQ
++ * routing, ACPI is required for x86. acpi=off is a valid debug kernel
++ * parameter, so just print out a loud warning in case something
++ * goes wrong (which is most of the time).
++ */
++ if (acpi_disabled && !guest)
++ pr_crit("ACPI has been disabled or is not available on this hardware. This may result in a single cpu boot, incorrect PCI IRQ routing, or boot failure.\n");
++}
++
+ /*
+ * Dump out kernel offset information on panic.
+ */
+@@ -1244,6 +1370,10 @@ void __init setup_arch(char **cmdline_p)
+ efi_apply_memmap_quirks();
+ #endif
+
++#ifdef CONFIG_RH_DISABLE_DEPRECATED
++ rh_check_supported();
++#endif
++
+ unwind_init();
+ }
+
+--
+2.26.0
+