From 9ed8107a4dcbdec5ead0e711332704ed0a6c56a0 Mon Sep 17 00:00:00 2001 From: Petr Pavlu Date: Mar 04 2024 15:42:25 +0000 Subject: doc/README.SUSE: Update information about module support status (jsc#PED-5759) Following the code change in SLE15-SP6 to have externally supported modules no longer taint the kernel, update the respective documentation in README.SUSE: * Describe that support status can be obtained at runtime for each module from /sys/module/$MODULE/supported and for the entire system from /sys/kernel/supported. This provides a way how to now check that the kernel has any externally supported modules loaded. * Remove a mention that externally supported modules taint the kernel, but keep the information about bit 16 (X) and add a note that it is still tracked per module and can be read from /sys/module/$MODULE/taint. This per-module information also appears in Oopses. --- diff --git a/doc/README.SUSE b/doc/README.SUSE index 7aa62b6..5ad6a15 100644 --- a/doc/README.SUSE +++ b/doc/README.SUSE @@ -187,8 +187,17 @@ will report one of the following: * third-party support: "supported: external", * unsupported modules: no supported tag. -At runtime, the setting of the "unsupported" kernel command line parameter and -`/proc/sys/kernel/unsupported` determines whether unsupported modules can be +At runtime, the support status of a module can be obtained by reading +`/sys/module/$MODULE/supported`. + +Note that this information is available only if the module was not built +directly into the kernel. Builtin modules are implicitly supported. + +The aggregated support status for the entire kernel can be inspected by reading +`/sys/kernel/supported`. The value is also included in Oopses. + +The setting of the "unsupported" kernel command line parameter and +`/proc/sys/kernel/unsupported` controls whether unsupported modules can be loaded or not, and whether or not loading an unsupported module causes a warning in the system log: @@ -196,9 +205,9 @@ in the system log: * 1 = warn when loading unsupported modules, * 2 = don't warn. -Irrespective of this setting, loading an externally supported or unsupported -module both set a kernel taint flag. The taint flags are included in Oopses. The -taint status of the kernel can be inspected in `/proc/sys/kernel/tainted`. +Irrespective of this setting, loading an unsupported module sets a kernel taint +flag. The taint status of the kernel can be inspected in +`/proc/sys/kernel/tainted`. The taint flags are also included in Oopses. Relevant bits have the following meaning: | Bit | Log | Number | Reason that got the kernel tainted | @@ -209,7 +218,9 @@ Relevant bits have the following meaning: | 16 | ␣/X | 65536 | module with third-party support was loaded | | 31 | ␣/N | 2147483648 | unsupported module was loaded | -Bits 16 and 31 are specific to the SUSE kernels. +Bits 16 and 31 are specific to the SUSE kernels. Since SLE15-SP6, loading an +externally supported module does not taint the kernel, but bit 16 (X) is still +tracked per module and can be read in `/sys/module/$MODULE/taint`. Out-of-tree modules do not have the supported flag set by default; that is, they are marked as unsupported. For building externally supported