• Daniel Latypov's avatar
    kunit: tool: suggest using decode_stacktrace.sh on kernel crash · 7fa7ffcf
    Daniel Latypov authored
    kunit.py isn't very clear that
    1) it stashes a copy of the unparsed output in $BUILD_DIR/test.log
    2) it sets $BUILD_DIR=.kunit by default
    
    So it's trickier than it should be for a user to come up with the right
    command to do so.
    
    Make kunit.py print out a command for this if
    a) we saw a test case crash
    b) we only ran one kernel (test.log only contains output from the last)
    
    Example suggested command:
    $ scripts/decode_stacktrace.sh .kunit/vmlinux .kunit < .kunit/test.log | tee .kunit/decoded.log | ./tools/testing/kunit/kunit.py parse
    
    Without debug info a user might see something like
    [14:11:25] Call Trace:
    [14:11:25] ? kunit_binary_assert_format (:?)
    [14:11:25] kunit_try_run_case (test.c:?)
    [14:11:25] ? __kthread_parkme (kthread.c:?)
    [14:11:25] kunit_generic_run_threadfn_adapter (try-catch.c:?)
    [14:11:25] ? kunit_generic_run_threadfn_adapter (try-catch.c:?)
    [14:11:25] kthread (kthread.c:?)
    [14:11:25] new_thread_handler (:?)
    [14:11:25] [CRASHED]
    
    `tee` is in GNU coreutils, so it seems fine to add that into the
    pipeline by default, that way users can inspect the otuput in more
    detail.
    
    Note: to turn on debug info, users would need to do something like
    $ echo -e 'CONFIG_DEBUG_KERNEL=y\nCONFIG_DEBUG_INFO=y' >> .kunit/.kunitconfig
    $ ./tools/testing/kunit/kunit.py config
    $ ./tools/testing/kunit/kunit.py build
    $ <then run decode_stacktrace.sh now vmlinux is updated>
    
    This feels too clunky to include in the instructions.
    With --kconfig_add [1], it would become a bit less painful.
    
    [1] https://lore.kernel.org/linux-kselftest/20211106013058.2621799-2-dlatypov@google.com/Signed-off-by: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    7fa7ffcf
kunit.py 17.6 KB