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.