All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>,
	"bsingharora@gmail.com" <bsingharora@gmail.com>,
	"hannes@cmpxchg.org" <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@suse.cz>, Ying Han <yinghan@google.com>
Subject: Re: [BUGFIX][PATCH 5/5] memcg: fix percpu cached charge draining frequency
Date: Mon, 13 Jun 2011 14:25:01 -0700	[thread overview]
Message-ID: <20110613142501.15e14b2f.akpm@linux-foundation.org> (raw)
In-Reply-To: <20110613121648.3d28afcd.kamezawa.hiroyu@jp.fujitsu.com>

On Mon, 13 Jun 2011 12:16:48 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

> >From 18b12e53f1cdf6d7feed1f9226c189c34866338c Mon Sep 17 00:00:00 2001
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Date: Mon, 13 Jun 2011 11:25:43 +0900
> Subject: [PATCH 5/5] memcg: fix percpu cached charge draining frequency
> 
>  For performance, memory cgroup caches some "charge" from res_counter
>  into per cpu cache. This works well but because it's cache,
>  it needs to be flushed in some cases. Typical cases are
>          1. when someone hit limit.
>          2. when rmdir() is called and need to charges to be 0.
> 
> But "1" has problem.
> 
> Recently, with large SMP machines, we see many kworker runs because
> of flushing memcg's cache. Bad things in implementation are
> that even if a cpu contains a cache for memcg not related to
> a memcg which hits limit, drain code is called.
> 
> This patch does
> 	A) check percpu cache contains a useful data or not.
> 	B) check other asynchronous percpu draining doesn't run.
> 	C) don't call local cpu callback.
> 	D) don't call at softlimit reclaim.
> 
>
> ...
>
> +DEFINE_MUTEX(percpu_charge_mutex);

I made this static.  If we later wish to give it kernel-wide scope then
"percpu_charge_mutex" will not be a good choice of name.


WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>,
	"bsingharora@gmail.com" <bsingharora@gmail.com>,
	"hannes@cmpxchg.org" <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@suse.cz>, Ying Han <yinghan@google.com>
Subject: Re: [BUGFIX][PATCH 5/5] memcg: fix percpu cached charge draining frequency
Date: Mon, 13 Jun 2011 14:25:01 -0700	[thread overview]
Message-ID: <20110613142501.15e14b2f.akpm@linux-foundation.org> (raw)
In-Reply-To: <20110613121648.3d28afcd.kamezawa.hiroyu@jp.fujitsu.com>

On Mon, 13 Jun 2011 12:16:48 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

> >From 18b12e53f1cdf6d7feed1f9226c189c34866338c Mon Sep 17 00:00:00 2001
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Date: Mon, 13 Jun 2011 11:25:43 +0900
> Subject: [PATCH 5/5] memcg: fix percpu cached charge draining frequency
> 
>  For performance, memory cgroup caches some "charge" from res_counter
>  into per cpu cache. This works well but because it's cache,
>  it needs to be flushed in some cases. Typical cases are
>          1. when someone hit limit.
>          2. when rmdir() is called and need to charges to be 0.
> 
> But "1" has problem.
> 
> Recently, with large SMP machines, we see many kworker runs because
> of flushing memcg's cache. Bad things in implementation are
> that even if a cpu contains a cache for memcg not related to
> a memcg which hits limit, drain code is called.
> 
> This patch does
> 	A) check percpu cache contains a useful data or not.
> 	B) check other asynchronous percpu draining doesn't run.
> 	C) don't call local cpu callback.
> 	D) don't call at softlimit reclaim.
> 
>
> ...
>
> +DEFINE_MUTEX(percpu_charge_mutex);

