All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Davydov <vdavydov@parallels.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: mm-commits@vger.kernel.org, penberg@kernel.org,
	hannes@cmpxchg.org, cl@linux.com, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: + slub-fix-memcg_propagate_slab_attrs.patch added to -mm tree
Date: Tue, 22 Apr 2014 14:52:57 +0400	[thread overview]
Message-ID: <53564A09.3090008@parallels.com> (raw)
In-Reply-To: <20140422103051.GH29311@dhcp22.suse.cz>

On 04/22/2014 02:30 PM, Michal Hocko wrote:
> On Fri 18-04-14 13:08:17, Andrew Morton wrote:
> [...]
>> From: Vladimir Davydov <vdavydov@parallels.com>
>> Subject: slub: fix memcg_propagate_slab_attrs
>>
>> After creating a cache for a memcg we should initialize its sysfs attrs
>> with the values from its parent.  That's what memcg_propagate_slab_attrs
>> is for.  Currently it's broken - we clearly muddled root-vs-memcg caches
>> there.  Let's fix it up.
> 
> Andrew didn't so I'll do. What is the effect of the mismatch? I am
> really drowning in that code...

If we tune a kmem cache's params via sysfs and then create a memcg that
wants to allocate from the cache, the memcg's copy of the cache will
have default values of the sysfs params instead of those of the global
cache.

> 
>> Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
>> Cc: Christoph Lameter <cl@linux.com>
>> Cc: Pekka Enberg <penberg@kernel.org>
>> Cc: Michal Hocko <mhocko@suse.cz>
>> Cc: Johannes Weiner <hannes@cmpxchg.org>
>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>> ---
>>
>>  mm/slub.c |   11 +++++++----
>>  1 file changed, 7 insertions(+), 4 deletions(-)
>>
>> diff -puN mm/slub.c~slub-fix-memcg_propagate_slab_attrs mm/slub.c
>> --- a/mm/slub.c~slub-fix-memcg_propagate_slab_attrs
>> +++ a/mm/slub.c
>> @@ -5071,15 +5071,18 @@ static void memcg_propagate_slab_attrs(s
>>  #ifdef CONFIG_MEMCG_KMEM
>>  	int i;
>>  	char *buffer = NULL;
>> +	struct kmem_cache *root_cache;
>>  
>> -	if (!is_root_cache(s))
>> +	if (is_root_cache(s))
>>  		return;
>>  
>> +	root_cache = s->memcg_params->root_cache;
>> +
>>  	/*
>>  	 * This mean this cache had no attribute written. Therefore, no point
>>  	 * in copying default values around
>>  	 */
>> -	if (!s->max_attr_size)
>> +	if (!root_cache->max_attr_size)
>>  		return;
>>  
>>  	for (i = 0; i < ARRAY_SIZE(slab_attrs); i++) {
>> @@ -5101,7 +5104,7 @@ static void memcg_propagate_slab_attrs(s
>>  		 */
>>  		if (buffer)
>>  			buf = buffer;
>> -		else if (s->max_attr_size < ARRAY_SIZE(mbuf))
>> +		else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf))
>>  			buf = mbuf;
>>  		else {
>>  			buffer = (char *) get_zeroed_page(GFP_KERNEL);
>> @@ -5110,7 +5113,7 @@ static void memcg_propagate_slab_attrs(s
>>  			buf = buffer;
>>  		}
>>  
>> -		attr->show(s->memcg_params->root_cache, buf);
>> +		attr->show(root_cache, buf);
>>  		attr->store(s, buf, strlen(buf));
>>  	}
>>  
>> _
>>
>> Patches currently in -mm which might be from vdavydov@parallels.com are
>>
>> slub-fix-memcg_propagate_slab_attrs.patch
>> slb-charge-slabs-to-kmemcg-explicitly.patch
>> mm-get-rid-of-__gfp_kmemcg.patch
>> mm-get-rid-of-__gfp_kmemcg-fix.patch
>> slab-document-kmalloc_order.patch
>>
> 

--
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>

  reply	other threads:[~2014-04-22 10:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-18 20:08 + slub-fix-memcg_propagate_slab_attrs.patch added to -mm tree akpm
2014-04-22 10:30 ` Michal Hocko
2014-04-22 10:52   ` Vladimir Davydov [this message]
2014-04-22 12:04     ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53564A09.3090008@parallels.com \
    --to=vdavydov@parallels.com \
    --cc=akpm@linux-foundation.org \
    --cc=cl@linux.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=mm-commits@vger.kernel.org \
    --cc=penberg@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.