{"push_id":2528177671,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"3e46e54d1796136402bebe47e000b1972ae6e1c6","before":"dea205d653a3955470888e523d2b4fadada6586b","commits":[{"sha":"3e46e54d1796136402bebe47e000b1972ae6e1c6","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"UPSTREAM: sched: Cleanup bandwidth timers\n\nRoman reported a 3 cpu lockup scenario involving __start_cfs_bandwidth().\n\nThe more I look at that code the more I'm convinced its crack, that\nentire __start_cfs_bandwidth() thing is brain melting, we don't need to\ncancel a timer before starting it, *hrtimer_start*() will happily remove\nthe timer for you if its still enqueued.\n\nRemoving that, removes a big part of the problem, no more ugly cancel\nloop to get stuck in.\n\nSo now, if I understand things right, the entire reason you have this\ncfs_b->lock guarded ->timer_active nonsense is to make sure we don't\naccidentally lose the timer.\n\nIt appears to me that it should be possible to guarantee that same by\nunconditionally (re)starting the timer when !queued. Because regardless\nwhat hrtimer::function will return, if we beat it to (re)enqueue the\ntimer, it doesn't matter.\n\nNow, because hrtimers don't come with any serialization guarantees we\nmust ensure both handler and (re)start loop serialize their access to\nthe hrtimer to avoid both trying to forward the timer at the same\ntime.\n\nUpdate the rt bandwidth timer to match.\n\nThis effectively reverts: 09dc4ab03936 (\"sched/fair: Fix\ntg_set_cfs_bandwidth() deadlock on rq->lock\").\n\nBug: 38121882\nChange-Id: I4b4ce415e29219ab30bc0bbc734530af715021c5\nReported-by: Roman Gushchin <klamm@yandex-team.ru>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nReviewed-by: Ben Segall <bsegall@google.com>\nCc: Paul Turner <pjt@google.com>\nLink: http://lkml.kernel.org/r/20150415095011.804589208@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Siqi Lin <siqilin@google.com>\nSigned-off-by: ahmedradaideh <ahmed.radaideh@gmail.com>\nSigned-off-by: Mawrick26 <mawrick26@gmail.com>","distinct":true,"url":"https://api.github.com/repos/mawrick26/S7E-N10/commits/3e46e54d1796136402bebe47e000b1972ae6e1c6"}]}
{"actor":{"display_login":"mawrick26"}}