Documentation: kunit: Add some troubleshooting tips to the FAQ
Add an FAQ entry to the KUnit documentation with some tips for troubleshooting KUnit and kunit_tool. These suggestions largely came from an email thread: https://lore.kernel.org/linux-kselftest/41db8bbd-3ba0-8bde-7352-083bf4b947ff@intel.com/T/#m23213d4e156db6d59b0b460a9014950f5ff6eb03 Signed-off-by: David Gow <davidgow@google.com> Reviewed-by: Alan Maguire <alan.maguire@oracle.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
ee61492ab9
commit
c63d2dd7e1
|
@ -61,3 +61,43 @@ test, or an end-to-end test.
|
||||||
kernel by installing a production configuration of the kernel on production
|
kernel by installing a production configuration of the kernel on production
|
||||||
hardware with a production userspace and then trying to exercise some behavior
|
hardware with a production userspace and then trying to exercise some behavior
|
||||||
that depends on interactions between the hardware, the kernel, and userspace.
|
that depends on interactions between the hardware, the kernel, and userspace.
|
||||||
|
|
||||||
|
KUnit isn't working, what should I do?
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Unfortunately, there are a number of things which can break, but here are some
|
||||||
|
things to try.
|
||||||
|
|
||||||
|
1. Try running ``./tools/testing/kunit/kunit.py run`` with the ``--raw_output``
|
||||||
|
parameter. This might show details or error messages hidden by the kunit_tool
|
||||||
|
parser.
|
||||||
|
2. Instead of running ``kunit.py run``, try running ``kunit.py config``,
|
||||||
|
``kunit.py build``, and ``kunit.py exec`` independently. This can help track
|
||||||
|
down where an issue is occurring. (If you think the parser is at fault, you
|
||||||
|
can run it manually against stdin or a file with ``kunit.py parse``.)
|
||||||
|
3. Running the UML kernel directly can often reveal issues or error messages
|
||||||
|
kunit_tool ignores. This should be as simple as running ``./vmlinux`` after
|
||||||
|
building the UML kernel (e.g., by using ``kunit.py build``). Note that UML
|
||||||
|
has some unusual requirements (such as the host having a tmpfs filesystem
|
||||||
|
mounted), and has had issues in the past when built statically and the host
|
||||||
|
has KASLR enabled. (On older host kernels, you may need to run ``setarch
|
||||||
|
`uname -m` -R ./vmlinux`` to disable KASLR.)
|
||||||
|
4. Make sure the kernel .config has ``CONFIG_KUNIT=y`` and at least one test
|
||||||
|
(e.g. ``CONFIG_KUNIT_EXAMPLE_TEST=y``). kunit_tool will keep its .config
|
||||||
|
around, so you can see what config was used after running ``kunit.py run``.
|
||||||
|
It also preserves any config changes you might make, so you can
|
||||||
|
enable/disable things with ``make ARCH=um menuconfig`` or similar, and then
|
||||||
|
re-run kunit_tool.
|
||||||
|
5. Try to run ``make ARCH=um defconfig`` before running ``kunit.py run``. This
|
||||||
|
may help clean up any residual config items which could be causing problems.
|
||||||
|
6. Finally, try running KUnit outside UML. KUnit and KUnit tests can run be
|
||||||
|
built into any kernel, or can be built as a module and loaded at runtime.
|
||||||
|
Doing so should allow you to determine if UML is causing the issue you're
|
||||||
|
seeing. When tests are built-in, they will execute when the kernel boots, and
|
||||||
|
modules will automatically execute associated tests when loaded. Test results
|
||||||
|
can be collected from ``/sys/kernel/debug/kunit/<test suite>/results``, and
|
||||||
|
can be parsed with ``kunit.py parse``. For more details, see "KUnit on
|
||||||
|
non-UML architectures" in :doc:`usage`.
|
||||||
|
|
||||||
|
If none of the above tricks help, you are always welcome to email any issues to
|
||||||
|
kunit-dev@googlegroups.com.
|
||||||
|
|
Loading…
Reference in New Issue