On 19.07.19 11:09, Michal Hocko wrote: > 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. Let's hope there are no BUGs related to that and we just didn't catch them yet because it's barely used :) > >> 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? We could detect this while testing and see that some other code seems to do unexpected things (remove such memory blocks although not allowed). > >> Alternative: Add "bool mixed_nids;" to "struct memory block". > > That would be certainly possible but do we actually care? Only if we want to warn. And I am fine with dropping this part. -- Thanks, David / dhildenb