When some CPUs cycle out of s2idle due to non-wakeup IRQs, it's possible for them to run while the CPU responsible for jiffies updates remains idle. This can delay the execution of timers indefinitely until the CPU managing the jiffies updates finally wakes up, by which point everything could be dead if enough time passes. Fix it by handing off timekeeping duties when the timekeeping CPU enters s2idle and freezes its tick. When all CPUs are in s2idle, the first one to wake up for any reason (either from a wakeup IRQ or non-wakeup IRQ) will assume responsibility for the timekeeping tick. Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> Change-Id: Idbb2e825c489e174d5701e0c315b51a3149bfe49fourteen
parent
ba1afaa024
commit
f7ff514106
Loading…
Reference in new issue