On Fri 19-07-19 10:48:19, David Hildenbrand wrote: > On 19.07.19 10:42, Michal Hocko wrote: > > On Thu 18-07-19 16:22:39, David Hildenbrand wrote: > >> We don't allow to offline memory block devices that belong to multiple > >> numa nodes. Therefore, such devices can never get removed. It is > >> sufficient to process a single node when removing the memory block. > >> > >> Remember for each memory block if it belongs to no, a single, or mixed > >> nodes, so we can use that information to skip unregistering or print a > >> warning (essentially a safety net to catch BUGs). > > > > I do not really like NUMA_NO_NODE - 1 thing. This is yet another invalid > > node that is magic. Why should we even care? In other words why is this > > patch an improvement? > > I mean we can of course go ahead and drop the "NUMA_NO_NODE - 1" thingy > from the patch. A memory block with multiple nodes would (as of now) > only indicate one of the nodes. Yes and that seemed to work reasonably well so far. Sure there is a potential confusion but platforms with interleaved nodes are rare enough to somebody to even notice so far. > Then there is simply no way to WARN_ON_ONCE() in case unexpected things > would happen. (I mean it really shouldn't happen or we have a BUG > somewhere else) I do not really see much point to warn here. What can user potentially do? > Alternative: Add "bool mixed_nids;" to "struct memory block". That would be certainly possible but do we actually care? -- Michal Hocko SUSE Labs