• Matthew Garrett's avatar
    kmsg_dump: don't run on non-error paths by default · c22ab332
    Matthew Garrett authored
    Since commit 04c6862c ("kmsg_dump: add kmsg_dump() calls to the
    reboot, halt, poweroff and emergency_restart paths"), kmsg_dump() gets
    run on normal paths including poweroff and reboot.
    
    This is less than ideal given pstore implementations that can only
    represent single backtraces, since a reboot may overwrite a stored oops
    before it's been picked up by userspace.  In addition, some pstore
    backends may have low performance and provide a significant delay in
    reboot as a result.
    
    This patch adds a printk.always_kmsg_dump kernel parameter (which can also
    be changed from userspace).  Without it, the code will only be run on
    failure paths rather than on normal paths.  The option can be enabled in
    environments where there's a desire to attempt to audit whether or not a
    reboot was cleanly requested or not.
    Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
    Acked-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
    Cc: Seiji Aguchi <seiji.aguchi@hds.com>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Marco Stornelli <marco.stornelli@gmail.com>
    Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Don Zickus <dzickus@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    c22ab332
printk.c 43.7 KB