Re: [PATCH] mm: don't rely on system state to detect hot-plug operations

From: Laurent Dufour
Date: Thu Sep 10 2020 - 03:52:00 EST


Le 10/09/2020 à 09:23, Michal Hocko a écrit :
On Wed 09-09-20 18:07:15, Laurent Dufour wrote:
Le 09/09/2020 à 12:59, Michal Hocko a écrit :
On Wed 09-09-20 11:21:58, Laurent Dufour wrote:
[...]
For the point a, using the enum allows to know in
register_mem_sect_under_node() if the link operation is due to a hotplug
operation or done at boot time.

Yes, but let me repeat. We have a mess here and different paths check
for the very same condition by different ways. We need to unify those.

What are you suggesting to unify these checks (using a MP_* enum as
suggested by David, something else)?

We do have system_state check spread at different places. I would use
this one and wrap it behind a helper. Or have I missed any reason why
that wouldn't work for this case?

That would not work in that case because memory can be hot-added at the SYSTEM_SCHEDULING system state and the regular memory is also registered at that system state too. So system state is not enough to discriminate between the both.

I think I'll go with the option suggested by David, replacing the enum memmap_context a new enum memplug_context and pass that context to register_mem_sect_under_node() so that function will known when node id should be checked or not.

Cheers,
Laurent.