{"push_id":727159272,"size":1,"distinct_size":1,"ref":"refs/heads/hotplugs","head":"e3f8e11a2684621bf1649a346c260083d0db410b","before":"14950af70406d1ede8da66633780d518aceac8fe","commits":[{"sha":"e3f8e11a2684621bf1649a346c260083d0db410b","author":{"email":"645ca7d3a8d3d4f60557176cd361ea8351edc32b@chello.nl","name":"Peter Zijlstra"},"message":"sched, cgroup: Reduce rq->lock hold times for large cgroup hierarchies\n\nPeter Portante reported that for large cgroup hierarchies (and or on\nlarge CPU counts) we get immense lock contention on rq->lock and stuff\nstops working properly.\n\nHis workload was a ton of processes, each in their own cgroup,\neverybody idling except for a sporadic wakeup once every so often.\n\nIt was found that:\n\n  schedule()\n    idle_balance()\n      load_balance()\n        local_irq_save()\n        double_rq_lock()\n        update_h_load()\n          walk_tg_tree(tg_load_down)\n            tg_load_down()\n\nResults in an entire cgroup hierarchy walk under rq->lock for every\nnew-idle balance and since new-idle balance isn't throttled this\nresults in a lot of work while holding the rq->lock.\n\nThis patch does two things, it removes the work from under rq->lock\nbased on the good principle of race and pray which is widely employed\nin the load-balancer as a whole. And secondly it throttles the\nupdate_h_load() calculation to max once per jiffy.\n\nI considered excluding update_h_load() for new-idle balance\nall-together, but purely relying on regular balance passes to update\nthis data might not work out under some rare circumstances where the\nnew-idle busiest isn't the regular busiest for a while (unlikely, but\na nightmare to debug if someone hits it and suffers).\n\nCc: pjt@google.com\nCc: Larry Woodman <lwoodman@redhat.com>\nCc: Mike Galbraith <efault@gmx.de>\nReported-by: Peter Portante <pportant@redhat.com>\nSigned-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>\nLink: http://lkml.kernel.org/n/tip-aaarrzfpnaam7pqrekofu8a6@git.kernel.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/mostafa-z/GABRIEL_LP/commits/e3f8e11a2684621bf1649a346c260083d0db410b"}]}