Commit 337c188d authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

admin-guide: move tainted kernels info to a separate file

The tainted kernels info is not directly related to
the oops tracing. So, let's move it to a separate file.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent c730904b
...@@ -8,7 +8,7 @@ document! With luck things will improve quickly over time. ...@@ -8,7 +8,7 @@ document! With luck things will improve quickly over time.
This initial section contains overall information, including the README This initial section contains overall information, including the README
file describing the kernel as a whole, documentation on kernel parameters, file describing the kernel as a whole, documentation on kernel parameters,
etc. etc.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
...@@ -22,12 +22,13 @@ problems and bugs in particular. ...@@ -22,12 +22,13 @@ problems and bugs in particular.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
reporting-bugs reporting-bugs
security-bugs security-bugs
bug-hunting bug-hunting
bug-bisect bug-bisect
oops-tracing oops-tracing
tainted-kernels
ramoops ramoops
dynamic-debug-howto dynamic-debug-howto
init init
...@@ -38,7 +39,7 @@ ABI will be found here. ...@@ -38,7 +39,7 @@ ABI will be found here.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
sysfs-rules sysfs-rules
The rest of this manual consists of various unordered guides on how to The rest of this manual consists of various unordered guides on how to
...@@ -46,7 +47,7 @@ configure specific aspects of kernel behavior to your liking. ...@@ -46,7 +47,7 @@ configure specific aspects of kernel behavior to your liking.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
initrd initrd
serial-console serial-console
braille-console braille-console
......
...@@ -239,62 +239,3 @@ processed by ``klogd``:: ...@@ -239,62 +239,3 @@ processed by ``klogd``::
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
Tainted kernels
---------------
Some oops reports contain the string **'Tainted: '** after the program
counter. This indicates that the kernel has been tainted by some
mechanism. The string is followed by a series of position-sensitive
characters, each representing a particular tainted value.
1) 'G' if all modules loaded have a GPL or compatible license, 'P' if
any proprietary module has been loaded. Modules without a
MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
insmod as GPL compatible are assumed to be proprietary.
2) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all
modules were loaded normally.
3) ``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.
4) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all
modules were unloaded normally.
5) ``M`` if any processor has reported a Machine Check Exception,
``' '`` if no Machine Check Exceptions have occurred.
6) ``B`` if a page-release function has found a bad page reference or
some unexpected page flags.
7) ``U`` if a user or user application specifically requested that the
Tainted flag be set, ``' '`` otherwise.
8) ``D`` if the kernel has died recently, i.e. there was an OOPS or BUG.
9) ``A`` if the ACPI table has been overridden.
10) ``W`` if a warning has previously been issued by the kernel.
(Though some warnings may set more specific taint flags.)
11) ``C`` if a staging driver has been loaded.
12) ``I`` if the kernel is working around a severe bug in the platform
firmware (BIOS or similar).
13) ``O`` if an externally-built ("out-of-tree") module has been loaded.
14) ``E`` if an unsigned module has been loaded in a kernel supporting
module signature.
15) ``L`` if a soft lockup has previously occurred on the system.
16) ``K`` if the kernel has been live patched.
The primary reason for the **'Tainted: '** string is to tell kernel
debuggers if this is a clean kernel or if anything unusual has
occurred. Tainting is permanent: even if an offending module is
unloaded, the tainted value remains to indicate that the kernel is not
trustworthy.
Tainted kernels
---------------
Some oops reports contain the string **'Tainted: '** after the program
counter. This indicates that the kernel has been tainted by some
mechanism. The string is followed by a series of position-sensitive
characters, each representing a particular tainted value.
1) 'G' if all modules loaded have a GPL or compatible license, 'P' if
any proprietary module has been loaded. Modules without a
MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
insmod as GPL compatible are assumed to be proprietary.
2) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all
modules were loaded normally.
3) ``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.
4) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all
modules were unloaded normally.
5) ``M`` if any processor has reported a Machine Check Exception,
``' '`` if no Machine Check Exceptions have occurred.
6) ``B`` if a page-release function has found a bad page reference or
some unexpected page flags.
7) ``U`` if a user or user application specifically requested that the
Tainted flag be set, ``' '`` otherwise.
8) ``D`` if the kernel has died recently, i.e. there was an OOPS or BUG.
9) ``A`` if the ACPI table has been overridden.
10) ``W`` if a warning has previously been issued by the kernel.
(Though some warnings may set more specific taint flags.)
11) ``C`` if a staging driver has been loaded.
12) ``I`` if the kernel is working around a severe bug in the platform
firmware (BIOS or similar).
13) ``O`` if an externally-built ("out-of-tree") module has been loaded.
14) ``E`` if an unsigned module has been loaded in a kernel supporting
module signature.
15) ``L`` if a soft lockup has previously occurred on the system.
16) ``K`` if the kernel has been live patched.
The primary reason for the **'Tainted: '** string is to tell kernel
debuggers if this is a clean kernel or if anything unusual has
occurred. Tainting is permanent: even if an offending module is
unloaded, the tainted value remains to indicate that the kernel is not
trustworthy.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment