{"push_id":914219093,"size":7,"distinct_size":1,"ref":"refs/heads/cm-13.0","head":"f8371234f77b3924224be29a00b59e146c5935c4","before":"787842f7f8f5e64213f759322eea4ba0e0d36e73","commits":[{"sha":"25fe0ba42b91a97937f7cc57102222d4819a18ef","author":{"email":"e9fa45941f2ebe89c1b9d6c5f339ab42eadb8567@linaro.org","name":"Daniel Lezcano"},"message":"sched: Fix race in idle_balance()\n\nThe scheduler main function 'schedule()' checks if there are no more tasks\non the runqueue. Then it checks if a task should be pulled in the current\nrunqueue in idle_balance() assuming it will go to idle otherwise.\n\nBut idle_balance() releases the rq->lock in order to look up the sched\ndomains and takes the lock again right after. That opens a window where\nanother cpu may put a task in our runqueue, so we won't go to idle but\nwe have filled the idle_stamp, thinking we will.\n\nThis patch closes the window by checking if the runqueue has been modified\nbut without pulling a task after taking the lock again, so we won't go to idle\nright after in the __schedule() function.\n\nSigned-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>\nCc: alex.shi@linaro.org\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/1389949444-14821-2-git-send-email-daniel.lezcano@linaro.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/25fe0ba42b91a97937f7cc57102222d4819a18ef"},{"sha":"3356b5ff36bfe685ba42e4a25b23ec82adddaa5e","author":{"email":"7dc6b67dc6a1a2319718815cbe6519298041ac95@google.com","name":"Ben Segall"},"message":"sched: Avoid throttle_cfs_rq() racing with period_timer stopping\n\nthrottle_cfs_rq() doesn't check to make sure that period_timer is running,\nand while update_curr/assign_cfs_runtime does, a concurrently running\nperiod_timer on another cpu could cancel itself between this cpu's\nupdate_curr and throttle_cfs_rq(). If there are no other cfs_rqs running\nin the tg to restart the timer, this causes the cfs_rq to be stranded\nforever.\n\nFix this by calling __start_cfs_bandwidth() in throttle if the timer is\ninactive.\n\n(Also add some sched_debug lines for cfs_bandwidth.)\n\nTested: make a run/sleep task in a cgroup, loop switching the cgroup\nbetween 1ms/100ms quota and unlimited, checking for timer_active=0 and\nthrottled=1 as a failure. With the throttle_cfs_rq() change commented out\nthis fails, with the full patch it passes.\n\nSigned-off-by: Ben Segall <bsegall@google.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nCc: pjt@google.com\nLink: http://lkml.kernel.org/r/20131016181632.22647.84174.stgit@sword-of-the-dawn.mtv.corp.google.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/3356b5ff36bfe685ba42e4a25b23ec82adddaa5e"},{"sha":"f2a6126f3030ac1306a7828dbb6db7cde8faf01a","author":{"email":"3ca33452d0ba398506359975e18b2014a884f2c8@yandex-team.ru","name":"Roman Gushchin"},"message":"sched/fair: Fix tg_set_cfs_bandwidth() deadlock on rq->lock\n\ntg_set_cfs_bandwidth() sets cfs_b->timer_active to 0 to\nforce the period timer restart. It's not safe, because\ncan lead to deadlock, described in commit 927b54fccbf0:\n\"__start_cfs_bandwidth calls hrtimer_cancel while holding rq->lock,\nwaiting for the hrtimer to finish. However, if sched_cfs_period_timer\nruns for another loop iteration, the hrtimer can attempt to take\nrq->lock, resulting in deadlock.\"\n\nThree CPUs must be involved:\n\n  CPU0               CPU1                         CPU2\n  take rq->lock      period timer fired\n  ...                take cfs_b lock\n  ...                ...                          tg_set_cfs_bandwidth()\n  throttle_cfs_rq()  release cfs_b lock           take cfs_b lock\n  ...                distribute_cfs_runtime()     timer_active = 0\n  take cfs_b->lock   wait for rq->lock            ...\n  __start_cfs_bandwidth()\n  {wait for timer callback\n   break if timer_active == 1}\n\nSo, CPU0 and CPU1 are deadlocked.\n\nInstead of resetting cfs_b->timer_active, tg_set_cfs_bandwidth can\nwait for period timer callbacks (ignoring cfs_b->timer_active) and\nrestart the timer explicitly.\n\nSigned-off-by: Roman Gushchin <klamm@yandex-team.ru>\nReviewed-by: Ben Segall <bsegall@google.com>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nLink: http://lkml.kernel.org/r/87wqdi9g8e.wl\\%klamm@yandex-team.ru\nCc: pjt@google.com\nCc: chris.j.arges@canonical.com\nCc: gregkh@linuxfoundation.org\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/f2a6126f3030ac1306a7828dbb6db7cde8faf01a"},{"sha":"5eca9b3f0a92cedc5018f57ebaaecc46c1f00036","author":{"email":"2ffd0f418731020ea4d34ffb64140382adaee654@bull.net","name":"Sebastien Buisson"},"message":"fs/buffer.c: increase the buffer-head per-CPU LRU size\n\nIncrease the buffer-head per-CPU LRU size to allow efficient filesystem\noperations that access many blocks for each transaction.  For example,\ncreating a file in a large ext4 directory with quota enabled will access\nmultiple buffer heads and will overflow the LRU at the default 8-block LRU\nsize:\n\n* parent directory inode table block (ctime, nlinks for subdirs)\n* new inode bitmap\n* inode table block\n* 2 quota blocks\n* directory leaf block (not reused, but pollutes one cache entry)\n* 2 levels htree blocks (only one is reused, other pollutes cache)\n* 2 levels indirect/index blocks (only one is reused)\n\nThe buffer-head per-CPU LRU size is raised to 16, as it shows in metadata\nperformance benchmarks up to 10% gain for create, 4% for lookup and 7% for\ndestroy.\n\nSigned-off-by: Liang Zhen <liang.zhen@intel.com>\nSigned-off-by: Andreas Dilger <andreas.dilger@intel.com>\nSigned-off-by: Sebastien Buisson <sebastien.buisson@bull.net>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/5eca9b3f0a92cedc5018f57ebaaecc46c1f00036"},{"sha":"d6d7d41652a08588ecc88c69736d8f158eb0c364","author":{"email":"818337a29cd9de0a36216deae1fd60ff7b0ab832@codeaurora.org","name":"Jeff Hugo"},"message":"soc: qcom: smd: Catch missed close state transitions\n\nThe SMD state machine contains few sync points where it can be ensured that\nthe remote side has observed a state transition before proceeding to the\nnext state.  This can lead to situations where the local side misses an\nexpected state transition and therefore does not perform expected\nprocessing.\n\nIf the local side observes a state transition that could have only occurred\nif a close state tranition was missed, perform the missed processing.\n\nSigned-off-by: Jeffrey Hugo <jhugo@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/d6d7d41652a08588ecc88c69736d8f158eb0c364"},{"sha":"1cc9562ec6bc2361215740913e106efb73abd77c","author":{"email":"50cb9bee76fd6567c3233b8a89e4a594c545792f@gmail.com","name":"flar2"},"message":"msm_performance: Make input boosting optional","distinct":false,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/1cc9562ec6bc2361215740913e106efb73abd77c"},{"sha":"f8371234f77b3924224be29a00b59e146c5935c4","author":{"email":"2e5f681ff31da01ce59fa63e77849ff81324b101@gmail.com","name":"ChevyCam94"},"message":"Merge pull request #4 from chevycam94/marshmallow\n\nMerge changes","distinct":true,"url":"https://api.github.com/repos/chevycam94/platform_kernel_huawei_angler/commits/f8371234f77b3924224be29a00b59e146c5935c4"}]}