I made this static.  If we later wish to give it kernel-wide scope then
"percpu_charge_mutex" will not be a good choice of name.

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-06-13 21:25 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-13  3:00 [BUGFIX][PATCH 0/5] memcg bugfixes in the last week KAMEZAWA Hiroyuki
2011-06-13  3:00 ` KAMEZAWA Hiroyuki
2011-06-13  3:03 ` [BUGFIX][PATCH 1/5] memcg fix numa_stat permission KAMEZAWA Hiroyuki
2011-06-13  3:03   ` KAMEZAWA Hiroyuki
2011-06-14  9:42   ` Johannes Weiner
2011-06-14  9:42     ` Johannes Weiner
2011-06-13  3:06 ` [BUGFIX][PATCH 2/5] memcg: fix init_page_cgroup nid with sparsemem KAMEZAWA Hiroyuki
2011-06-13  3:06   ` KAMEZAWA Hiroyuki
2011-06-14  9:44   ` Johannes Weiner
2011-06-14  9:44     ` Johannes Weiner
2011-06-16 10:09   ` [-git build bug, PATCH] " Ingo Molnar
2011-06-16 10:09     ` Ingo Molnar
2011-06-16 13:01     ` Hiroyuki Kamezawa
2011-06-16 13:01       ` Hiroyuki Kamezawa
2011-06-13  3:09 ` [BUGFIX][PATCH 3/5] memcg: clear mm->owner when last possible owner leaves KAMEZAWA Hiroyuki
2011-06-13  3:09   ` KAMEZAWA Hiroyuki
2011-06-14  9:45   ` Johannes Weiner
2011-06-14  9:45     ` Johannes Weiner
2011-06-13  3:11 ` [BUGFIX][PATCH 4/5] memcg: fix wrong check of noswap with softlimit KAMEZAWA Hiroyuki
2011-06-13  3:11   ` KAMEZAWA Hiroyuki
2011-06-14  9:48   ` Johannes Weiner
2011-06-14  9:48     ` Johannes Weiner
2011-06-13  3:16 ` [BUGFIX][PATCH 5/5] memcg: fix percpu cached charge draining frequency KAMEZAWA Hiroyuki
2011-06-13  3:16   ` KAMEZAWA Hiroyuki
2011-06-13 21:25   ` Andrew Morton [this message]
2011-06-13 21:25     ` Andrew Morton
2011-06-15  0:09     ` KAMEZAWA Hiroyuki
2011-06-15  0:09       ` KAMEZAWA Hiroyuki
2011-06-15  1:19       ` Andrew Morton
2011-06-15  1:19         ` Andrew Morton
2011-06-14  7:36   ` Michal Hocko
2011-06-14  7:36     ` Michal Hocko
2011-06-15  0:12     ` KAMEZAWA Hiroyuki
2011-06-15  0:12       ` KAMEZAWA Hiroyuki
2011-06-15  1:12       ` KAMEZAWA Hiroyuki
2011-06-15  1:12         ` KAMEZAWA Hiroyuki
2011-06-15  7:15         ` Michal Hocko
2011-06-15  7:15           ` Michal Hocko
2011-06-14 10:04   ` Johannes Weiner
2011-06-14 10:04     ` Johannes Weiner
2011-06-15  0:16     ` KAMEZAWA Hiroyuki
2011-06-15  0:16       ` KAMEZAWA Hiroyuki
2011-06-15  1:49   ` [BUGFIX][PATCH v6] " KAMEZAWA Hiroyuki
2011-06-15  1:49     ` KAMEZAWA Hiroyuki
2011-06-15  1:52     ` [BUGFIX][PATCH v2] memcg: avoid percpu cached charge draining at softlimit KAMEZAWA Hiroyuki
2011-06-15  1:52       ` KAMEZAWA Hiroyuki
2011-06-15  5:30     ` [BUGFIX][PATCH v6] memcg: fix percpu cached charge draining frequency Ying Han
2011-06-15  5:30       ` Ying Han

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=20110613142501.15e14b2f.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=bsingharora@gmail.com \
    --cc=hannes@cmpxchg.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=nishimura@mxp.nes.nec.co.jp \
    --cc=yinghan@google.com \
    /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.