Re: [PATCH 0/6] mm: make movable onlining suck less

From: Reza Arbab
Date: Tue Apr 04 2017 - 17:43:55 EST


On Tue, Apr 04, 2017 at 09:41:22PM +0200, Michal Hocko wrote:
On Tue 04-04-17 13:30:13, Reza Arbab wrote:
I think I found another edge case. You
get an oops when removing all of a node's memory:

__nr_to_section
__pfn_to_section
find_biggest_section_pfn
shrink_pgdat_span
__remove_zone
__remove_section
__remove_pages
arch_remove_memory
remove_memory

Is this something new or an old issue? I believe the state after the
online should be the same as before. So if you onlined the full node
then there shouldn't be any difference. Let me have a look...

It's new. Without this patchset, I can repeatedly add_memory()->online_movable->offline->remove_memory() all of a node's memory.

From 1b08ecef3e8ebcef585fe8f2b23155be54cce335 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@xxxxxxxx>
Date: Tue, 4 Apr 2017 21:09:00 +0200
Subject: [PATCH] mm, hotplug: get rid of zone/node shrinking

...%<...
---
mm/memory_hotplug.c | 207 ----------------------------------------------------
1 file changed, 207 deletions(-)

Okay, getting further. With this I can again repeatedly add and remove, but now I'm seeing a weird variation of that earlier issue:

1. add_memory(), online_movable
/sys/devices/system/node/nodeX/memoryY symlinks are created.

2. offline, remove_memory()
The node is offlined, since all memory has been removed, so all of
/sys/devices/system/node/nodeX is gone. This is normal.

3. add_memory(), online_movable
The node is onlined, so /sys/devices/system/node/nodeX is recreated,
and the memory is added, but just like earlier in this email thread,
the memoryY links are not there.

--
Reza Arbab