mm: memcontrol: take a css reference for each charged page
authorJohannes Weiner <[email protected]>
Wed, 10 Dec 2014 23:42:42 +0000 (15:42 -0800)
committerLinus Torvalds <[email protected]>
Thu, 11 Dec 2014 01:41:05 +0000 (17:41 -0800)
commite8ea14cc6eadfe2ea63e9989e16e62625a2619f8
tree8109a731e199928c2fd87d3633a56a3251d85245
parent5ac8fb31ad2ebd6492d1c5e8f31846b532f03945
mm: memcontrol: take a css reference for each charged page

Charges currently pin the css indirectly by playing tricks during
css_offline(): user pages stall the offlining process until all of them
have been reparented, whereas kmemcg acquires a keep-alive reference if
outstanding kernel pages are detected at that point.

In preparation for removing all this complexity, make the pinning explicit
and acquire a css references for every charged page.

Signed-off-by: Johannes Weiner <[email protected]>
Reviewed-by: Vladimir Davydov <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/cgroup.h
include/linux/percpu-refcount.h
mm/memcontrol.c