GitHub PushEvent at 2014-06-11 16:35:50
Repository: WCS-S8073
Actor: Noob-X
Payload: {"shas":[["a4671d9e02cfedd397852d88c28d6d46bb833537","634f508bd7c47cf0ee4126243675c3e598920fbc@jp.fujitsu.com","memcg: add mem_cgroup_replace_page_cache() to fix LRU issue\n\ncommit ab936cbcd02072a34b60d268f94440fd5cf1970b upstream.\n\nCommit ef6a3c6311 (\"mm: add replace_page_cache_page() function\") added a\nfunction replace_page_cache_page().  This function replaces a page in the\nradix-tree with a new page.  WHen doing this, memory cgroup needs to fix\nup the accounting information.  memcg need to check PCG_USED bit etc.\n\nIn some(many?) cases, 'newpage' is on LRU before calling\nreplace_page_cache().  So, memcg's LRU accounting information should be\nfixed, too.\n\nThis patch adds mem_cgroup_replace_page_cache() and removes the old hooks.\n In that function, old pages will be unaccounted without touching\nres_counter and new page will be accounted to the memcg (of old page).\nWHen overwriting pc->mem_cgroup of newpage, take zone->lru_lock and avoid\nraces with LRU handling.\n\nBackground:\n  replace_page_cache_page() is called by FUSE code in its splice() handling.\n  Here, 'newpage' is replacing oldpage but this newpage is not a newly allocated\n  page and may be on LRU. LRU mis-accounting will be critical for memory cgroup\n  because rmdir() checks the whole LRU is empty and there is no account leak.\n  If a page is on the other LRU than it should be, rmdir() will fail.\n\nThis bug was added in March 2011, but no bug report yet.  I guess there\nare not many people who use memcg and FUSE at the same time with upstream\nkernels.\n\nThe result of this bug is that admin cannot destroy a memcg because of\naccount leak.  So, no panic, no deadlock.  And, even if an active cgroup\nexist, umount can succseed.  So no problem at shutdown.\n\nSigned-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nAcked-by: Johannes Weiner <hannes@cmpxchg.org>\nAcked-by: Michal Hocko <mhocko@suse.cz>\nCc: Miklos Szeredi <mszeredi@suse.cz>\nCc: Hugh Dickins <hughd@google.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Greg Kroah-Hartman <gregkh@suse.de>","KAMEZAWA Hiroyuki",true],["b6039801a560632837d4f2588074ce7f64782c4c","12330474acf818c36105a159b1ab0efedce0665c@gmail.com","mm: change isolate mode from #define to bitwise type\n\ncommit 4356f21d09283dc6d39a6f7287a65ddab61e2808 upstream.\n\nStable note: Not tracked in Bugzilla. This patch makes later patches\n\teasier to apply but has no other impact.\n\nChange ISOLATE_XXX macro with bitwise isolate_mode_t type.  Normally,\nmacro isn't recommended as it's type-unsafe and making debugging harder as\nsymbol cannot be passed throught to the debugger.\n\nQuote from Johannes\n\" Hmm, it would probably be cleaner to fully convert the isolation mode\ninto independent flags.  INACTIVE, ACTIVE, BOTH is currently a\ntri-state among flags, which is a bit ugly.\"\n\nThis patch moves isolate mode from swap.h to mmzone.h by memcontrol.h\n\nSigned-off-by: Minchan Kim <minchan.kim@gmail.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nCc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\nCc: Mel Gorman <mgorman@suse.de>\nCc: Rik van Riel <riel@redhat.com>\nCc: Michal Hocko <mhocko@suse.cz>\nCc: Andrea Arcangeli <aarcange@redhat.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Mel Gorman <mgorman@suse.de>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","Minchan Kim",true],["88af5b2e9cc2b84ad7409ea22b4695764f5f1e34","a072bd86e7423c3c2ebbacc86f4e99c432f4ab09@gmail.com","Merge branch 'master' of https://github.com/Noob-X/WCS-S8073","Noob-X",true]],"size":3,"ref":"refs/heads/master","head":"88af5b2e9cc2b84ad7409ea22b4695764f5f1e34"}