From: Mel Gorman <mgorman@suse.de> To: Michal Hocko <mhocko@kernel.org> Cc: Reza Arbab <arbab@linux.vnet.ibm.com>, linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, Tang Chen <tangchen@cn.fujitsu.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, Zhang Zhen <zhenzhang.zhang@huawei.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org>, Chris Metcalf <cmetcalf@mellanox.com>, Dan Williams <dan.j.williams@gmail.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Lai Jiangshan <laijs@cn.fujitsu.com>, Martin Schwidefsky <schwidefsky@de.ibm.com> Subject: Re: [PATCH 0/6] mm: make movable onlining suck less Date: Thu, 6 Apr 2017 17:55:20 +0100 [thread overview] Message-ID: <20170406165520.qjdqclsm6zl6m6p3@suse.de> (raw) In-Reply-To: <20170406162154.GR5497@dhcp22.suse.cz> On Thu, Apr 06, 2017 at 06:21:55PM +0200, Michal Hocko wrote: > > This was my first time using your git branch instead of applying the patches > > from this thread to v4.11-rc5 myself. > > OK, so this looks like another thing to resolve. I have seen this > warning as well but I didn't consider it relevant because I had to tweak > the code make the node go offline (removed check_and_unmap_cpu_on_node > from try_offline_node) so I thought it was a fallout from there. > > But let's have a look. hotadd_new_pgdat does for an existing pgdat > /* Reset the nr_zones, order and classzone_idx before reuse */ > pgdat->nr_zones = 0; > pgdat->kswapd_order = 0; > pgdat->kswapd_classzone_idx = MAX_NR_ZONES; > > so free_area_init_node absolutely has to hit this warning. This is not > in the Linus tree because it is still in Andrew's mmotm coming from > http://www.ozlabs.org/~akpm/mmotm/broken-out/mm-vmscan-prevent-kswapd-sleeping-prematurely-due-to-mismatched-classzone_idx.patch > > So yay, finally that doesn't come from me. Mel, I guess that either > hotadd_new_pgdat should keep its kswapd_classzone_idx = 0 or the warning > should be updated. > Actually, it's obvious very quickly when I started the fix that updating the warning would then trigger on normal boot. It's more appropriate to let a hotadd of a new pgdat defer the initialisation of that field to kswapd starting for the new node. Can you try this? It's build/boot tested only, no hotplug testing. ---8<--- mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx -fix The patch "mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx" has different initial starting conditions when kswapd is asleep. kswapd initialises it properly when it starts but the patch initialises kswapd_classzone_idx early and trips on a warning in free_area_init_node. This patch leaves the kswapd_classzone_idx as zero and defers to kswapd to initialise it properly when it starts. This is a fix to the mmotm patch mm-vmscan-prevent-kswapd-sleeping-prematurely-due-to-mismatched-classzone_idx.patch Signed-off-by: Mel Gorman <mgorman@suse.de> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2309a7fbec93..76d4745513ee 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -1214,10 +1214,14 @@ static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start) arch_refresh_nodedata(nid, pgdat); } else { - /* Reset the nr_zones, order and classzone_idx before reuse */ + /* + * Reset the nr_zones, order and classzone_idx before reuse. + * Note that kswapd will init kswapd_classzone_idx properly + * when it starts in the near future. + */ pgdat->nr_zones = 0; pgdat->kswapd_order = 0; - pgdat->kswapd_classzone_idx = MAX_NR_ZONES; + pgdat->kswapd_classzone_idx = 0; } /* we can use NODE_DATA(nid) from here */
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@suse.de> To: Michal Hocko <mhocko@kernel.org> Cc: Reza Arbab <arbab@linux.vnet.ibm.com>, linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>, Vlastimil Babka <vbabka@suse.cz>, Andrea Arcangeli <aarcange@redhat.com>, Yasuaki Ishimatsu <yasu.isimatu@gmail.com>, Tang Chen <tangchen@cn.fujitsu.com>, qiuxishi@huawei.com, Kani Toshimitsu <toshi.kani@hpe.com>, slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>, Andi Kleen <ak@linux.intel.com>, Zhang Zhen <zhenzhang.zhang@huawei.com>, David Rientjes <rientjes@google.com>, Daniel Kiper <daniel.kiper@oracle.com>, Igor Mammedov <imammedo@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>, LKML <linux-kernel@vger.kernel.org>, Chris Metcalf <cmetcalf@mellanox.com>, Dan Williams <dan.j.williams@gmail.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Lai Jiangshan <laijs@cn.fujitsu.com>, Martin Schwidefsky <schwidefsky@de.ibm.com> Subject: Re: [PATCH 0/6] mm: make movable onlining suck less Date: Thu, 6 Apr 2017 17:55:20 +0100 [thread overview] Message-ID: <20170406165520.qjdqclsm6zl6m6p3@suse.de> (raw) In-Reply-To: <20170406162154.GR5497@dhcp22.suse.cz> On Thu, Apr 06, 2017 at 06:21:55PM +0200, Michal Hocko wrote: > > This was my first time using your git branch instead of applying the patches > > from this thread to v4.11-rc5 myself. > > OK, so this looks like another thing to resolve. I have seen this > warning as well but I didn't consider it relevant because I had to tweak > the code make the node go offline (removed check_and_unmap_cpu_on_node > from try_offline_node) so I thought it was a fallout from there. > > But let's have a look. hotadd_new_pgdat does for an existing pgdat > /* Reset the nr_zones, order and classzone_idx before reuse */ > pgdat->nr_zones = 0; > pgdat->kswapd_order = 0; > pgdat->kswapd_classzone_idx = MAX_NR_ZONES; > > so free_area_init_node absolutely has to hit this warning. This is not > in the Linus tree because it is still in Andrew's mmotm coming from > http://www.ozlabs.org/~akpm/mmotm/broken-out/mm-vmscan-prevent-kswapd-sleeping-prematurely-due-to-mismatched-classzone_idx.patch > > So yay, finally that doesn't come from me. Mel, I guess that either > hotadd_new_pgdat should keep its kswapd_classzone_idx = 0 or the warning > should be updated. > Actually, it's obvious very quickly when I started the fix that updating the warning would then trigger on normal boot. It's more appropriate to let a hotadd of a new pgdat defer the initialisation of that field to kswapd starting for the new node. Can you try this? It's build/boot tested only, no hotplug testing. ---8<--- mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx -fix The patch "mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx" has different initial starting conditions when kswapd is asleep. kswapd initialises it properly when it starts but the patch initialises kswapd_classzone_idx early and trips on a warning in free_area_init_node. This patch leaves the kswapd_classzone_idx as zero and defers to kswapd to initialise it properly when it starts. This is a fix to the mmotm patch mm-vmscan-prevent-kswapd-sleeping-prematurely-due-to-mismatched-classzone_idx.patch Signed-off-by: Mel Gorman <mgorman@suse.de> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2309a7fbec93..76d4745513ee 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -1214,10 +1214,14 @@ static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start) arch_refresh_nodedata(nid, pgdat); } else { - /* Reset the nr_zones, order and classzone_idx before reuse */ + /* + * Reset the nr_zones, order and classzone_idx before reuse. + * Note that kswapd will init kswapd_classzone_idx properly + * when it starts in the near future. + */ pgdat->nr_zones = 0; pgdat->kswapd_order = 0; - pgdat->kswapd_classzone_idx = MAX_NR_ZONES; + pgdat->kswapd_classzone_idx = 0; } /* we can use NODE_DATA(nid) from here */ -- 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:[~2017-04-06 16:55 UTC|newest] Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-30 11:54 [PATCH 0/6] mm: make movable onlining suck less Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 1/6] mm: get rid of zone_is_initialized Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 3:39 ` Hillf Danton 2017-03-31 3:39 ` Hillf Danton 2017-03-31 6:43 ` Michal Hocko 2017-03-31 6:43 ` Michal Hocko 2017-03-31 6:48 ` Michal Hocko 2017-03-31 6:48 ` Michal Hocko 2017-03-31 7:39 ` [PATCH v1 " Michal Hocko 2017-03-31 7:39 ` Michal Hocko 2017-04-05 8:14 ` Michal Hocko 2017-04-05 8:14 ` Michal Hocko 2017-04-05 9:06 ` Igor Mammedov 2017-04-05 9:06 ` Igor Mammedov 2017-04-05 9:23 ` Michal Hocko 2017-04-05 9:23 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 2/6] mm, tile: drop arch_{add,remove}_memory Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 15:41 ` Chris Metcalf 2017-03-30 15:41 ` Chris Metcalf 2017-03-30 11:54 ` [PATCH 3/6] mm: remove return value from init_currently_empty_zone Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 3:49 ` Hillf Danton 2017-03-31 3:49 ` Hillf Danton 2017-03-31 6:49 ` Michal Hocko 2017-03-31 6:49 ` Michal Hocko 2017-03-31 7:06 ` Hillf Danton 2017-03-31 7:06 ` Hillf Danton 2017-03-31 7:18 ` Michal Hocko 2017-03-31 7:18 ` Michal Hocko 2017-03-31 7:43 ` Michal Hocko 2017-03-31 7:43 ` Michal Hocko 2017-04-03 21:22 ` Reza Arbab 2017-04-03 21:22 ` Reza Arbab 2017-04-04 7:30 ` Michal Hocko 2017-04-04 7:30 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 4/6] mm, memory_hotplug: use node instead of zone in can_online_high_movable Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 5/6] mm, memory_hotplug: do not associate hotadded memory to zones until online Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 6:18 ` Hillf Danton 2017-03-31 6:18 ` Hillf Danton 2017-03-31 6:50 ` Michal Hocko 2017-03-31 6:50 ` Michal Hocko 2017-04-04 12:21 ` Tobias Regnery 2017-04-04 12:21 ` Tobias Regnery 2017-04-04 12:45 ` Michal Hocko 2017-04-04 12:45 ` Michal Hocko 2017-04-06 8:14 ` Michal Hocko 2017-04-06 8:14 ` Michal Hocko 2017-04-06 12:46 ` Michal Hocko 2017-04-06 12:46 ` Michal Hocko 2017-03-30 11:54 ` [PATCH 6/6] mm, memory_hotplug: remove unused cruft after memory hotplug rework Michal Hocko 2017-03-30 11:54 ` Michal Hocko 2017-03-31 7:46 ` Michal Hocko 2017-03-31 7:46 ` Michal Hocko 2017-03-31 19:19 ` [PATCH 0/6] mm: make movable onlining suck less Heiko Carstens 2017-03-31 19:19 ` Heiko Carstens 2017-04-03 7:34 ` Michal Hocko 2017-04-03 7:34 ` Michal Hocko 2017-04-03 11:55 ` Michal Hocko 2017-04-03 11:55 ` Michal Hocko 2017-04-03 12:20 ` Igor Mammedov 2017-04-03 12:20 ` Igor Mammedov 2017-04-03 19:58 ` Reza Arbab 2017-04-03 19:58 ` Reza Arbab 2017-04-03 20:23 ` Michal Hocko 2017-04-03 20:23 ` Michal Hocko 2017-04-03 20:42 ` Reza Arbab 2017-04-03 20:42 ` Reza Arbab 2017-04-04 7:23 ` Michal Hocko 2017-04-04 7:23 ` Michal Hocko 2017-04-04 7:34 ` Michal Hocko 2017-04-04 7:34 ` Michal Hocko 2017-04-04 8:23 ` Michal Hocko 2017-04-04 8:23 ` Michal Hocko 2017-04-04 15:59 ` Reza Arbab 2017-04-04 15:59 ` Reza Arbab 2017-04-04 16:02 ` Reza Arbab 2017-04-04 16:02 ` Reza Arbab 2017-04-04 16:44 ` Michal Hocko 2017-04-04 16:44 ` Michal Hocko 2017-04-04 18:30 ` Reza Arbab 2017-04-04 18:30 ` Reza Arbab 2017-04-04 19:41 ` Michal Hocko 2017-04-04 19:41 ` Michal Hocko 2017-04-04 21:43 ` Reza Arbab 2017-04-04 21:43 ` Reza Arbab 2017-04-05 6:42 ` Michal Hocko 2017-04-05 6:42 ` Michal Hocko 2017-04-05 9:24 ` Michal Hocko 2017-04-05 9:24 ` Michal Hocko 2017-04-05 14:53 ` Reza Arbab 2017-04-05 14:53 ` Reza Arbab 2017-04-05 15:42 ` Michal Hocko 2017-04-05 15:42 ` Michal Hocko 2017-04-05 17:32 ` Reza Arbab 2017-04-05 17:32 ` Reza Arbab 2017-04-05 18:15 ` Michal Hocko 2017-04-05 18:15 ` Michal Hocko 2017-04-05 19:39 ` Michal Hocko 2017-04-05 19:39 ` Michal Hocko 2017-04-05 21:02 ` Michal Hocko 2017-04-05 21:02 ` Michal Hocko 2017-04-06 11:07 ` Michal Hocko 2017-04-06 11:07 ` Michal Hocko 2017-04-05 15:48 ` Reza Arbab 2017-04-05 15:48 ` Reza Arbab 2017-04-05 16:34 ` Michal Hocko 2017-04-05 16:34 ` Michal Hocko 2017-04-05 20:55 ` Reza Arbab 2017-04-05 20:55 ` Reza Arbab 2017-04-06 9:25 ` Michal Hocko 2017-04-06 9:25 ` Michal Hocko 2017-04-05 13:52 ` Michal Hocko 2017-04-05 13:52 ` Michal Hocko 2017-04-05 15:23 ` Reza Arbab 2017-04-05 15:23 ` Reza Arbab 2017-04-05 6:36 ` Michal Hocko 2017-04-05 6:36 ` Michal Hocko 2017-04-06 13:08 ` Michal Hocko 2017-04-06 13:08 ` Michal Hocko 2017-04-06 15:24 ` Reza Arbab 2017-04-06 15:24 ` Reza Arbab 2017-04-06 15:41 ` Michal Hocko 2017-04-06 15:41 ` Michal Hocko 2017-04-06 15:46 ` Reza Arbab 2017-04-06 15:46 ` Reza Arbab 2017-04-06 16:21 ` Michal Hocko 2017-04-06 16:21 ` Michal Hocko 2017-04-06 16:24 ` Mel Gorman 2017-04-06 16:24 ` Mel Gorman 2017-04-06 16:55 ` Mel Gorman [this message] 2017-04-06 16:55 ` Mel Gorman 2017-04-06 17:12 ` Michal Hocko 2017-04-06 17:12 ` Michal Hocko 2017-04-06 17:46 ` Mel Gorman 2017-04-06 17:46 ` Mel Gorman
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=20170406165520.qjdqclsm6zl6m6p3@suse.de \ --to=mgorman@suse.de \ --cc=aarcange@redhat.com \ --cc=ak@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=arbab@linux.vnet.ibm.com \ --cc=cmetcalf@mellanox.com \ --cc=dan.j.williams@gmail.com \ --cc=daniel.kiper@oracle.com \ --cc=heiko.carstens@de.ibm.com \ --cc=imammedo@redhat.com \ --cc=js1304@gmail.com \ --cc=laijs@cn.fujitsu.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=qiuxishi@huawei.com \ --cc=rientjes@google.com \ --cc=schwidefsky@de.ibm.com \ --cc=slaoub@gmail.com \ --cc=tangchen@cn.fujitsu.com \ --cc=toshi.kani@hpe.com \ --cc=vbabka@suse.cz \ --cc=vkuznets@redhat.com \ --cc=yasu.isimatu@gmail.com \ --cc=zhenzhang.zhang@huawei.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: linkBe 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.