From: Hillf Danton <dhillf@gmail.com>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Mel Gorman <mel@csn.ul.ie>, Paul Menage <paul@paulmenage.org>,
Rob Landley <rob@landley.net>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@suse.cz>,
Balbir Singh <bsingharora@gmail.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>,
Christoph Lameter <cl@linux-foundation.org>,
Pekka Enberg <penberg@kernel.org>, Matt Mackall <mpm@selenic.com>,
Jarkko Sakkinen <jarkko.sakkinen@intel.com>,
Matt Fleming <matt.fleming@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
Yinghai Lu <yinghai@kernel.org>,
David Rientjes <rientjes@google.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Wanlong Gao <gaowanlong@cn.fujitsu.com>,
Petr Holasek <pholasek@redhat.com>,
Djalal Harouni <tixxdz@opendz.org>, Jiri Kosina <jkosina@suse.cz>,
Laura Vasilescu <laura@rosedu.org>,
WANG Cong <xiyou.wangcong@gmail.com>,
Hugh Dickins <hughd@google.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Konstantin Khlebnikov <khlebnikov@openvz.org>,
Sam Ravnborg <sam@ravnborg.org>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Jim Cromie <jim.cromie@gmail.com>,
Pawel Moll <pawel.moll@arm.com>,
Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>,
Oleg Nesterov <oleg@redhat.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Michal Nazarewicz <mina86@mina86.com>,
Mel Gorman <mgorman@suse.de>,
Gavin Shan <shangw@linux.vnet.ibm.com>,
Wen Congyang <wency@cn.fujitsu.com>,
Rik van Riel <riel@redhat.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Wang Sheng-Hui <shhuiw@gmail.com>,
Minchan Kim <minchan@kernel.org>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, cgroups@vger.kernel.org,
containers@lists.linux-foundation.org
Subject: Re: [RFC PATCH 02/23 V2] cpuset: use N_MEMORY instead N_HIGH_MEMORY
Date: Sat, 4 Aug 2012 21:51:21 +0800 [thread overview]
Message-ID: <CAJd=RBDuGh26YxLGA2AdM4eu7-ZZAO8jjrJm4ZPjc62f3XZj5w@mail.gmail.com> (raw)
In-Reply-To: <1343875991-7533-3-git-send-email-laijs@cn.fujitsu.com>
On Thu, Aug 2, 2012 at 10:52 AM, Lai Jiangshan <laijs@cn.fujitsu.com> wrote:
> N_HIGH_MEMORY stands for the nodes that has normal or high memory.
> N_MEMORY stands for the nodes that has any memory.
>
> The code here need to handle with the nodes which have memory, we should
> use N_MEMORY instead.
>
As described in the change log of 01/23, N_MEMORY is introduced to be
alias of N_HIGH_MEMORY, but the above sounds like you are correcting
the usage of N_HIGH_MEMORY.
> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
> ---
Other than that,
Acked-by: Hillf Danton <dhillf@gmail.com>
> Documentation/cgroups/cpusets.txt | 2 +-
> include/linux/cpuset.h | 2 +-
> kernel/cpuset.c | 32 ++++++++++++++++----------------
> 3 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/Documentation/cgroups/cpusets.txt b/Documentation/cgroups/cpusets.txt
> index cefd3d8..12e01d4 100644
> --- a/Documentation/cgroups/cpusets.txt
> +++ b/Documentation/cgroups/cpusets.txt
> @@ -218,7 +218,7 @@ and name space for cpusets, with a minimum of additional kernel code.
> The cpus and mems files in the root (top_cpuset) cpuset are
> read-only. The cpus file automatically tracks the value of
> cpu_online_mask using a CPU hotplug notifier, and the mems file
> -automatically tracks the value of node_states[N_HIGH_MEMORY]--i.e.,
> +automatically tracks the value of node_states[N_MEMORY]--i.e.,
> nodes with memory--using the cpuset_track_online_nodes() hook.
>
>
> diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
> index 838320f..8c8a60d 100644
> --- a/include/linux/cpuset.h
> +++ b/include/linux/cpuset.h
> @@ -144,7 +144,7 @@ static inline nodemask_t cpuset_mems_allowed(struct task_struct *p)
> return node_possible_map;
> }
>
> -#define cpuset_current_mems_allowed (node_states[N_HIGH_MEMORY])
> +#define cpuset_current_mems_allowed (node_states[N_MEMORY])
> static inline void cpuset_init_current_mems_allowed(void) {}
>
> static inline int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask)
> diff --git a/kernel/cpuset.c b/kernel/cpuset.c
> index f33c715..2b133db 100644
> --- a/kernel/cpuset.c
> +++ b/kernel/cpuset.c
> @@ -302,10 +302,10 @@ static void guarantee_online_cpus(const struct cpuset *cs,
> * are online, with memory. If none are online with memory, walk
> * up the cpuset hierarchy until we find one that does have some
> * online mems. If we get all the way to the top and still haven't
> - * found any online mems, return node_states[N_HIGH_MEMORY].
> + * found any online mems, return node_states[N_MEMORY].
> *
> * One way or another, we guarantee to return some non-empty subset
> - * of node_states[N_HIGH_MEMORY].
> + * of node_states[N_MEMORY].
> *
> * Call with callback_mutex held.
> */
> @@ -313,14 +313,14 @@ static void guarantee_online_cpus(const struct cpuset *cs,
> static void guarantee_online_mems(const struct cpuset *cs, nodemask_t *pmask)
> {
> while (cs && !nodes_intersects(cs->mems_allowed,
> - node_states[N_HIGH_MEMORY]))
> + node_states[N_MEMORY]))
> cs = cs->parent;
> if (cs)
> nodes_and(*pmask, cs->mems_allowed,
> - node_states[N_HIGH_MEMORY]);
> + node_states[N_MEMORY]);
> else
> - *pmask = node_states[N_HIGH_MEMORY];
> - BUG_ON(!nodes_intersects(*pmask, node_states[N_HIGH_MEMORY]));
> + *pmask = node_states[N_MEMORY];
> + BUG_ON(!nodes_intersects(*pmask, node_states[N_MEMORY]));
> }
>
> /*
> @@ -1100,7 +1100,7 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
> return -ENOMEM;
>
> /*
> - * top_cpuset.mems_allowed tracks node_stats[N_HIGH_MEMORY];
> + * top_cpuset.mems_allowed tracks node_stats[N_MEMORY];
> * it's read-only
> */
> if (cs == &top_cpuset) {
> @@ -1122,7 +1122,7 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
> goto done;
>
> if (!nodes_subset(trialcs->mems_allowed,
> - node_states[N_HIGH_MEMORY])) {
> + node_states[N_MEMORY])) {
> retval = -EINVAL;
> goto done;
> }
> @@ -2034,7 +2034,7 @@ static struct cpuset *cpuset_next(struct list_head *queue)
> * before dropping down to the next. It always processes a node before
> * any of its children.
> *
> - * In the case of memory hot-unplug, it will remove nodes from N_HIGH_MEMORY
> + * In the case of memory hot-unplug, it will remove nodes from N_MEMORY
> * if all present pages from a node are offlined.
> */
> static void
> @@ -2073,7 +2073,7 @@ scan_cpusets_upon_hotplug(struct cpuset *root, enum hotplug_event event)
>
> /* Continue past cpusets with all mems online */
> if (nodes_subset(cp->mems_allowed,
> - node_states[N_HIGH_MEMORY]))
> + node_states[N_MEMORY]))
> continue;
>
> oldmems = cp->mems_allowed;
> @@ -2081,7 +2081,7 @@ scan_cpusets_upon_hotplug(struct cpuset *root, enum hotplug_event event)
> /* Remove offline mems from this cpuset. */
> mutex_lock(&callback_mutex);
> nodes_and(cp->mems_allowed, cp->mems_allowed,
> - node_states[N_HIGH_MEMORY]);
> + node_states[N_MEMORY]);
> mutex_unlock(&callback_mutex);
>
> /* Move tasks from the empty cpuset to a parent */
> @@ -2134,8 +2134,8 @@ void cpuset_update_active_cpus(bool cpu_online)
>
> #ifdef CONFIG_MEMORY_HOTPLUG
> /*
> - * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY].
> - * Call this routine anytime after node_states[N_HIGH_MEMORY] changes.
> + * Keep top_cpuset.mems_allowed tracking node_states[N_MEMORY].
> + * Call this routine anytime after node_states[N_MEMORY] changes.
> * See cpuset_update_active_cpus() for CPU hotplug handling.
> */
> static int cpuset_track_online_nodes(struct notifier_block *self,
> @@ -2148,7 +2148,7 @@ static int cpuset_track_online_nodes(struct notifier_block *self,
> case MEM_ONLINE:
> oldmems = top_cpuset.mems_allowed;
> mutex_lock(&callback_mutex);
> - top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
> + top_cpuset.mems_allowed = node_states[N_MEMORY];
> mutex_unlock(&callback_mutex);
> update_tasks_nodemask(&top_cpuset, &oldmems, NULL);
> break;
> @@ -2177,7 +2177,7 @@ static int cpuset_track_online_nodes(struct notifier_block *self,
> void __init cpuset_init_smp(void)
> {
> cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask);
> - top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
> + top_cpuset.mems_allowed = node_states[N_MEMORY];
>
> hotplug_memory_notifier(cpuset_track_online_nodes, 10);
>
> @@ -2245,7 +2245,7 @@ void cpuset_init_current_mems_allowed(void)
> *
> * Description: Returns the nodemask_t mems_allowed of the cpuset
> * attached to the specified @tsk. Guaranteed to return some non-empty
> - * subset of node_states[N_HIGH_MEMORY], even if this means going outside the
> + * subset of node_states[N_MEMORY], even if this means going outside the
> * tasks cpuset.
> **/
>
> --
> 1.7.1
>
--
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>
next prev parent reply other threads:[~2012-08-04 13:51 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-02 2:52 [RFC PATCH 00/23 V2] memory, numa: introduce MOVABLE-dedicated node and online_movable for hotplug Lai Jiangshan
[not found] ` <1343875991-7533-1-git-send-email-laijs-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2012-08-02 2:52 ` [RFC PATCH 01/23 V2] node_states: introduce N_MEMORY Lai Jiangshan
2012-08-02 16:01 ` Christoph Lameter
2012-08-04 13:38 ` Hillf Danton
2012-08-02 2:52 ` [RFC PATCH 02/23 V2] cpuset: use N_MEMORY instead N_HIGH_MEMORY Lai Jiangshan
2012-08-04 13:51 ` Hillf Danton [this message]
2012-08-02 2:52 ` [RFC PATCH 03/23 V2] procfs: " Lai Jiangshan
2012-08-04 13:53 ` Hillf Danton
2012-08-02 2:52 ` [RFC PATCH 04/23 V2] oom: " Lai Jiangshan
2012-08-04 13:54 ` Hillf Danton
2012-08-02 2:52 ` [RFC PATCH 05/23 V2] mm,migrate: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 06/23 V2] mempolicy: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 07/23 V2] memcontrol: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 08/23 V2] hugetlb: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 09/23 V2] vmstat: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 10/23 V2] kthread: " Lai Jiangshan
2012-08-02 2:52 ` [RFC PATCH 11/23 V2] init: " Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 12/23 V2] vmscan: " Lai Jiangshan
2012-08-04 13:55 ` Hillf Danton
2012-08-02 2:53 ` [RFC PATCH 13/23 V2] page_alloc: use N_MEMORY instead N_HIGH_MEMORY change the node_states initialization Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 14/23 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing Lai Jiangshan
2012-08-02 16:04 ` Christoph Lameter
[not found] ` <alpine.DEB.2.00.1208021102560.23049-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
2012-08-06 5:39 ` Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 15/23 V2] memory_hotplug: fix missing nodemask management Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 16/23 V2] numa: add CONFIG_MOVABLE_NODE for movable-dedicated node Lai Jiangshan
2012-08-02 16:06 ` Christoph Lameter
2012-08-02 2:53 ` [RFC PATCH 17/23 V2] page_alloc.c: don't subtract unrelated memmap from zone's present pages Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 18/23 V2] page_alloc: add kernelcore_max_addr Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 19/23 V2] x86: get pg_data_t's memory from other node Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 20/23 V2] x86: use memblock_set_current_limit() to set memblock.current_limit Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 21/23 V2] memblock: limit memory address from memblock Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 22/23 V2] memblock: compare current_limit with end variable at memblock_find_in_range_node() Lai Jiangshan
2012-08-02 2:53 ` [RFC PATCH 23/23 V2] mm, memory-hotplug: add online_movable Lai Jiangshan
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='CAJd=RBDuGh26YxLGA2AdM4eu7-ZZAO8jjrJm4ZPjc62f3XZj5w@mail.gmail.com' \
--to=dhillf@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=bhelgaas@google.com \
--cc=bsingharora@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=cl@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--cc=dan.magenheimer@oracle.com \
--cc=gaowanlong@cn.fujitsu.com \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=hpa@zytor.com \
--cc=hughd@google.com \
--cc=ibm-acpi@hmh.eng.br \
--cc=jarkko.sakkinen@intel.com \
--cc=jim.cromie@gmail.com \
--cc=jkosina@suse.cz \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=khlebnikov@openvz.org \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=laijs@cn.fujitsu.com \
--cc=laura@rosedu.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan@huawei.com \
--cc=matt.fleming@intel.com \
--cc=mel@csn.ul.ie \
--cc=mgorman@suse.de \
--cc=mhocko@suse.cz \
--cc=mina86@mina86.com \
--cc=minchan@kernel.org \
--cc=mingo@redhat.com \
--cc=mpm@selenic.com \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=oleg@redhat.com \
--cc=paul.gortmaker@windriver.com \
--cc=paul@paulmenage.org \
--cc=pawel.moll@arm.com \
--cc=penberg@kernel.org \
--cc=pholasek@redhat.com \
--cc=riel@redhat.com \
--cc=rientjes@google.com \
--cc=rob@landley.net \
--cc=rusty@rustcorp.com.au \
--cc=sam@ravnborg.org \
--cc=shangw@linux.vnet.ibm.com \
--cc=shhuiw@gmail.com \
--cc=tglx@linutronix.de \
--cc=tixxdz@opendz.org \
--cc=tj@kernel.org \
--cc=wency@cn.fujitsu.com \
--cc=x86@kernel.org \
--cc=xiyou.wangcong@gmail.com \
--cc=yinghai@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox