1. 11 Nov, 2023 1 commit
    • Thomas Gleixner's avatar
      hrtimers: Push pending hrtimers away from outgoing CPU earlier · 5c0930cc
      Thomas Gleixner authored
      2b8272ff ("cpu/hotplug: Prevent self deadlock on CPU hot-unplug")
      solved the straight forward CPU hotplug deadlock vs. the scheduler
      bandwidth timer. Yu discovered a more involved variant where a task which
      has a bandwidth timer started on the outgoing CPU holds a lock and then
      gets throttled. If the lock required by one of the CPU hotplug callbacks
      the hotplug operation deadlocks because the unthrottling timer event is not
      handled on the dying CPU and can only be recovered once the control CPU
      reaches the hotplug state which pulls the pending hrtimers from the dead
      CPU.
      
      Solve this by pushing the hrtimers away from the dying CPU in the dying
      callbacks. Nothing can queue a hrtimer on the dying CPU at that point because
      all other CPUs spin in stop_machine() with interrupts disabled and once the
      operation is finished the CPU is marked offline.
      Reported-by: default avatarYu Liao <liaoyu15@huawei.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Tested-by: default avatarLiu Tie <liutie4@huawei.com>
      Link: https://lore.kernel.org/r/87a5rphara.ffs@tglx
      5c0930cc
  2. 30 Oct, 2023 1 commit
  3. 28 Oct, 2023 15 commits
  4. 27 Oct, 2023 15 commits
  5. 26 Oct, 2023 8 commits