Re: [PATCH 0/4] mm/mempolicy: Add memory hotplug support in weighted interleave
From: Rakie Kim
Date: Mon Mar 10 2025 - 05:04:36 EST
On Fri, 7 Mar 2025 10:56:04 -0500 Gregory Price <gourry@xxxxxxxxxx> wrote:
Hi Gregory
Thank you for your response regarding this patch.
> On Fri, Mar 07, 2025 at 03:35:29PM +0900, Rakie Kim wrote:
> > Unnecessary sysfs entries: Nodes without memory were included in sysfs
> > at boot.
> > Missing hotplug support: Nodes that became online after initialization
> > were not recognized, causing incomplete interleave configurations.
>
> This comment is misleading. Nodes can "come online" but they are
> absolutely detected during init - as nodes cannot be "hotplugged"
> themselves. Resources can be added *to* nodes, but nodes themselves
> cannot be added or removed.
>
> I think what you're trying to say here is:
>
> 1) The current system creates 1 entry per possible node (explicitly)
> 2) Not all nodes may have memory at all times (memory can be hotplugged)
> 3) It would be nice to let sysfs and weighted interleave omit memoryless
> nodes until those nodes had memory hotplugged into them.
>
> > Dynamic sysfs updates for hotplugged nodes New memory nodes are
> > recognized and integrated via the memory hotplug mechanism.
> > Subsequent patches refine this functionality:
> >
>
> Just going to reiterate that that there's no such this as a hotplug node
> or "new nodes" - only nodes that have their attributes changed (i.e.
> !N_MEMORY -> N_MEMORY). The node exists, it may just not have anything
> associated with it.
>
> Maybe semantic nits, but it matters. The nodes are present and can be
> operated on before memory comes online, and that has implications for
> users. Depending on how that hardware comes online, it may or may not
> report its performance data prior to memory hotplug.
I agree with your assessment. The existing comments, as you pointed out,
might indeed be confusing or misleading. I'll make sure this issue is
addressed in version 2.
>
> If it doesn't report its performance data, then hiding the node before
> it hotplugs memory means a user can't pre-configure the system for when
> the memory is added (which could be used immediately).
>
> Hiding the node until hotplug also means we have hidden state. We need
> to capture pre-hotplug reported performance data so that if it comes
> online the auto-calculation of weights is correct. But if the user has
> already switched from auto to manual mode, then a node suddenly
> appearing will have an unknown state.
>
> This is why I initially chose to just expose N_POSSIBLE entries in
> sysfs, because the transition state causes hidden information - and that
> felt worse than extra entries. I suppose I should add some
> documentation somewhere that discusses this issue.
>
> I think the underlying issue you're dealing with is that the system is
> creating more nodes for you than it should.
I will reply to your next comment on this issue soon.
>
> ~Gregory
Rakie