mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
memcg: simplify LRU handling by new rule
Now, at LRU handling, memory cgroup needs to do complicated works to see valid pc->mem_cgroup, which may be overwritten. This patch is for relaxing the protocol. This patch guarantees - when pc->mem_cgroup is overwritten, page must not be on LRU. By this, LRU routine can believe pc->mem_cgroup and don't need to check bits on pc->flags. This new rule may adds small overheads to swapin. But in most case, lru handling gets faster. After this patch, PCG_ACCT_LRU bit is obsolete and removed. [akpm@linux-foundation.org: remove unneeded VM_BUG_ON(), restore hannes's christmas tree] [akpm@linux-foundation.org: clean up code comment] [hughd@google.com: fix NULL mem_cgroup_try_charge] Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Miklos Szeredi <mszeredi@suse.cz> Acked-by: Michal Hocko <mhocko@suse.cz> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Ying Han <yinghan@google.com> Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4e5f01c2b9
commit
38c5d72f3e
2 changed files with 54 additions and 77 deletions
|
|
@ -10,8 +10,6 @@ enum {
|
|||
/* flags for mem_cgroup and file and I/O status */
|
||||
PCG_MOVE_LOCK, /* For race between move_account v.s. following bits */
|
||||
PCG_FILE_MAPPED, /* page is accounted as "mapped" */
|
||||
/* No lock in page_cgroup */
|
||||
PCG_ACCT_LRU, /* page has been accounted for (under lru_lock) */
|
||||
__NR_PCG_FLAGS,
|
||||
};
|
||||
|
||||
|
|
@ -75,12 +73,6 @@ TESTPCGFLAG(Used, USED)
|
|||
CLEARPCGFLAG(Used, USED)
|
||||
SETPCGFLAG(Used, USED)
|
||||
|
||||
SETPCGFLAG(AcctLRU, ACCT_LRU)
|
||||
CLEARPCGFLAG(AcctLRU, ACCT_LRU)
|
||||
TESTPCGFLAG(AcctLRU, ACCT_LRU)
|
||||
TESTCLEARPCGFLAG(AcctLRU, ACCT_LRU)
|
||||
|
||||
|
||||
SETPCGFLAG(FileMapped, FILE_MAPPED)
|
||||
CLEARPCGFLAG(FileMapped, FILE_MAPPED)
|
||||
TESTPCGFLAG(FileMapped, FILE_MAPPED)
|
||||
|
|
|
|||
Loading…
Reference in a new issue