Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

docs: Update documentation to reflect what TAINT_CPU_OUT_OF_SPEC means

Here's a patch updating the meaning of TAINT_CPU_OUT_OF_SPEC after
Borislav introduced changes in a7e1f67ed29f and upcoming patches in tip.

TAINT_CPU_OUT_OF_SPEC now means a bit more what it implies as the
flag isn't set just because of a CPU misconfiguration or mismatch.
Historically it was for SMP kernel oops on an officially SMP incapable
processor but now it also covers CPUs whose MSRs have been incorrectly
poked at from userspace, drivers being used on non supported
architectures, broken firmware, mismatched CPUs, ...

Update documentation and script to reflect that.

Signed-off-by: Mathieu Chouquet-Stringer <me@mathieu.digital>
Link: https://lore.kernel.org/r/20201202153244.709752-1-me@mathieu.digital
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

authored by

Mathieu Chouquet-Stringer and committed by
Jonathan Corbet
547f574f 907d1f14

+20 -7
+1 -1
Documentation/admin-guide/sysctl/kernel.rst
··· 1336 1336 ====== ===== ============================================================== 1337 1337 1 `(P)` proprietary module was loaded 1338 1338 2 `(F)` module was force loaded 1339 - 4 `(S)` SMP kernel oops on an officially SMP incapable processor 1339 + 4 `(S)` kernel running on an out of specification system 1340 1340 8 `(R)` module was force unloaded 1341 1341 16 `(M)` processor reported a Machine Check Exception (MCE) 1342 1342 32 `(B)` bad page referenced or some unexpected page flags
+18 -5
Documentation/admin-guide/tainted-kernels.rst
··· 84 84 === === ====== ======================================================== 85 85 0 G/P 1 proprietary module was loaded 86 86 1 _/F 2 module was force loaded 87 - 2 _/S 4 SMP kernel oops on an officially SMP incapable processor 87 + 2 _/S 4 kernel running on an out of specification system 88 88 3 _/R 8 module was force unloaded 89 89 4 _/M 16 processor reported a Machine Check Exception (MCE) 90 90 5 _/B 32 bad page referenced or some unexpected page flags ··· 116 116 1) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all 117 117 modules were loaded normally. 118 118 119 - 2) ``S`` if the oops occurred on an SMP kernel running on hardware that 120 - hasn't been certified as safe to run multiprocessor. 121 - Currently this occurs only on various Athlons that are not 122 - SMP capable. 119 + 2) ``S`` if the kernel is running on a processor or system that is out of 120 + specification: hardware has been put into an unsupported configuration, 121 + therefore proper execution cannot be guaranteed. 122 + Kernel will be tainted if, for example: 123 + 124 + - on x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) 125 + which do not report PAE but may have a functional implementation, an SMP 126 + kernel is running on non officially capable SMP Athlon CPUs, MSRs are 127 + being poked at from userspace. 128 + - on arm: kernel running on certain CPUs (such as Keystone 2) without 129 + having certain kernel features enabled. 130 + - on arm64: there are mismatched hardware features between CPUs, the 131 + bootloader has booted CPUs in different modes. 132 + - certain drivers are being used on non supported architectures (such as 133 + scsi/snic on something else than x86_64, scsi/ips on non 134 + x86/x86_64/itanium, have broken firmware settings for the 135 + irqchip/irq-gic on arm64 ...). 123 136 124 137 3) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all 125 138 modules were unloaded normally.
+1 -1
tools/debugging/kernel-chktaint
··· 72 72 addout " " 73 73 else 74 74 addout "S" 75 - echo " * SMP kernel oops on an officially SMP incapable processor (#2)" 75 + echo " * kernel running on an out of specification system (#2)" 76 76 fi 77 77 78 78 T=`expr $T / 2`