The patch titled Subject: mm-memory_hotplug-simplify-node_states_check_changes_online-v2 has been added to the -mm tree. Its filename is mm-memory_hotplug-simplify-node_states_check_changes_online-v2.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-memory_hotplug-simplify-node_states_check_changes_online-v2.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-memory_hotplug-simplify-node_states_check_changes_online-v2.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Oscar Salvador <osalvador@xxxxxxx> Subject: mm-memory_hotplug-simplify-node_states_check_changes_online-v2 Link: http://lkml.kernel.org/r/20180921132634.10103-4-osalvador@xxxxxxxxxxxxxxxxxx Signed-off-by: Oscar Salvador <osalvador@xxxxxxx> Suggested-by: Pavel Tatashin <pavel.tatashin@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memory_hotplug.c | 40 +++++++++------------------------------- 1 file changed, 9 insertions(+), 31 deletions(-) --- a/mm/memory_hotplug.c~mm-memory_hotplug-simplify-node_states_check_changes_online-v2 +++ a/mm/memory_hotplug.c @@ -688,40 +688,18 @@ static void node_states_check_changes_on { int nid = zone_to_nid(zone); - /* - * zone_for_pfn_range() can only return a zone within - * (0..ZONE_NORMAL] or ZONE_MOVABLE. - * If the zone is within the range (0..ZONE_NORMAL], - * we need to check if: - * 1) We need to set the node for N_NORMAL_MEMORY - * 2) On CONFIG_HIGHMEM systems, we need to also set - * the node for N_HIGH_MEMORY. - * 3) On !CONFIG_HIGHMEM, we can disregard N_HIGH_MEMORY, - * as N_HIGH_MEMORY falls back to N_NORMAL_MEMORY. - */ + arg->status_change_nid = -1; + arg->status_change_nid_normal = -1; + arg->status_change_nid_high = -1; - if (zone_idx(zone) <= ZONE_NORMAL) { - if (!node_state(nid, N_NORMAL_MEMORY)) - arg->status_change_nid_normal = nid; - else - arg->status_change_nid_normal = -1; - - if (IS_ENABLED(CONFIG_HIGHMEM)) { - if (!node_state(nid, N_HIGH_MEMORY)) - arg->status_change_nid_high = nid; - } else - arg->status_change_nid_high = -1; - } - - /* - * if the node doesn't have memory before onlining it, we will need - * to set the node to node_states[N_MEMORY] after the memory - * gets onlined. - */ if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; - else - arg->status_change_nid = -1; + if (zone_idx(zone) <= ZONE_NORMAL && !node_state(nid, N_NORMAL_MEMORY)) + arg->status_change_nid_normal = nid; +#ifdef CONFIG_HIGHMEM + if (zone_idx(zone) <= N_HIGH_MEMORY && !node_state(nid, N_HIGH_MEMORY)) + arg->status_change_nid_high = nid; +#endif } static void node_states_set_node(int node, struct memory_notify *arg) _ Patches currently in -mm which might be from osalvador@xxxxxxx are mm-page_alloc-clean-up-check_for_memory.patch mm-memory_hotplug-spare-unnecessary-calls-to-node_set_state.patch mm-memory_hotplug-tidy-up-node_states_clear_node.patch mm-memory_hotplug-simplify-node_states_check_changes_online.patch mm-memory_hotplug-simplify-node_states_check_changes_online-v2.patch mm-memory_hotplug-clean-up-node_states_check_changes_offline.patch mm-memory_hotplug-clean-up-node_states_check_changes_offline-v2.patch