Commit a0a3222f authored by Thorsten Leemhuis's avatar Thorsten Leemhuis Committed by Jonathan Corbet

docs: verify/bisect: check taint flag

Instruct readers to check the taint flag, as the reason why it's set
might directly or indirectly cause the bug or interfere with testing.
Signed-off-by: default avatarThorsten Leemhuis <linux@leemhuis.info>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
Message-ID: <8fcaffa8e85f36d51178d61061355c3c8bc85a0f.1710750972.git.linux@leemhuis.info>
parent b513d12e
...@@ -113,6 +113,7 @@ will be considered the 'good' release and used to prepare the .config file. ...@@ -113,6 +113,7 @@ will be considered the 'good' release and used to prepare the .config file.
# checking if the output of the next two commands matches: # checking if the output of the next two commands matches:
tail -n 1 ~/kernels-built tail -n 1 ~/kernels-built
uname -r uname -r
cat /proc/sys/kernel/tainted
c) Check if the problem occurs with this kernel as well. c) Check if the problem occurs with this kernel as well.
...@@ -572,21 +573,29 @@ be a waste of time. [:ref:`details<introlatestcheck_bisref>`] ...@@ -572,21 +573,29 @@ be a waste of time. [:ref:`details<introlatestcheck_bisref>`]
Remember the identifier momentarily, as it will help you pick the right kernel Remember the identifier momentarily, as it will help you pick the right kernel
from the boot menu upon restarting. from the boot menu upon restarting.
.. _recheckbroken_bissbs: * Reboot into your newly built kernel. To ensure your actually started the one
you just built, you might want to verify if the output of these commands
* Reboot into the kernel you just built and check if the feature that is matches::
expected to be broken really is.
Start by making sure the kernel you booted is the one you just built. When
unsure, check if the output of these commands show the exact same release
identifier::
tail -n 1 ~/kernels-built tail -n 1 ~/kernels-built
uname -r uname -r
Now verify if the feature that causes trouble works with your newly built .. _tainted_bissbs:
kernel. If things work while investigating a regression, check the reference
section for further details. * Check if the kernel marked itself as 'tainted'::
cat /proc/sys/kernel/tainted
If that command does not return '0', check the reference section, as the cause
for this might interfere with your testing.
[:ref:`details<tainted_bisref>`]
.. _recheckbroken_bissbs:
* Verify if your bug occurs with the newly built kernel. If it does not, check
out the instructions in the reference section to ensure nothing went sideways
during your tests.
[:ref:`details<recheckbroken_bisref>`] [:ref:`details<recheckbroken_bisref>`]
...@@ -616,11 +625,14 @@ be a waste of time. [:ref:`details<introlatestcheck_bisref>`] ...@@ -616,11 +625,14 @@ be a waste of time. [:ref:`details<introlatestcheck_bisref>`]
make -s kernelrelease | tee -a ~/kernels-built make -s kernelrelease | tee -a ~/kernels-built
reboot reboot
Now verify if you booted the kernel you intended to start, to then check if Confirm you booted the kernel you intended to start and check its tainted
everything works fine with this kernel:: status::
tail -n 1 ~/kernels-built tail -n 1 ~/kernels-built
uname -r uname -r
cat /proc/sys/kernel/tainted
Now verify if this kernel is showing the problem.
[:ref:`details<recheckstablebroken_bisref>`] [:ref:`details<recheckstablebroken_bisref>`]
...@@ -1629,13 +1641,32 @@ need to look in different places. ...@@ -1629,13 +1641,32 @@ need to look in different places.
[:ref:`back to step-by-step guide <storagespace_bissbs>`] [:ref:`back to step-by-step guide <storagespace_bissbs>`]
.. _tainted_bisref:
Check if your newly built kernel considers itself 'tainted'
-----------------------------------------------------------
*Check if the kernel marked itself as 'tainted'.*
[:ref:`... <tainted_bissbs>`]
Linux marks itself as tainted when something happens that potentially leads to
follow-up errors that look totally unrelated. That is why developers might
ignore or react scantly to reports from tainted kernels -- unless of course the
kernel set the flag right when the reported bug occurred.
That's why you want check why a kernel is tainted as explained in
Documentation/admin-guide/tainted-kernels.rst; doing so is also in your own
interest, as your testing might be flawed otherwise.
[:ref:`back to step-by-step guide <tainted_bissbs>`]
.. _recheckbroken_bisref: .. _recheckbroken_bisref:
Check the kernel built from the latest codebase Check the kernel built from the latest codebase
----------------------------------------------- -----------------------------------------------
*Reboot into the kernel you just built and check if the feature that regressed *Verify if your bug occurs with the newly built kernel.*
is really broken there.* [:ref:`... <recheckbroken_bissbs>`] [:ref:`... <recheckbroken_bissbs>`]
There are a couple of reasons why the regression you face might not show up with There are a couple of reasons why the regression you face might not show up with
your own kernel built from the latest codebase. These are the most frequent: your own kernel built from the latest codebase. These are the most frequent:
...@@ -1712,6 +1743,9 @@ In case the feature that broke with newer kernels does not work with your first ...@@ -1712,6 +1743,9 @@ In case the feature that broke with newer kernels does not work with your first
self-built kernel, find and resolve the cause before moving on. There are a self-built kernel, find and resolve the cause before moving on. There are a
multitude of reasons why this might happen. Some ideas where to look: multitude of reasons why this might happen. Some ideas where to look:
* Check the taint status and the output of ``dmesg``, maybe something unrelated
went wrong.
* Maybe localmodconfig did something odd and disabled the module required to * Maybe localmodconfig did something odd and disabled the module required to
test the feature? Then you might want to recreate a .config file based on the test the feature? Then you might want to recreate a .config file based on the
one from the last working kernel and skip trimming it down; manually disabling one from the last working kernel and skip trimming it down; manually disabling
......
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