Re: memory hotplug and force_remove

From: Rafael J. Wysocki
Date: Mon Mar 20 2017 - 17:30:25 EST


On Monday, March 20, 2017 03:29:39 PM Michal Hocko wrote:
> Hi Rafael,

Hi,

> we have been chasing the following BUG() triggering during the memory
> hotremove (remove_memory):
> ret = walk_memory_range(PFN_DOWN(start), PFN_UP(start + size - 1), NULL,
> check_memblock_offlined_cb);
> if (ret)
> BUG();
>
> and it took a while to learn that the issue is caused by
> /sys/firmware/acpi/hotplug/force_remove being enabled. I was really
> surprised to see such an option because at least for the memory hotplug
> it cannot work at all. Memory hotplug fails when the memory is still
> in use. Even if we do not BUG() here enforcing the hotplug operation
> will lead to problematic behavior later like crash or a silent memory
> corruption if the memory gets onlined back and reused by somebody else.
>
> I am wondering what was the motivation for introducing this behavior and
> whether there is a way to disallow it for memory hotplug. Or maybe drop
> it completely. What would break in such a case?

Honestly, I don't remember from the top of my head and I haven't looked at
that code for several months.

I need some time to recall that.

Thanks,
Rafael