From: Michal Hocko <mhocko@suse.cz>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"hannes@cmpxchg.org" <hannes@cmpxchg.org>,
"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [PATCH v5 1/6] memg: better numa scanning
Date: Wed, 10 Aug 2011 12:00:42 +0200 [thread overview]
Message-ID: <20110810100042.GA15007@tiehlicka.suse.cz> (raw)
In-Reply-To: <20110809190824.99347a0f.kamezawa.hiroyu@jp.fujitsu.com>
On Tue 09-08-11 19:08:24, KAMEZAWA Hiroyuki wrote:
>
> Making memcg numa's scanning information update by schedule_work().
>
> Now, memcg's numa information is updated under a thread doing
> memory reclaim. It's not very heavy weight now. But upcoming updates
> around numa scanning will add more works. This patch makes
> the update be done by schedule_work() and reduce latency caused
> by this updates.
I am not sure whether this pays off. Anyway, I think it would be better
to place this patch somewhere at the end of the series so that we can
measure its impact separately.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Otherwise looks good to me.
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Just a minor nit bellow.
> ---
> mm/memcontrol.c | 42 ++++++++++++++++++++++++++++++------------
> 1 file changed, 30 insertions(+), 12 deletions(-)
>
> Index: mmotm-Aug3/mm/memcontrol.c
> ===================================================================
> --- mmotm-Aug3.orig/mm/memcontrol.c
> +++ mmotm-Aug3/mm/memcontrol.c
> @@ -285,6 +285,7 @@ struct mem_cgroup {
> nodemask_t scan_nodes;
> atomic_t numainfo_events;
> atomic_t numainfo_updating;
> + struct work_struct numainfo_update_work;
> #endif
> /*
> * Should the accounting and control be hierarchical, per subtree?
> @@ -1567,6 +1568,23 @@ static bool test_mem_cgroup_node_reclaim
> }
> #if MAX_NUMNODES > 1
>
> +static void mem_cgroup_numainfo_update_work(struct work_struct *work)
> +{
> + struct mem_cgroup *memcg;
> + int nid;
> +
> + memcg = container_of(work, struct mem_cgroup, numainfo_update_work);
> +
> + memcg->scan_nodes = node_states[N_HIGH_MEMORY];
> + for_each_node_mask(nid, node_states[N_HIGH_MEMORY]) {
> + if (!test_mem_cgroup_node_reclaimable(memcg, nid, false))
> + node_clear(nid, memcg->scan_nodes);
> + }
> + atomic_set(&memcg->numainfo_updating, 0);
> + css_put(&memcg->css);
> +}
> +
> +
> /*
> * Always updating the nodemask is not very good - even if we have an empty
> * list or the wrong list here, we can start from some node and traverse all
> @@ -1575,7 +1593,6 @@ static bool test_mem_cgroup_node_reclaim
> */
Would be good to update the function comment as well (we still have 10s
period there).
> static void mem_cgroup_may_update_nodemask(struct mem_cgroup *mem)
> {
> - int nid;
> /*
> * numainfo_events > 0 means there was at least NUMAINFO_EVENTS_TARGET
> * pagein/pageout changes since the last update.
[...]
--
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@suse.cz>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"hannes@cmpxchg.org" <hannes@cmpxchg.org>,
"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [PATCH v5 1/6] memg: better numa scanning
Date: Wed, 10 Aug 2011 12:00:42 +0200 [thread overview]
Message-ID: <20110810100042.GA15007@tiehlicka.suse.cz> (raw)
In-Reply-To: <20110809190824.99347a0f.kamezawa.hiroyu@jp.fujitsu.com>
On Tue 09-08-11 19:08:24, KAMEZAWA Hiroyuki wrote:
>
> Making memcg numa's scanning information update by schedule_work().
>
> Now, memcg's numa information is updated under a thread doing
> memory reclaim. It's not very heavy weight now. But upcoming updates
> around numa scanning will add more works. This patch makes
> the update be done by schedule_work() and reduce latency caused
> by this updates.
I am not sure whether this pays off. Anyway, I think it would be better
to place this patch somewhere at the end of the series so that we can
measure its impact separately.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Otherwise looks good to me.
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Just a minor nit bellow.
> ---
> mm/memcontrol.c | 42 ++++++++++++++++++++++++++++++------------
> 1 file changed, 30 insertions(+), 12 deletions(-)
>
> Index: mmotm-Aug3/mm/memcontrol.c
> ===================================================================
> --- mmotm-Aug3.orig/mm/memcontrol.c
> +++ mmotm-Aug3/mm/memcontrol.c
> @@ -285,6 +285,7 @@ struct mem_cgroup {
> nodemask_t scan_nodes;
> atomic_t numainfo_events;
> atomic_t numainfo_updating;
> + struct work_struct numainfo_update_work;
> #endif
> /*
> * Should the accounting and control be hierarchical, per subtree?
> @@ -1567,6 +1568,23 @@ static bool test_mem_cgroup_node_reclaim
> }
> #if MAX_NUMNODES > 1
>
> +static void mem_cgroup_numainfo_update_work(struct work_struct *work)
> +{
> + struct mem_cgroup *memcg;
> + int nid;
> +
> + memcg = container_of(work, struct mem_cgroup, numainfo_update_work);
> +
> + memcg->scan_nodes = node_states[N_HIGH_MEMORY];
> + for_each_node_mask(nid, node_states[N_HIGH_MEMORY]) {
> + if (!test_mem_cgroup_node_reclaimable(memcg, nid, false))
> + node_clear(nid, memcg->scan_nodes);
> + }
> + atomic_set(&memcg->numainfo_updating, 0);
> + css_put(&memcg->css);
> +}
> +
> +
> /*
> * Always updating the nodemask is not very good - even if we have an empty
> * list or the wrong list here, we can start from some node and traverse all
> @@ -1575,7 +1593,6 @@ static bool test_mem_cgroup_node_reclaim
> */
Would be good to update the function comment as well (we still have 10s
period there).
> static void mem_cgroup_may_update_nodemask(struct mem_cgroup *mem)
> {
> - int nid;
> /*
> * numainfo_events > 0 means there was at least NUMAINFO_EVENTS_TARGET
> * pagein/pageout changes since the last update.
[...]
--
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9
Czech Republic
--
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>
next prev parent reply other threads:[~2011-08-10 10:00 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-09 10:04 [PATCH v5 0/6] memg: better numa scanning KAMEZAWA Hiroyuki
2011-08-09 10:04 ` KAMEZAWA Hiroyuki
2011-08-09 10:08 ` [PATCH v5 1/6] " KAMEZAWA Hiroyuki
2011-08-09 10:08 ` KAMEZAWA Hiroyuki
2011-08-10 10:00 ` Michal Hocko [this message]
2011-08-10 10:00 ` Michal Hocko
2011-08-10 23:30 ` KAMEZAWA Hiroyuki
2011-08-10 23:30 ` KAMEZAWA Hiroyuki
2011-08-10 23:44 ` [PATCH] memcg: fix comment on update nodemask KAMEZAWA Hiroyuki
2011-08-10 23:44 ` KAMEZAWA Hiroyuki
2011-08-11 13:25 ` Michal Hocko
2011-08-11 13:25 ` Michal Hocko
2011-08-09 10:09 ` [PATCH v5 2/6] memcg: stop vmscan when enough done KAMEZAWA Hiroyuki
2011-08-09 10:09 ` KAMEZAWA Hiroyuki
2011-08-10 14:14 ` Michal Hocko
2011-08-10 14:14 ` Michal Hocko
2011-08-10 23:52 ` KAMEZAWA Hiroyuki
2011-08-10 23:52 ` KAMEZAWA Hiroyuki
2011-08-11 14:50 ` Michal Hocko
2011-08-11 14:50 ` Michal Hocko
2011-08-12 12:44 ` [PATCH] memcg: add nr_pages argument for hierarchical reclaim Michal Hocko
2011-08-12 12:44 ` Michal Hocko
2011-08-17 0:54 ` [PATCH v5 2/6] memcg: stop vmscan when enough done KAMEZAWA Hiroyuki
2011-08-17 0:54 ` KAMEZAWA Hiroyuki
2011-08-17 11:35 ` Michal Hocko
2011-08-17 11:35 ` Michal Hocko
2011-08-17 23:52 ` KAMEZAWA Hiroyuki
2011-08-17 23:52 ` KAMEZAWA Hiroyuki
2011-08-18 6:27 ` Michal Hocko
2011-08-18 6:27 ` Michal Hocko
2011-08-18 6:42 ` KAMEZAWA Hiroyuki
2011-08-18 6:42 ` KAMEZAWA Hiroyuki
2011-08-18 7:46 ` Michal Hocko
2011-08-18 7:46 ` Michal Hocko
2011-08-18 12:57 ` [PATCH v3] memcg: add nr_pages argument for hierarchical reclaim Michal Hocko
2011-08-18 12:57 ` Michal Hocko
2011-08-18 13:58 ` Johannes Weiner
2011-08-18 13:58 ` Johannes Weiner
2011-08-18 14:40 ` Michal Hocko
2011-08-18 14:40 ` Michal Hocko
2011-08-09 10:10 ` [PATCH v5 3/6] memg: vmscan pass nodemask KAMEZAWA Hiroyuki
2011-08-09 10:10 ` KAMEZAWA Hiroyuki
2011-08-10 11:19 ` Michal Hocko
2011-08-10 11:19 ` Michal Hocko
2011-08-10 23:43 ` KAMEZAWA Hiroyuki
2011-08-10 23:43 ` KAMEZAWA Hiroyuki
2011-08-09 10:11 ` [PATCH v5 4/6] memg: calculate numa weight for vmscan KAMEZAWA Hiroyuki
2011-08-09 10:11 ` KAMEZAWA Hiroyuki
2011-08-17 14:34 ` Michal Hocko
2011-08-17 14:34 ` Michal Hocko
2011-08-18 0:17 ` KAMEZAWA Hiroyuki
2011-08-18 0:17 ` KAMEZAWA Hiroyuki
2011-08-18 8:41 ` Michal Hocko
2011-08-18 8:41 ` Michal Hocko
2011-08-19 0:06 ` KAMEZAWA Hiroyuki
2011-08-19 0:06 ` KAMEZAWA Hiroyuki
2011-08-09 10:12 ` [PATCH v5 5/6] memg: vmscan select victim node by weight KAMEZAWA Hiroyuki
2011-08-09 10:12 ` KAMEZAWA Hiroyuki
2011-08-18 13:34 ` Michal Hocko
2011-08-18 13:34 ` Michal Hocko
2011-08-09 10:13 ` [PATCH v5 6/6] memg: do target scan if unbalanced KAMEZAWA Hiroyuki
2011-08-09 10:13 ` KAMEZAWA Hiroyuki
2011-08-09 14:33 ` [PATCH v5 0/6] memg: better numa scanning Michal Hocko
2011-08-09 14:33 ` Michal Hocko
2011-08-10 0:15 ` KAMEZAWA Hiroyuki
2011-08-10 0:15 ` KAMEZAWA Hiroyuki
2011-08-10 6:03 ` KAMEZAWA Hiroyuki
2011-08-10 6:03 ` KAMEZAWA Hiroyuki
2011-08-10 14:20 ` Michal Hocko
2011-08-10 14:20 ` 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=20110810100042.GA15007@tiehlicka.suse.cz \
--to=mhocko@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nishimura@mxp.nes.nec.co.jp \
/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.