Re: [PATCH v3 06/16] memcg: infrastructure to match an allocation to the right cache
From: Tejun Heo <tj@kernel.org>
Date: 2012-09-24 17:56:25
Also in:
cgroups, lkml
Hello, Glauber. On Mon, Sep 24, 2012 at 12:46:35PM +0400, Glauber Costa wrote:
quoted
quoted
+#ifdef CONFIG_MEMCG_KMEM + /* Slab accounting */ + struct kmem_cache *slabs[MAX_KMEM_CACHE_TYPES]; +#endifBah, 400 entry array in struct mem_cgroup. Can't we do something a bit more flexible?I guess. I still would like it to be an array, so we can easily access its fields. There are two ways around this: 1) Do like the events mechanism and allocate this in a separate structure. Add a pointer chase in the access, and I don't think it helps much because it gets allocated anyway. But we could at least defer it to the time when we limit the cache.
Start at some reasonable size and then double it as usage grows? How many kmem_caches do we typically end up using?
quoted
quoted
+ if (memcg->slabs[idx] == NULL) { + memcg_create_cache_enqueue(memcg, cachep);Do we want to wait for the work item if @gfp allows?I tried this once, and it got complicated enough that I deemed as "not worth it". I honestly don't remember much of the details now, it was one of the first things I tried, and a bunch of time has passed. If you think it is absolutely worth it, I can try it again. But at the very best, I view this as an optimization.
I don't know. It seems like a logical thing to try and depends on how complex it gets. I don't think it's a must. The whole thing is somewhat opportunistic after all. Thanks. -- tejun -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>