summaryrefslogtreecommitdiffstats
path: root/mm/mm_init.c
diff options
context:
space:
mode:
authorGlauber Costa <glommer@parallels.com>2012-05-30 00:07:10 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-30 01:22:28 +0200
commit3afe36b1fe7d1e3f66752bb9548a763942f3a104 (patch)
tree7cb138ee742517f2924c1cbc1ae18c4d6afab12b /mm/mm_init.c
parentmm/memcg: apply add/del_page to lruvec (diff)
downloadlinux-3afe36b1fe7d1e3f66752bb9548a763942f3a104.tar.xz
linux-3afe36b1fe7d1e3f66752bb9548a763942f3a104.zip
memcg: always free struct memcg through schedule_work()
Right now we free struct memcg with kfree right after a rcu grace period, but defer it if we need to use vfree() to get rid of that memory area. We do that by need, because we need vfree to be called in a process context. This patch unifies this behavior, by ensuring that even kfree will happen in a separate thread. The goal is to have a stable place to call the upcoming jump label destruction function outside the realm of the complicated and quite far-reaching cgroup lock (that can't be held when holding either the cpu_hotplug.lock or jump_label_mutex) [akpm@linux-foundation.org: tweak comment] Signed-off-by: Glauber Costa <glommer@parallels.com> Cc: Tejun Heo <tj@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Michal Hocko <mhocko@suse.cz> Cc: David Miller <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/mm_init.c')
0 files changed, 0 insertions, 0 deletions