Disable automatic log dumping

Long ago infrastructure was added to the SPL to keep an internal
debug log of the last few seconds of activity.  This was helpful
during the early development, but these days it is no longer
needed.  I haven't had to resort to this debug buffer to resolve
an issue for several years now.

Today better more generic tools like systemtap and ftrace have
evolved to the point where they can be used for this purpose.
Along with the stack trace dumped to the system console, and in
rare cases a crash dump we almost always have the debug we need.

Therefore, I'm disabling the code which automatically dumps
this log to disk during an assertion except for the case where
spl_debug_panic_on_bug is set (disabled by default).

This should be viewed as a first step towards either.

  a) Retiring this infrastructure and complexity entirely, or
  b) Integrating this logging more properly with ftrace.

As part of this change I'm also removing from the packages the
undocumented spl utility which is used to decode the binary logs.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2013-02-05 15:59:36 -08:00
parent a0625691b3
commit 4bf3909e51
2 changed files with 5 additions and 3 deletions

View File

@ -3,7 +3,8 @@ include $(top_srcdir)/config/Rules.am
DEFAULT_INCLUDES += \
-I$(top_srcdir)/lib
sbin_PROGRAMS = spl splat
noinst_PROGRAMS = spl
sbin_PROGRAMS = splat
spl_SOURCES = spl.c

View File

@ -1099,10 +1099,11 @@ void spl_debug_bug(char *file, const char *func, const int line, int flags)
spl_panic_in_progress = 1;
spl_debug_dumpstack(NULL);
spl_debug_dumplog(flags);
if (spl_debug_panic_on_bug)
if (spl_debug_panic_on_bug) {
spl_debug_dumplog(flags);
panic("SPL PANIC");
}
set_task_state(current, TASK_UNINTERRUPTIBLE);
while (1)