Re: [PATCH] mm/memory_hotplug: just build zonelist for new added node

From: Michal Hocko
Date: Wed Jun 28 2017 - 05:45:41 EST


On Wed 28-06-17 11:35:00, Vlastimil Babka wrote:
> On 06/28/2017 11:23 AM, Michal Hocko wrote:
> > On Mon 26-06-17 11:58:22, Wei Yang wrote:
> >> In commit (9adb62a5df9c0fbef7) "mm/hotplug: correctly setup fallback
> >> zonelists when creating new pgdat" tries to build the correct zonelist for
> >> a new added node, while it is not necessary to rebuild it for already exist
> >> nodes.
> >>
> >> In build_zonelists(), it will iterate on nodes with memory. For a new added
> >> node, it will have memory until node_states_set_node() is called in
> >> online_pages().
> >>
> >> This patch will avoid to rebuild the zonelists for already exist nodes.
> >
> > It is not very clear from the changelog why that actually matters. The
> > only effect I can see is that other zonelists on other online nodes will
> > not learn about the currently memory less node. This is a good think
> > because we do not pointlessly try to allocate from that node.
>
> build_zonelists_node() seems to use managed_zone(zone) checks, so it
> should not include empty zones anyway. So effectively seems to me we
> just avoid some pointless work under stop_machine().

Ohh, you are right. I was looking for populated_zone and didn't find any
so I thought we just do not care. So, indeed the patch has no functional
effect it just reduces the stop_machine overhead tiny bit.
--
Michal Hocko
SUSE Labs