• Guilherme G. Piccoli's avatar
    panic: add sysctl to dump all CPUs backtraces on oops event · 60c958d8
    Guilherme G. Piccoli authored
    Usually when the kernel reaches an oops condition, it's a point of no
    return; in case not enough debug information is available in the kernel
    splat, one of the last resorts would be to collect a kernel crash dump
    and analyze it.  The problem with this approach is that in order to
    collect the dump, a panic is required (to kexec-load the crash kernel).
    When in an environment of multiple virtual machines, users may prefer to
    try living with the oops, at least until being able to properly shutdown
    their VMs / finish their important tasks.
    
    This patch implements a way to collect a bit more debug details when an
    oops event is reached, by printing all the CPUs backtraces through the
    usage of NMIs (on architectures that support that).  The sysctl added
    (and documented) here was called "oops_all_cpu_backtrace", and when set
    will (as the name suggests) dump all CPUs backtraces.
    
    Far from ideal, this may be the last option though for users that for
    some reason cannot panic on oops.  Most of times oopses are clear enough
    to indicate the kernel portion that must be investigated, but in virtual
    environments it's possible to observe hypervisor/KVM issues that could
    lead to oopses shown in other guests CPUs (like virtual APIC crashes).
    This patch hence aims to help debug such complex issues without
    resorting to kdump.
    Signed-off-by: default avatarGuilherme G. Piccoli <gpiccoli@canonical.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Iurii Zaikin <yzaikin@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Link: http://lkml.kernel.org/r/20200327224116.21030-1-gpiccoli@canonical.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    60c958d8
panic.c 18.2 KB