From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber Costa Subject: Re: [PATCH v2 04/29] slub: always get the cache from its page in kfree Date: Fri, 11 May 2012 16:11:05 -0300 Message-ID: <4FAD6449.2060201@parallels.com> References: <1336758272-24284-1-git-send-email-glommer@parallels.com> <1336758272-24284-5-git-send-email-glommer@parallels.com> <4FAD531D.6030007@parallels.com> <4FAD566C.3000804@parallels.com> <4FAD585A.4070007@parallels.com> <4FAD5DA2.70803@parallels.com> <4FAD6169.8090409@parallels.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Christoph Lameter Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org, Tejun Heo , Li Zefan , Greg Thelen , Suleiman Souhlal , Michal Hocko , Johannes Weiner , devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org, Pekka Enberg On 05/11/2012 04:09 PM, Christoph Lameter wrote: > On Fri, 11 May 2012, Glauber Costa wrote: > >> On 05/11/2012 03:56 PM, Christoph Lameter wrote: >>> On Fri, 11 May 2012, Glauber Costa wrote: >>> >>>> So we don't mix pages from multiple memcgs in the same cache - we believe >>>> that >>>> would be too confusing. >>> >>> Well subsystem create caches and other things that are shared between >>> multiple processes. How can you track that? >> >> Each process that belongs to a memcg triggers the creation of a new child kmem >> cache. > > I see that. But there are other subsystems from slab allocators that do > the same. There are also objects that may be used by multiple processes. This is also true for normal user pages. And then, we do what memcg does: first one to touch, gets accounted. I don't think deviating from the memcg behavior for user pages makes much sense here. A cache won't go away while it still have objects, even after the memcg is removed (it is marked as dead) > F.e what about shm? > >>>> /proc/slabinfo reflects this information, by listing the memcg-specific >>>> slabs. >>> >>> What about /sys/kernel/slab/*? >> >> From the PoV of the global system, what you'll see is something like: >> dentry , dentry(2:memcg1), dentry(2:memcg2), etc. > > Hmmm.. Would be better to have a hierachy there. /proc/slabinfo is more > legacy. I can take a look at that then. Assuming you agree with all the rest, is looking into that a pre-requisite for merging, or is something that can be deferred for a phase2 ? (We still don't do shrinkers, for instance, so this is sure to have a phase2)