• U
    watchdog: new definitions and variables, initialization · 84d56e66
    Ulrich Obergfell 提交于
    The hardlockup and softockup had always been tied together.  Due to the
    request of KVM folks, they had a need to have one enabled but not the
    other.  Internally rework the code to split things apart more cleanly.
    
    There is a bunch of churn here, but the end result should be code that
    should be easier to maintain and fix without knowing the internals of what
    is going on.
    
    This patch (of 9):
    
    Introduce new definitions and variables to separate the user interface in
    /proc/sys/kernel from the internal run state of the lockup detectors.  The
    internal run state is represented by two bits in a new variable that is
    named 'watchdog_enabled'.  This helps simplify the code, for example:
    
    - In order to check if any of the two lockup detectors is enabled,
      it is sufficient to check if 'watchdog_enabled' is not zero.
    
    - In order to enable/disable one or both lockup detectors,
      it is sufficient to set/clear one or both bits in 'watchdog_enabled'.
    
    - Concurrent updates of 'watchdog_enabled' need not be synchronized via
      a spinlock or a mutex. Updates can either be atomic or concurrency can
      be detected by using 'cmpxchg'.
    Signed-off-by: NUlrich Obergfell <uobergfe@redhat.com>
    Signed-off-by: NDon Zickus <dzickus@redhat.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    84d56e66
nmi.h 2.0 KB