• Linus Torvalds's avatar
    Merge branch 'core-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 27efed3e
    Linus Torvalds authored
    Pull watchddog clean-up and fixes from Thomas Gleixner:
     "The watchdog (hard/softlockup detector) code is pretty much broken in
      its current state. The patch series addresses this by removing all
      duct tape and refactoring it into a workable state.
    
      The reasons why I ask for inclusion that late in the cycle are:
    
       1) The code causes lockdep splats vs. hotplug locking which get
          reported over and over. Unfortunately there is no easy fix.
    
       2) The risk of breakage is minimal because it's already broken
    
       3) As 4.14 is a long term stable kernel, I prefer to have working
          watchdog code in that and the lockdep issues resolved. I wouldn't
          ask you to pull if 4.14 wouldn't be a LTS kernel or if the
          solution would be easy to backport.
    
       4) The series was around before the merge window opened, but then got
          delayed due to the UP failure caused by the for_each_cpu()
          surprise which we discussed recently.
    
      Changes vs. V1:
    
       - Addressed your review points
    
       - Addressed the warning in the powerpc code which was discovered late
    
       - Changed two function names which made sense up to a certain point
         in the series. Now they match what they do in the end.
    
       - Fixed a 'unused variable' warning, which got not detected by the
         intel robot. I triggered it when trying all possible related config
         combinations manually. Randconfig testing seems not random enough.
    
      The changes have been tested by and reviewed by Don Zickus and tested
      and acked by Micheal Ellerman for powerpc"
    
    * 'core-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
      watchdog/core: Put softlockup_threads_initialized under ifdef guard
      watchdog/core: Rename some softlockup_* functions
      powerpc/watchdog: Make use of watchdog_nmi_probe()
      watchdog/core, powerpc: Lock cpus across reconfiguration
      watchdog/core, powerpc: Replace watchdog_nmi_reconfigure()
      watchdog/hardlockup/perf: Fix spelling mistake: "permanetely" -> "permanently"
      watchdog/hardlockup/perf: Cure UP damage
      watchdog/hardlockup: Clean up hotplug locking mess
      watchdog/hardlockup/perf: Simplify deferred event destroy
      watchdog/hardlockup/perf: Use new perf CPU enable mechanism
      watchdog/hardlockup/perf: Implement CPU enable replacement
      watchdog/hardlockup/perf: Implement init time detection of perf
      watchdog/hardlockup/perf: Implement init time perf validation
      watchdog/core: Get rid of the racy update loop
      watchdog/core, powerpc: Make watchdog_nmi_reconfigure() two stage
      watchdog/sysctl: Clean up sysctl variable name space
      watchdog/sysctl: Get rid of the #ifdeffery
      watchdog/core: Clean up header mess
      watchdog/core: Further simplify sysctl handling
      watchdog/core: Get rid of the thread teardown/setup dance
      ...
    27efed3e
cpu.c 48 KB