| Date | Thu, 1 Nov 2012 17:05:48 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH v6 23/29] memcg: destroy memcg caches |
| |
On Thu, 1 Nov 2012 16:07:39 +0400 Glauber Costa <glommer@parallels.com> wrote:
> This patch implements destruction of memcg caches. Right now, > only caches where our reference counter is the last remaining are > deleted. If there are any other reference counters around, we just > leave the caches lying around until they go away. > > When that happen, a destruction function is called from the cache > code. Caches are only destroyed in process context, so we queue them > up for later processing in the general case. > > > ... > > @@ -5950,6 +6012,7 @@ static int mem_cgroup_pre_destroy(struct cgroup *cont) > { > struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); > > + mem_cgroup_destroy_all_caches(memcg); > return mem_cgroup_force_empty(memcg, false); > } >
Conflicts with linux-next cgroup changes. Looks pretty simple:
static int mem_cgroup_pre_destroy(struct cgroup *cont) { struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); int ret;
css_get(&memcg->css); ret = mem_cgroup_reparent_charges(memcg); mem_cgroup_destroy_all_caches(memcg); css_put(&memcg->css);
return ret; }
|