{"push_id":1143858458,"size":52,"distinct_size":52,"ref":"refs/heads/_kernel","head":"a4b406c4fba30d96955dbce1e9634789d007307a","before":"55c3cb0dcb300940129e51c30810550629f77a22","commits":[{"sha":"e165b6c18140d91f18bd339ed96368cc4bddafd7","author":{"name":"underscoremone","email":"af83eeeacb52df311f90df38e5f8ab8adf9ccfae@gmail.com"},"message":"lowmemorykiller: rebase","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/e165b6c18140d91f18bd339ed96368cc4bddafd7"},{"sha":"34495ad07727fa8f897a4a8687bc2173aa6fc8dc","author":{"name":"Jeffrey Carlyle","email":"36872957c48b90d37362947c22d12323ee0315f1@motorola.com"},"message":"trace: memkill: trace LMK and OOM kills\n\nHow to enable tracer:\n\n  # mount -t debugfs nodev /sys/kernel/debug\n  # echo 1 > /sys/kernel/debug/tracing/tracing_on\n  # echo 1 > /sys/kernel/debug/tracing/events/memkill/enable\n  # cat /sys/kernel/debug/tracing/trace\n\nEvent format:\n\n  oom_kill: <pid> <comm> <total_vm> <anon_rss> <file_rss> <oom_score_adj> <order> <points> <cached> <freeswap>\n  oom_kill_shared: <pid> <comm>\n  lmk_kill: <pid> <comm> <selected_oom_adj> <selected_tasksize> <min_adj> <cached> <freeswap>\n\n(cherry picked from commit ef733ddfbb73cd33daf36720fa474ce4c8acb1f7)\n(cherry picked from commit afd673191a7a23ac673a196b4757f1f3ff7030e9)\n\nSigned-off-by: Jeffrey Carlyle <jeff.carlyle@motorola.com>\nReviewed-by: Jason Hrycay <jason.hrycay@motorola.com>\nReviewed-by: Thirumarai Selvi S <a16462@motorola.com>\nReviewed-by: Christopher Fries <qcf001@motorola.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/34495ad07727fa8f897a4a8687bc2173aa6fc8dc"},{"sha":"a7205a1c71524d8f71dc92f472dbd33ad6581228","author":{"name":"Yuanyuan Zhong","email":"a3e5193d236223bee8de9bf990d92420af63d414@motorola.com"},"message":"trace: memkill: per-zone page state for LMK\n\nLMK considers memory status per zone. This change appends\ngfp mask and per-zone free/file page state to LMK kill tracing.\nA field <Node_id>:<Zone_id>:<Nr_free>:<Nr_page> is printed for\neach zone.\n\n(cherry picked from commit 2e59bf04b7634d3a9e28d088cb103f8d5fc18504)\n(cherry picked from commit 0df9fdfb81972d3ef19b9d32a28e35efc9fed889)\n\nSigned-off-by: Yuanyuan Zhong <a6510c@motorola.com>\nSigned-off-by: Jeffrey Carlyle <jeff.carlyle@motorola.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/a7205a1c71524d8f71dc92f472dbd33ad6581228"},{"sha":"79c9327039e7c695deb7f057f24b393d891a13b5","author":{"name":"Mekala Natarajan","email":"fd4fd032d9bcea9164fd884928eea510497dbb26@codeaurora.org"},"message":"lowmemorykiller: Don't count reserve page twice\n\nThis is essentially revert of\neeb0f4f35fc1a4c0a5e30ec73e8e61916afa0399\n\nJustification:\nZone aware LMK logic already discounts on the reserved\nfree pages. Hence, present code does double discount\nand that leads to improper accounting of the free memory.\nFix this by not discounting reserved_free pages.\n\nCRs-Fixed: 648978\n\nBug: 17494249\nChange-Id: If0536d4a71b36edf0f46f3db723b6d59e36a89ee\nSigned-off-by: Chintan Pandya <cpandya@codeaurora.org>\nSigned-off-by: Mekala Natarajan <mekalan@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/79c9327039e7c695deb7f057f24b393d891a13b5"},{"sha":"52abba6dbf50b7e06b7a0d7ee920e52773dafd84","author":{"name":"Weijie Yang","email":"8c97edccb1d93792b9d0c97c45d654274c724617@samsung.com"},"message":"staging: android: lowmemorykiller: set TIF_MEMDIE before send kill sig\n\nSet TIF_MEMDIE tsk_thread flag before send kill signal to the\nselected thread. This is to fit a usual code sequence and avoid\npotential race issue.\n\nSigned-off-by: Weijie Yang <weijie.yang@samsung.com>\nAcked-by: David Rientjes <rientjes@google.com>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n(cherry picked from commit 6bc2b856bb7c49f238914d965c0b1057ec78226e)\n\nChange-Id: I3c4869d525ce80d339ec3742382beae2ee45f76e\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/52abba6dbf50b7e06b7a0d7ee920e52773dafd84"},{"sha":"e5a4d8a826aca4169665baeb5e66558af1ecd74a","author":{"name":"Susheel Khiani","email":"5aa6d1b9ef056f0957607a4b0807dabe07fa9b70@codeaurora.org"},"message":"lowmemorykiller: Do proper NULL checks\n\nPointer other_free is getting dereferenced without\nperforming proper NULL checks which may cause issue.\nDo proper NULL checks at all points before dereferencing\nit.\n\nSigned-off-by: Susheel Khiani <skhiani@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/e5a4d8a826aca4169665baeb5e66558af1ecd74a"},{"sha":"367ba917d4fa779fe169faa490f0a3f2d9a795f0","author":{"name":"Liam Mark","email":"db460ca79fa3459eb33cde4b2632331670821bd4@codeaurora.org"},"message":"lowmemorykiller: enhance debug information\n\nAdd extra debug information to make it easier to both determine\nwhy the lowmemorykiller killed a process and to help find the source\nof memory leaks.\n\nAlso increase the debug level for \"select\" statements to help prevent\nflooding the log.\n\nSigned-off-by: Liam Mark <lmark@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/367ba917d4fa779fe169faa490f0a3f2d9a795f0"},{"sha":"88f4e9f7e94e3c284292d4525cc70f5788193677","author":{"name":"Laura Abbott","email":"8553df7474583031a579ce7388bd843e3b158549@codeaurora.org"},"message":"lowmemorykiller: Dump out slab state information\n\nLeaks from the slab allocator are a very common cause of\nout of memory issues and excessive lowmemorykiller killing.\nDump out the slab statistics as well to help with debugging.\n\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/88f4e9f7e94e3c284292d4525cc70f5788193677"},{"sha":"40a6746ed9021673bd18ec4d8cf31a4a0c44f5e3","author":{"name":"Laura Abbott","email":"8553df7474583031a579ce7388bd843e3b158549@codeaurora.org"},"message":"mm: Add notifier framework for showing memory\n\nThere are many drivers in the kernel which can hold on\nto lots of memory. It can be useful to dump out all those\ndrivers at key points in the kernel. Introduct a notifier\nframework for dumping this information. When the notifiers\nare called, drivers can dump out the state of any memory\nthey may be using.\n\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/40a6746ed9021673bd18ec4d8cf31a4a0c44f5e3"},{"sha":"1ccba37d3dd96c947e8cace3a20e508778d9e88d","author":{"name":"Vinayak Menon","email":"c6e79b2757471d38dfbeaf17f987a81f42208aac@codeaurora.org"},"message":"mm: vmpressure: allow in-kernel clients to subscribe for events\n\nCurrently, vmpressure is tied to memcg and its events are\navailable only to userspace clients. This patch removes\nthe dependency on CONFIG_MEMCG and adds a mechanism for\nin-kernel clients to subscribe for vmpressure events (in\nfact raw vmpressure values are delivered instead of vmpressure\nlevels, to provide clients more flexibility to take actions\non custom pressure levels which are not currently defined\nby vmpressure module).\n\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/1ccba37d3dd96c947e8cace3a20e508778d9e88d"},{"sha":"c00ac082c7ac5cc350206de13199339ae7d2568d","author":{"name":"Vinayak Menon","email":"c6e79b2757471d38dfbeaf17f987a81f42208aac@codeaurora.org"},"message":"mm: showmem: make the notifiers atomic\n\nThere are places in kernel like the lowmemorykiller which\ninvokes show_mem_call_notifiers from an atomic context.\nSo move from a blocking notifier to atomic. At present\nthe notifier callbacks does not call sleeping functions,\nbut it should be made sure, it does not happen in future also.\n\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/c00ac082c7ac5cc350206de13199339ae7d2568d"},{"sha":"c8dbe15d5e7a4b9ec83e1b656930c0b12bb3c5c3","author":{"name":"Vinayak Menon","email":"c6e79b2757471d38dfbeaf17f987a81f42208aac@codeaurora.org"},"message":"mm: vmpressure: scale pressure based on reclaim context\n\nThe existing calculation of vmpressure takes into account only\nthe ratio of reclaimed to scanned pages, but not the time spent\nor the difficulty in reclaiming those pages. For e.g. when there\nare quite a number of file pages in the system, an allocation\nrequest can be satisfied by reclaiming the file pages alone. If\nsuch a reclaim is succesful, the vmpressure value will remain low\nirrespective of the time spent by the reclaim code to free up the\nfile pages. With a feature like lowmemorykiller, killing a task\ncan be faster than reclaiming the file pages alone. So if the\nvmpressure values reflect the reclaim difficulty level, clients\ncan make a decision based on that, for e.g. to kill a task early.\n\nThis patch monitors the number of pages scanned in the direct\nreclaim path and scales the vmpressure level according to that.\n\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/c8dbe15d5e7a4b9ec83e1b656930c0b12bb3c5c3"},{"sha":"606e36586eb7a10a7ae7a089529ef1ca99112b0d","author":{"name":"Vinayak Menon","email":"c6e79b2757471d38dfbeaf17f987a81f42208aac@codeaurora.org"},"message":"mm: vmpressure: account allocstalls only on higher pressures\n\nAt present any vmpressure value is scaled up if the pages are\nreclaimed through direct reclaim. This can result in false\nvmpressure values. Consider a case where a device is booted up\nand most of the memory is occuppied by file pages. kswapd will\nmake sure that high watermark is maintained. Now when a sudden\nhuge allocation request comes in, the system will definitely\nhave to get into direct reclaims. The vmpressures can be very low,\nbut because of allocstall accounting logic even these low values\nwill be scaled to values nearing 100. This can result in\nunnecessary LMK kills for example. So define a tunable threshold\nfor vmpressure above which the allocstalls will be accounted.\n\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/606e36586eb7a10a7ae7a089529ef1ca99112b0d"},{"sha":"c7f8e4e1e66b6072e39c8f7f22b3822c06e7be90","author":{"name":"Michal Hocko","email":"549a3b539eb67715c6526d830d82ed0bec455278@suse.cz"},"message":"vmpressure: change vmpressure::sr_lock to spinlock\n\nThere is nothing that can sleep inside critical sections protected by\nthis lock and those sections are really small so there doesn't make much\nsense to use mutex for them.  Change the log to a spinlock\n\nSigned-off-by: Michal Hocko <mhocko@suse.cz>\nReported-by: Tejun Heo <tj@kernel.org>\nCc: Anton Vorontsov <anton.vorontsov@linaro.org>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Li Zefan <lizefan@huawei.com>\nReviewed-by: Tejun Heo <tj@kernel.org>\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":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/c7f8e4e1e66b6072e39c8f7f22b3822c06e7be90"},{"sha":"72ce714e93c6ff9608c513655f8358f725ac5d3f","author":{"name":"Michal Hocko","email":"549a3b539eb67715c6526d830d82ed0bec455278@suse.cz"},"message":"vmpressure: do not check for pending work to prevent from new work\n\nbecause it is racy and it doesn't give us much anyway as schedule_work\nhandles this case already.\n\nSigned-off-by: Michal Hocko <mhocko@suse.cz>\nReported-by: Tejun Heo <tj@kernel.org>\nCc: Anton Vorontsov <anton.vorontsov@linaro.org>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Li Zefan <lizefan@huawei.com>\nAcked-by: Tejun Heo <tj@kernel.org>\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":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/72ce714e93c6ff9608c513655f8358f725ac5d3f"},{"sha":"23098da4767bb1ec526423d43b0437a8d0f3ddf7","author":{"name":"Michal Hocko","email":"549a3b539eb67715c6526d830d82ed0bec455278@suse.cz"},"message":"vmpressure: make sure there are no events queued after memcg is offlined\n\nvmpressure is called synchronously from reclaim where the target_memcg\nis guaranteed to be alive but the eventfd is signaled from the work\nqueue context.  This means that memcg (along with vmpressure structure\nwhich is embedded into it) might go away while the work item is pending\nwhich would result in use-after-release bug.\n\nWe have two possible ways how to fix this.  Either vmpressure pins memcg\nbefore it schedules vmpr->work and unpin it in vmpressure_work_fn or\nexplicitely flush the work item from the css_offline context (as\nsuggested by Tejun).\n\nThis patch implements the later one and it introduces vmpressure_cleanup\nwhich flushes the vmpressure work queue item item.  It hooks into\nmem_cgroup_css_offline after the memcg itself is cleaned up.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Michal Hocko <mhocko@suse.cz>\nReported-by: Tejun Heo <tj@kernel.org>\nCc: Anton Vorontsov <anton.vorontsov@linaro.org>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Li Zefan <lizefan@huawei.com>\nAcked-by: Tejun Heo <tj@kernel.org>\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":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/23098da4767bb1ec526423d43b0437a8d0f3ddf7"},{"sha":"3bbf3dcb5afc071b36186c9a1638f92b39420478","author":{"name":"Andrew Morton","email":"1c34db6615bc25a29a6a7c99217d037c3d74d16a@linux-foundation.org"},"message":"mm/vmpressure.c: fix race in vmpressure_work_fn()\n\nIn some android devices, there will be a \"divide by zero\" exception.\nvmpr->scanned could be zero before spin_lock(&vmpr->sr_lock).\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id=88051\n\n[akpm@linux-foundation.org: neaten]\nReported-by: ji_ang <ji_ang@163.com>\nCc: Anton Vorontsov <anton.vorontsov@linaro.org>\nCc: <stable@vger.kernel.org>\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":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/3bbf3dcb5afc071b36186c9a1638f92b39420478"},{"sha":"ff0979b1c3a9af1c80f04389be4cb128d0b2f111","author":{"name":"Martijn Coenen","email":"af3eddcbb421ceabee93fcfeaefd7af1c6299549@google.com"},"message":"mm: vmpressure: dynamic window sizing\n\nThe window size used for calculating vm pressure events was\npreviously fixed at 512 pages. The window size has a big\nimpact on the rate of notifications sent off to userspace,\nin particular when using the \"low\" level. On machines with\na lot of memory, the current value is likely excessive. On\nthe other hand, if the window size is too big, we might\ndelay memory pressure events for too long, especially at\ncritical levels of memory pressure.\n\nThis patch attempts to address that problem with two changes.\n\nThe first change is to calculate the window size\nbased on the machine size, quite similar to how the vm\nwatermarks are being calculated. This reduces the chance\nof false positives at any pressure level. Using the machine\nsize only makes sense on the root cgroup though; for non-root\ncgroups, their hard memory limit is used to calculate the\nwindow size. If no hard memory limit is set, we fall back to\nthe default window size that was previously used.\n\nThe second change is based on an idea from Johannes Weiner, to\nonly report medium and low pressure levels for every\nX windows that we scan. This reduces the frequency with\nwhich we report low/medium pressure levels, but at the same\ntime will still report critical memory pressure immediately.\n\nChange-Id: Ieffca055b2fb6aa27ae0179e0a588e6fcb173a61\nSigned-off-by: Martijn Coenen <maco@google.com>\n[neo: Adjusted for in-kernel clients to subscribe for events]\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/ff0979b1c3a9af1c80f04389be4cb128d0b2f111"},{"sha":"c43eb17177192a0bb93ed12cedaa50cb3cc76474","author":{"name":"Laura Abbott","email":"8553df7474583031a579ce7388bd843e3b158549@codeaurora.org"},"message":"lowmemorykiller: Run the lowmemory notifier when killing\n\nWhen the lowmemory killer starts killing processes, it's useful to\nbe able to see the state of other memory in the system. Call the\nlowmemory notifier to get other clients to dump out their state.\n\nSigned-off-by: Laura Abbott <lauraa@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/c43eb17177192a0bb93ed12cedaa50cb3cc76474"},{"sha":"6fadf0bb427d9c6deeb0e2e8a5b627c319ece674","author":{"name":"Vinayak Menon","email":"c6e79b2757471d38dfbeaf17f987a81f42208aac@codeaurora.org"},"message":"lowmemorykiller: use for_each_thread instead of buggy while_each_thread\n\nCouple of cases were reported few months ago, where the cpu was blocked\non the following call stack for /seconds/ after which the watchdog fires.\n\ntest_task_flag(p = 0xE14ABF00, ?)\nlowmem_shrink(?, sc = 0xD7A03C04)\nshrink_slab(shrink = 0xD7A03C04, nr_pages_scanned = 0, lru_pages = 120)\ntry_to_free_pages(zonelist = 0xC1116440, ?, ?, ?)\n__alloc_pages_nodemask(?, order = 0, ?, nodemask = 0x0)\n__do_page_cache_readahead(mapping = 0xEB819364, filp = 0xCC16DC00, offset =\nra_submit(?, ?, ?)\nfilemap_fault(vma = 0xC105D240, vmf = 0xD7A03DC8)\n\nThere weren't any dumps to analyse the case, but this can be a possible\nreason. while_each_thread is known to be buggy and can result in the\nfunction looping forever if the task exits, even when protected with\nrcu_read_lock. Use for_each_thread instead.\n\nMore details on the problems with while_each_thread can be found\nat https://lkml.org/lkml/2013/12/2/320\n\nChange-Id: I5eb6e4b463f81142a2a7824db389201357432ec7\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>\nSigned-off-by: Pranav Vashi <neobuddy89@gmail.com>","distinct":true,"url":"https://api.github.com/repos/underscoremone/_kernel-trlte-mm/commits/6fadf0bb427d9c6deeb0e2e8a5b627c319ece674"}]}
{"actor":{"display_login":"underscoremone"}}