From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: Tang Chen <tangchen@cn.fujitsu.com>,
akpm@linux-foundation.org, santosh.shilimkar@ti.com,
grygorii.strashko@ti.com, yinghai@kernel.org,
isimatu.yasuaki@jp.fujitsu.com, fabf@skynet.be, nzimmer@sgi.com,
wangnan0@huawei.com, vdavydov@parallels.com, toshi.kani@hp.com,
phacht@linux.vnet.ibm.com, tj@kernel.org,
kirill.shutemov@linux.intel.com, riel@redhat.com,
luto@amacapital.net, hpa@linux.intel.com, aarcange@redhat.com,
qiuxishi@huawei.com, mgorman@suse.de, rientjes@google.com,
hannes@cmpxchg.org
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, miaox@cn.fujitsu.com
Subject: Re: [PATCH v2 2/2] mem-hotplug: Reset node present pages when hot-adding a new pgdat.
Date: Mon, 10 Nov 2014 09:27:17 +0900 [thread overview]
Message-ID: <54600665.5090503@jp.fujitsu.com> (raw)
In-Reply-To: <1415353481-3140-3-git-send-email-tangchen@cn.fujitsu.com>
(2014/11/07 18:44), Tang Chen wrote:
> When onlining memory on node2, node2 zoneinfo and node3 meminfo corrupted:
>
> # for ((i = 2048; i < 2064; i++)); do echo online_movable > /sys/devices/system/node/node2/memory$i/state; done
> # cat /sys/devices/system/node/node2/meminfo
> Node 2 MemTotal: 33554432 kB
> Node 2 MemFree: 33549092 kB
> Node 2 MemUsed: 5340 kB
> ......
> # cat /sys/devices/system/node/node3/meminfo
> Node 3 MemTotal: 0 kB
> Node 3 MemFree: 248 kB /* corrupted, should be 0 */
> Node 3 MemUsed: 0 kB
> ......
>
> # cat /proc/zoneinfo
> ......
> Node 2, zone Movable
> ......
> spanned 8388608
> present 16777216 /* corrupted, should be 8388608 */
> managed 8388608
>
>
> When memory is hot-added, all the memory is in offline state. So
> clear all zone->present_pages because they will be updated in
> online_pages() and offline_pages().
>
> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> ---
Looks good to me.
Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Thanks,
Yasuaki Ishimatsu
> mm/memory_hotplug.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 8aba12b..26eac61 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1067,6 +1067,14 @@ out:
> }
> #endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
>
> +static void reset_node_present_pages(pg_data_t *pgdat)
> +{
> + struct zone *z;
> +
> + for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++)
> + z->present_pages = 0;
> +}
> +
> /* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */
> static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
> {
> @@ -1105,6 +1113,13 @@ static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
> */
> reset_node_managed_pages(pgdat);
>
> + /*
> + * When memory is hot-added, all the memory is in offline state. So
> + * clear all zones' present_pages because they will be updated in
> + * online_pages() and offline_pages().
> + */
> + reset_node_present_pages(pgdat);
> +
> return pgdat;
> }
>
>
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
To: Tang Chen <tangchen@cn.fujitsu.com>, <akpm@linux-foundation.org>,
<santosh.shilimkar@ti.com>, <grygorii.strashko@ti.com>,
<yinghai@kernel.org>, <isimatu.yasuaki@jp.fujitsu.com>,
<fabf@skynet.be>, <nzimmer@sgi.com>, <wangnan0@huawei.com>,
<vdavydov@parallels.com>, <toshi.kani@hp.com>,
<phacht@linux.vnet.ibm.com>, <tj@kernel.org>,
<kirill.shutemov@linux.intel.com>, <riel@redhat.com>,
<luto@amacapital.net>, <hpa@linux.intel.com>,
<aarcange@redhat.com>, <qiuxishi@huawei.com>, <mgorman@suse.de>,
<rientjes@google.com>, <hannes@cmpxchg.org>
Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
<miaox@cn.fujitsu.com>
Subject: Re: [PATCH v2 2/2] mem-hotplug: Reset node present pages when hot-adding a new pgdat.
Date: Mon, 10 Nov 2014 09:27:17 +0900 [thread overview]
Message-ID: <54600665.5090503@jp.fujitsu.com> (raw)
In-Reply-To: <1415353481-3140-3-git-send-email-tangchen@cn.fujitsu.com>
(2014/11/07 18:44), Tang Chen wrote:
> When onlining memory on node2, node2 zoneinfo and node3 meminfo corrupted:
>
> # for ((i = 2048; i < 2064; i++)); do echo online_movable > /sys/devices/system/node/node2/memory$i/state; done
> # cat /sys/devices/system/node/node2/meminfo
> Node 2 MemTotal: 33554432 kB
> Node 2 MemFree: 33549092 kB
> Node 2 MemUsed: 5340 kB
> ......
> # cat /sys/devices/system/node/node3/meminfo
> Node 3 MemTotal: 0 kB
> Node 3 MemFree: 248 kB /* corrupted, should be 0 */
> Node 3 MemUsed: 0 kB
> ......
>
> # cat /proc/zoneinfo
> ......
> Node 2, zone Movable
> ......
> spanned 8388608
> present 16777216 /* corrupted, should be 8388608 */
> managed 8388608
>
>
> When memory is hot-added, all the memory is in offline state. So
> clear all zone->present_pages because they will be updated in
> online_pages() and offline_pages().
>
> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> ---
Looks good to me.
Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Thanks,
Yasuaki Ishimatsu
> mm/memory_hotplug.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index 8aba12b..26eac61 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -1067,6 +1067,14 @@ out:
> }
> #endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
>
> +static void reset_node_present_pages(pg_data_t *pgdat)
> +{
> + struct zone *z;
> +
> + for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++)
> + z->present_pages = 0;
> +}
> +
> /* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */
> static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
> {
> @@ -1105,6 +1113,13 @@ static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
> */
> reset_node_managed_pages(pgdat);
>
> + /*
> + * When memory is hot-added, all the memory is in offline state. So
> + * clear all zones' present_pages because they will be updated in
> + * online_pages() and offline_pages().
> + */
> + reset_node_present_pages(pgdat);
> +
> return pgdat;
> }
>
>
next prev parent reply other threads:[~2014-11-10 0:28 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-07 9:44 [PATCH v2 0/2] Fix node meminfo and zoneinfo corruption Tang Chen
2014-11-07 9:44 ` Tang Chen
2014-11-07 9:44 ` [PATCH v2 1/2] mem-hotplug: Reset node managed pages when hot-adding a new pgdat Tang Chen
2014-11-07 9:44 ` Tang Chen
2014-11-07 9:44 ` [PATCH v2 2/2] mem-hotplug: Reset node present " Tang Chen
2014-11-07 9:44 ` Tang Chen
2014-11-10 0:27 ` Yasuaki Ishimatsu [this message]
2014-11-10 0:27 ` Yasuaki Ishimatsu
2014-11-10 9:36 ` [PATCH v2 0/2] Fix node meminfo and zoneinfo corruption Xishi Qiu
2014-11-10 9:36 ` Xishi Qiu
-- strict thread matches above, loose matches on Subject: below --
2014-11-11 1:27 Tang Chen
2014-11-11 1:27 ` [PATCH v2 2/2] mem-hotplug: Reset node present pages when hot-adding a new pgdat Tang Chen
2014-11-11 1:27 ` Tang Chen
2014-11-11 1:27 ` Tang Chen
2014-11-12 4:28 ` Yasuaki Ishimatsu
2014-11-12 4:28 ` Yasuaki Ishimatsu
2014-11-12 4:28 ` Yasuaki Ishimatsu
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=54600665.5090503@jp.fujitsu.com \
--to=isimatu.yasuaki@jp.fujitsu.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=fabf@skynet.be \
--cc=grygorii.strashko@ti.com \
--cc=hannes@cmpxchg.org \
--cc=hpa@linux.intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@amacapital.net \
--cc=mgorman@suse.de \
--cc=miaox@cn.fujitsu.com \
--cc=nzimmer@sgi.com \
--cc=phacht@linux.vnet.ibm.com \
--cc=qiuxishi@huawei.com \
--cc=riel@redhat.com \
--cc=rientjes@google.com \
--cc=santosh.shilimkar@ti.com \
--cc=tangchen@cn.fujitsu.com \
--cc=tj@kernel.org \
--cc=toshi.kani@hp.com \
--cc=vdavydov@parallels.com \
--cc=wangnan0@huawei.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 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.