{"push_id":2971666280,"size":6,"distinct_size":6,"ref":"refs/heads/master","head":"f1e5efc6cff75e16cedb03cb5f2c070eb342ffd0","before":"50b81c563e0df998db2a08d0a10db29a8543219b","commits":[{"sha":"a07eb6569a714a1ffd526416d5ae6732b962b4db","author":{"name":"Brett Sharp","email":"bb5d2c160e5672496bd57dcef0d92ead1768a2fb@gmail.com"},"message":"Revert \"page-flags: trivial cleanup for PageTrans* helpers\"\n\nThis reverts commit 50b81c563e0df998db2a08d0a10db29a8543219b.","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/a07eb6569a714a1ffd526416d5ae6732b962b4db"},{"sha":"5634f840feb3c9fce959fa31740cc7610d4147b7","author":{"name":"Minchan Kim","email":"eee62f459f15dcddf87a8df69e8328e2a2562028@kernel.org"},"message":"mm/ksm.c: mark stable page dirty\n\nThe MADV_FREE patchset changes page reclaim to simply free a clean\nanonymous page with no dirty ptes, instead of swapping it out; but KSM\nuses clean write-protected ptes to reference the stable ksm page.  So be\nsure to mark that page dirty, so it's never mistakenly discarded.\n\n[hughd@google.com: adjusted comments]\nSigned-off-by: Minchan Kim <minchan@kernel.org>\nAcked-by: Hugh Dickins <hughd@google.com>\nCc: \"James E.J. Bottomley\" <jejb@parisc-linux.org>\nCc: \"Kirill A. Shutemov\" <kirill@shutemov.name>\nCc: Shaohua Li <shli@kernel.org>\nCc: <yalin.wang2010@gmail.com>\nCc: Andrea Arcangeli <aarcange@redhat.com>\nCc: Andy Lutomirski <luto@amacapital.net>\nCc: Arnd Bergmann <arnd@arndb.de>\nCc: Benjamin Herrenschmidt <benh@kernel.crashing.org>\nCc: Catalin Marinas <catalin.marinas@arm.com>\nCc: Chen Gang <gang.chen.5i5j@gmail.com>\nCc: Chris Zankel <chris@zankel.net>\nCc: Daniel Micay <danielmicay@gmail.com>\nCc: Darrick J. Wong <darrick.wong@oracle.com>\nCc: David S. Miller <davem@davemloft.net>\nCc: Helge Deller <deller@gmx.de>\nCc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>\nCc: Jason Evans <je@fb.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Kirill A. Shutemov <kirill@shutemov.name>\nCc: Matt Turner <mattst88@gmail.com>\nCc: Max Filippov <jcmvbkbc@gmail.com>\nCc: Mel Gorman <mgorman@suse.de>\nCc: Michael Kerrisk <mtk.manpages@gmail.com>\nCc: Michal Hocko <mhocko@suse.com>\nCc: Mika Penttil <mika.penttila@nextfour.com>\nCc: Ralf Baechle <ralf@linux-mips.org>\nCc: Richard Henderson <rth@twiddle.net>\nCc: Rik van Riel <riel@redhat.com>\nCc: Roland Dreier <roland@kernel.org>\nCc: Russell King <rmk@arm.linux.org.uk>\nCc: Shaohua Li <shli@kernel.org>\nCc: Will Deacon <will.deacon@arm.com>\nCc: Wu Fengguang <fengguang.wu@intel.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/5634f840feb3c9fce959fa31740cc7610d4147b7"},{"sha":"08f358535548caeac854ba8a0e30f882c3e7dfcd","author":{"name":"Zhou Chengming","email":"16948d3050f73b4b08cefe96950889f03fb9d70d@huawei.com"},"message":"ksm: fix conflict between mmput and scan_get_next_rmap_item\n\nA concurrency issue about KSM in the function scan_get_next_rmap_item.\n\ntask A (ksmd):\t\t\t\t|task B (the mm's task):\n\t\t\t\t\t|\nmm = slot->mm;\t\t\t\t|\ndown_read(&mm->mmap_sem);\t\t|\n\t\t\t\t\t|\n...\t\t\t\t\t|\n\t\t\t\t\t|\nspin_lock(&ksm_mmlist_lock);\t\t|\n\t\t\t\t\t|\nksm_scan.mm_slot go to the next slot;\t|\n\t\t\t\t\t|\nspin_unlock(&ksm_mmlist_lock);\t\t|\n\t\t\t\t\t|mmput() ->\n\t\t\t\t\t|\tksm_exit():\n\t\t\t\t\t|\n\t\t\t\t\t|spin_lock(&ksm_mmlist_lock);\n\t\t\t\t\t|if (mm_slot && ksm_scan.mm_slot != mm_slot) {\n\t\t\t\t\t|\tif (!mm_slot->rmap_list) {\n\t\t\t\t\t|\t\teasy_to_free = 1;\n\t\t\t\t\t|\t\t...\n\t\t\t\t\t|\n\t\t\t\t\t|if (easy_to_free) {\n\t\t\t\t\t|\tmmdrop(mm);\n\t\t\t\t\t|\t...\n\t\t\t\t\t|\n\t\t\t\t\t|So this mm_struct may be freed in the mmput().\n\t\t\t\t\t|\nup_read(&mm->mmap_sem);\t\t\t|\n\nAs we can see above, the ksmd thread may access a mm_struct that already\nbeen freed to the kmem_cache.  Suppose a fork will get this mm_struct from\nthe kmem_cache, the ksmd thread then call up_read(&mm->mmap_sem), will\ncause mmap_sem.count to become -1.\n\nAs suggested by Andrea Arcangeli, unmerge_and_remove_all_rmap_items has\nthe same SMP race condition, so fix it too.  My prev fix in function\nscan_get_next_rmap_item will introduce a different SMP race condition, so\njust invert the up_read/spin_unlock order as Andrea Arcangeli said.\n\nLink: http://lkml.kernel.org/r/1462708815-31301-1-git-send-email-zhouchengming1@huawei.com\nSigned-off-by: Zhou Chengming <zhouchengming1@huawei.com>\nSuggested-by: Andrea Arcangeli <aarcange@redhat.com>\nReviewed-by: Andrea Arcangeli <aarcange@redhat.com>\nCc: Hugh Dickins <hughd@google.com>\nCc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>\nCc: Vlastimil Babka <vbabka@suse.cz>\nCc: Geliang Tang <geliangtang@163.com>\nCc: Minchan Kim <minchan@kernel.org>\nCc: Hanjun Guo <guohanjun@huawei.com>\nCc: Ding Tianhong <dingtianhong@huawei.com>\nCc: Li Bin <huawei.libin@huawei.com>\nCc: Zhen Lei <thunder.leizhen@huawei.com>\nCc: Xishi Qiu <qiuxishi@huawei.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/08f358535548caeac854ba8a0e30f882c3e7dfcd"},{"sha":"f8e3e31b0ceda11e48b3905032bc6b1c0b3b9f9e","author":{"name":"Michal Hocko","email":"829500b200af6c2a0eca4dfd5c388e6b8fbe8dc6@suse.com"},"message":"proc, oom: drop bogus task_lock and mm check\n\nSeries \"Handle oom bypass more gracefully\", V5\n\nThe following 10 patches should put some order to very rare cases of mm\nshared between processes and make the paths which bypass the oom killer\noom reapable and therefore much more reliable finally.  Even though mm\nshared outside of thread group is rare (either vforked tasks for a short\nperiod, use_mm by kernel threads or exotic thread model of\nclone(CLONE_VM) without CLONE_SIGHAND) it is better to cover them.  Not\nonly it makes the current oom killer logic quite hard to follow and\nreason about it can lead to weird corner cases.  E.g.  it is possible to\nselect an oom victim which shares the mm with unkillable process or\nbypass the oom killer even when other processes sharing the mm are still\nalive and other weird cases.\n\nPatch 1 drops bogus task_lock and mm check from oom_{score_}adj_write.\nThis can be considered a bug fix with a low impact as nobody has noticed\nfor years.\n\nPatch 2 drops sighand lock because it is not needed anymore as pointed\nby Oleg.\n\nPatch 3 is a clean up of oom_score_adj handling and a preparatory work\nfor later patches.\n\nPatch 4 enforces oom_adj_score to be consistent between processes\nsharing the mm to behave consistently with the regular thread groups.\nThis can be considered a user visible behavior change because one thread\ngroup updating oom_score_adj will affect others which share the same mm\nvia clone(CLONE_VM).  I argue that this should be acceptable because we\nalready have the same behavior for threads in the same thread group and\nsharing the mm without signal struct is just a different model of\nthreading.  This is probably the most controversial part of the series,\nI would like to find some consensus here.  There were some suggestions\nto hook some counter/oom_score_adj into the mm_struct but I feel that\nthis is not necessary right now and we can rely on proc handler +\noom_kill_process to DTRT.  I can be convinced otherwise but I strongly\nthink that whatever we do the userspace has to have a way to see the\ncurrent oom priority as consistently as possible.\n\nPatch 5 makes sure that no vforked task is selected if it is sharing the\nmm with oom unkillable task.\n\nPatch 6 ensures that all user tasks sharing the mm are killed which in\nturn makes sure that all oom victims are oom reapable.\n\nPatch 7 guarantees that task_will_free_mem will always imply reapable\nbypass of the oom killer.\n\nPatch 8 is new in this version and it addresses an issue pointed out by\n0-day OOM report where an oom victim was reaped several times.\n\nPatch 9 puts an upper bound on how many times oom_reaper tries to reap a\ntask and hides it from the oom killer to move on when no progress can be\nmade.  This will give an upper bound to how long an oom_reapable task\ncan block the oom killer from selecting another victim if the oom_reaper\nis not able to reap the victim.\n\nPatch 10 tries to plug the (hopefully) last hole when we can still lock\nup when the oom victim is shared with oom unkillable tasks (kthreads and\nglobal init).  We just try to be best effort in that case and rather\nfallback to kill something else than risk a lockup.\n\nThis patch (of 10):\n\nBoth oom_adj_write and oom_score_adj_write are using task_lock, check for\ntask->mm and fail if it is NULL.  This is not needed because the\noom_score_adj is per signal struct so we do not need mm at all.  The code\nhas been introduced by 3d5992d2ac7d (\"oom: add per-mm oom disable count\")\nbut we do not do per-mm oom disable since c9f01245b6a7 (\"oom: remove\noom_disable_count\").\n\nThe task->mm check is even not correct because the current thread might\nhave exited but the thread group might be still alive - e.g.  thread group\nleader would lead that echo $VAL > /proc/pid/oom_score_adj would always\nfail with EINVAL while /proc/pid/task/$other_tid/oom_score_adj would\nsucceed.  This is unexpected at best.\n\nRemove the lock along with the check to fix the unexpected behavior and\nalso because there is not real need for the lock in the first place.\n\nLink: http://lkml.kernel.org/r/1466426628-15074-2-git-send-email-mhocko@kernel.org\nSigned-off-by: Michal Hocko <mhocko@suse.com>\nReviewed-by: Vladimir Davydov <vdavydov@virtuozzo.com>\nAcked-by: Oleg Nesterov <oleg@redhat.com>\nCc: David Rientjes <rientjes@google.com>\nCc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/f8e3e31b0ceda11e48b3905032bc6b1c0b3b9f9e"},{"sha":"571cc16f3d012ed3a4b5fa64c7193d5e3e86a6d7","author":{"name":"Michal Hocko","email":"829500b200af6c2a0eca4dfd5c388e6b8fbe8dc6@suse.com"},"message":"proc, oom: drop bogus sighand lock\n\nOleg has pointed out that can simplify both oom_adj_{read,write} and\noom_score_adj_{read,write} even further and drop the sighand lock.  The\nmain purpose of the lock was to protect p->signal from going away but this\nwill not happen since ea6d290ca34c (\"signals: make task_struct->signal\nimmutable/refcountable\").\n\nThe other role of the lock was to synchronize different writers,\nespecially those with CAP_SYS_RESOURCE.  Introduce a mutex for this\npurpose.  Later patches will need this lock anyway.\n\nSuggested-by: Oleg Nesterov <oleg@redhat.com>\nLink: http://lkml.kernel.org/r/1466426628-15074-3-git-send-email-mhocko@kernel.org\nSigned-off-by: Michal Hocko <mhocko@suse.com>\nAcked-by: Oleg Nesterov <oleg@redhat.com>\nCc: Vladimir Davydov <vdavydov@virtuozzo.com>\nCc: David Rientjes <rientjes@google.com>\nCc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/571cc16f3d012ed3a4b5fa64c7193d5e3e86a6d7"},{"sha":"f1e5efc6cff75e16cedb03cb5f2c070eb342ffd0","author":{"name":"Michal Hocko","email":"829500b200af6c2a0eca4dfd5c388e6b8fbe8dc6@suse.com"},"message":"proc, oom_adj: extract oom_score_adj setting into a helper\n\nCurrently we have two proc interfaces to set oom_score_adj.  The legacy\n/proc/<pid>/oom_adj and /proc/<pid>/oom_score_adj which both have their\nspecific handlers.  Big part of the logic is duplicated so extract the\ncommon code into __set_oom_adj helper.  Legacy knob still expects some\ndetails slightly different so make sure those are handled same way - e.g.\nthe legacy mode ignores oom_score_adj_min and it warns about the usage.\n\nThis patch shouldn't introduce any functional changes.\n\nLink: http://lkml.kernel.org/r/1466426628-15074-4-git-send-email-mhocko@kernel.org\nSigned-off-by: Michal Hocko <mhocko@suse.com>\nAcked-by: Oleg Nesterov <oleg@redhat.com>\nCc: Vladimir Davydov <vdavydov@virtuozzo.com>\nCc: David Rientjes <rientjes@google.com>\nCc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/tatboy/Kernel_LGE_H932/commits/f1e5efc6cff75e16cedb03cb5f2c070eb342ffd0"}]}
{"actor":{"display_login":"tatboy"}}