lkml.org 
[lkml]   [2020]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] x86/msr: Filter MSR writes
On Wed, Nov 18, 2020 at 03:04:27PM +0100, Mathieu Chouquet-Stringer wrote:
> TAINT_CPU_OUT_OF_SPEC now means what it says. 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. Update
> documentation and script to reflect that.
>
> Signed-off-by: Mathieu Chouquet-Stringer <me@mathieu.digital>
> ---
> Documentation/admin-guide/tainted-kernels.rst | 11 ++++++-----
> tools/debugging/kernel-chktaint | 2 +-
> 2 files changed, 7 insertions(+), 6 deletions(-)

Please fix the text in Documentation/admin-guide/sysctl/kernel.rst also.

> diff --git a/Documentation/admin-guide/tainted-kernels.rst b/Documentation/admin-guide/tainted-kernels.rst
> index f718a2eaf1f6..95f432c43ba0 100644
> --- a/Documentation/admin-guide/tainted-kernels.rst
> +++ b/Documentation/admin-guide/tainted-kernels.rst
> @@ -84,7 +84,7 @@ Bit Log Number Reason that got the kernel tainted
> === === ====== ========================================================
> 0 G/P 1 proprietary module was loaded
> 1 _/F 2 module was force loaded
> - 2 _/S 4 SMP kernel oops on an officially SMP incapable processor
> + 2 _/S 4 kernel running on out of spec processor
> 3 _/R 8 module was force unloaded
> 4 _/M 16 processor reported a Machine Check Exception (MCE)
> 5 _/B 32 bad page referenced or some unexpected page flags
> @@ -116,10 +116,11 @@ More detailed explanation for tainting
> 1) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all
> modules were loaded normally.
>
> - 2) ``S`` if the oops occurred on an SMP kernel running on hardware that
> - hasn't been certified as safe to run multiprocessor.
> - Currently this occurs only on various Athlons that are not
> - SMP capable.
> + 2) ``S`` if the kernel is running on any processor that is out of
> + specifications (writing to MSRs will trigger this behavior).

People might wonder what "out of specifications" means. I'd say
something along the lines of "the CPU has been put into a not supported
configuration, therefore proper execution cannot be guaranteed". Grep
the tree for TAINT_CPU_OUT_OF_SPEC to see when this gets set, might give
you a better idea of what to say.

> + Historically, it could also be if an oops occured on a kernel running on
> + hardware that hasn't been certified as safe to run multiprocessor, such
> + as various Athlons that are not SMP capable.

And here you can expand on the examples by saying that poking at random
MSRs from userspace is one possible way to mis-configure it.

> 3) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all
> modules were unloaded normally.
> diff --git a/tools/debugging/kernel-chktaint b/tools/debugging/kernel-chktaint
> index 2240cb56e6e5..0b9d93e27910 100755
> --- a/tools/debugging/kernel-chktaint
> +++ b/tools/debugging/kernel-chktaint
> @@ -72,7 +72,7 @@ if [ `expr $T % 2` -eq 0 ]; then
> addout " "
> else
> addout "S"
> - echo " * SMP kernel oops on an officially SMP incapable processor (#2)"
> + echo " * kernel running on out of spec processor (#2)"

Yeah, can you think of a better formulation than "out of spec
processor"?

The CPU is fine, only its current configuration is not.

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

\
 
 \ /
  Last update: 2020-11-18 18:53    [W:0.133 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site