mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 08:31:13 +00:00
memcg: fix USED bit handling at uncharge in THP
Now, under THP: at charge: - PageCgroupUsed bit is set to all page_cgroup on a hugepage. ....set to 512 pages. at uncharge - PageCgroupUsed bit is unset on the head page. So, some pages will remain with "Used" bit. This patch fixes that Used bit is set only to the head page. Used bits for tail pages will be set at splitting if necessary. This patch adds this lock order: compound_lock() -> page_cgroup_move_lock(). [akpm@linux-foundation.org: fix warning] Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e401f1761c
commit
ca3e021417
3 changed files with 62 additions and 40 deletions
|
@ -1203,6 +1203,8 @@ static void __split_huge_page_refcount(struct page *page)
|
|||
BUG_ON(!PageDirty(page_tail));
|
||||
BUG_ON(!PageSwapBacked(page_tail));
|
||||
|
||||
mem_cgroup_split_huge_fixup(page, page_tail);
|
||||
|
||||
lru_add_page_tail(zone, page, page_tail);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue