cvs commit: src/sys/conf files.i386 options.i386 src/sys/i386/i386 mp_machdep.c mp_watchdog.c src/sys/i386/include mp_watchdog.h

Robert Watson rwatson at FreeBSD.org
Sun Aug 15 11:02:10 PDT 2004


rwatson     2004-08-15 18:02:10 UTC

  FreeBSD src repository

  Modified files:
    sys/conf             files.i386 options.i386 
    sys/i386/i386        mp_machdep.c 
  Added files:
    sys/i386/i386        mp_watchdog.c 
    sys/i386/include     mp_watchdog.h 
  Log:
  Add an "options MP_WATCHDOG" to i386.  This option allows one of the
  logical CPUs on a system to be used as a dedicated watchdog to cause a
  drop to the debugger and/or generate an NMI to the boot processor if
  the kernel ceases to respond.  A sysctl enables the watchdog running
  out of the processor's idle thread; a callout is launched to reset a
  timer in the watchdog.  If the callout fails to reset the timer for ten
  seconds, the watchdog will fire.  The sysctl allows you to select which
  CPU will run the watchdog.
  
  A sample "debug.leak_schedlock" is included, which causes a sysctl to
  spin holding sched_lock in order to trigger the watchdog.  On my Xeons,
  the watchdog is able to detect this failure mode and break into the
  debugger, which cannot otherwise be done without an NMI button.
  
  This option does not currently work with sched_ule due to ule's push
  notion of scheduling, similar to machdep.hlt_logical_cpus failing to
  work with that scheduler.
  
  On face value, this might seem somewhat inefficient, but there are a
  lot of dual-processor Xeons with HTT around, so using one as a watchdog
  for testing is not as inefficient as one might fear.
  
  Revision  Changes    Path
  1.503     +1 -0      src/sys/conf/files.i386
  1.213     +1 -0      src/sys/conf/options.i386
  1.234     +9 -0      src/sys/i386/i386/mp_machdep.c
  1.1       +225 -0    src/sys/i386/i386/mp_watchdog.c (new)
  1.1       +34 -0     src/sys/i386/include/mp_watchdog.h (new)


More information about the cvs-src mailing list