{"push_id":722773184,"size":3,"distinct_size":3,"ref":"refs/heads/cm-11.0","head":"399dabe9d9e167b4c401496e8fdeca0ea753e6c0","before":"df69a3b143cb0c14c82dba676cc1909580fa7cec","commits":[{"sha":"7dcab412bd2f8f4dacbd07c7ee373813bef643c7","author":{"email":"2bfef4e2b953b8463910cf5c5571c19ecd7a208a@rgmadvisors.com","name":"Shawn Bohrer"},"message":"sched/rt: Use root_domain of rt_rq not current processor\n\nWhen the system has multiple domains do_sched_rt_period_timer()\ncan run on any CPU and may iterate over all rt_rq in\ncpu_online_mask.  This means when balance_runtime() is run for a\ngiven rt_rq that rt_rq may be in a different rd than the current\nprocessor.  Thus if we use smp_processor_id() to get rd in\ndo_balance_runtime() we may borrow runtime from a rt_rq that is\nnot part of our rd.\n\nThis changes do_balance_runtime to get the rd from the passed in\nrt_rq ensuring that we borrow runtime only from the correct rd\nfor the given rt_rq.\n\nThis fixes a BUG at kernel/sched/rt.c:687! in __disable_runtime\nwhen we try reclaim runtime lent to other rt_rq but runtime has\nbeen lent to a rt_rq in another rd.\n\nChange-Id: Id8b9f88bdd783ef87bfa8d288a2fe7e86dd0b1e2\nSigned-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com>\nAcked-by: Steven Rostedt <rostedt@goodmis.org>\nAcked-by: Mike Galbraith <bitbucket@online.de>\nCc: peterz@infradead.org\nCc: <stable@kernel.org>\nLink: http://lkml.kernel.org/r/1358186131-29494-1-git-send-email-sbohrer@rgmadvisors.com\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nGit-commit: 89960feebaf4f9a53f93a0ce6888207e4a808799\nGit-repo: git://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git\nSigned-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/aapav01/android_kernel_samsung_ms013g-caf/commits/7dcab412bd2f8f4dacbd07c7ee373813bef643c7"},{"sha":"bbab88715b2ab729527f957d76a7640b710bcf4f","author":{"email":"e7b4910f4742918f5926c991d8a2cd122ac7e295@codeaurora.org","name":"Laura Abbott"},"message":"mm/compaction: Break out of loop on !PageBuddy in isolate_freepages_block\n\nWe received several reports of bad page state when freeing CMA pages\npreviously allocated with alloc_contig_range:\n\n BUG: Bad page state in process Binder_A  pfn:63202\n page:d21130b0 count:0 mapcount:1 mapping:  (null) index:0x7dfbf\n page flags: 0x40080068(uptodate|lru|active|swapbacked)\n\nBased on the page state, it looks like the page was still in use. The page\nflags do not make sense for the use case though. Further debugging showed\nthat despite alloc_contig_range returning success, at least one page in the\nrange still remained in the buddy allocator.\n\nThere is an issue with isolate_freepages_block. In strict mode (which CMA\nuses), if any pages in the range cannot be isolated,\nisolate_freepages_block should return failure 0. The current check keeps\ntrack of the total number of isolated pages and compares against the size\nof the range:\n\n        if (strict && nr_strict_required > total_isolated)\n                total_isolated = 0;\n\nAfter taking the zone lock, if one of the pages in the range is not\nin the buddy allocator, we continue through the loop and do not\nincrement total_isolated. If in the last iteration of the loop we isolate\nmore than one page (e.g. last page needed is a higher order page), the\ncheck for total_isolated may pass and we fail to detect that a page was\nskipped. The fix is to bail out if the loop immediately if we are in\nstrict mode. There's no benfit to continuing anyway since we need all\npages to be isolated. Additionally, drop the error checking based on\nnr_strict_required and just check the pfn ranges. This matches with\nwhat isolate_freepages_range does.\n\nChange-Id: I2a8bc4d381ae35aa15a4d2a2424f0c2de801d9ba\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/aapav01/android_kernel_samsung_ms013g-caf/commits/bbab88715b2ab729527f957d76a7640b710bcf4f"},{"sha":"399dabe9d9e167b4c401496e8fdeca0ea753e6c0","author":{"email":"39ea6a09710987173e32e37c86918024a0f441c1@suse.de","name":"Mel Gorman"},"message":"mm: compaction: do not accidentally skip pageblocks in the migrate scanner\n\nCompaction uses the ALIGN macro incorrectly with the migrate scanner by\nadding pageblock_nr_pages to a PFN.  It happened to work when initially\nimplemented as the starting PFN was also aligned but with caching\nrestarts and isolating in smaller chunks this is no longer always true.\n\nThe impact is that the migrate scanner scans outside its current\npageblock.  As pfn_valid() is still checked properly it does not cause\nany failure and the impact of the bug is that in some cases it will scan\nmore than necessary when it crosses a page boundary but by no more than\nCOMPACT_CLUSTER_MAX.  It is highly unlikely this is even measurable but\nit's still wrong so this patch addresses the problem.\n\nSigned-off-by: Mel Gorman <mgorman@suse.de>\nReviewed-by: Rik van Riel <riel@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/aapav01/android_kernel_samsung_ms013g-caf/commits/399dabe9d9e167b4c401496e8fdeca0ea753e6c0"}]}