> If a hot-added node has not been initialized for the cache, your code is > picking an existing one in zonelist order which may be excluded by > current's cpuset. Thus, your code has a very real chance of having > kmem_getpages() return NULL because get_page_from_freelist() will reject > non-atomic ALLOC_CPUSET allocations for prohibited nodes. That isn't a > scenario that requires a "funny cpuset," it just has to not allow whatever > initialized node comes first in the zonelist. The point was that you would need to run whoever triggers the memory hotadd in a cpuset with limitations. That would be a clear don't do that if hurts(tm) > My suggested alternative does not pick a single initialized node, rather > it tries all nodes that actually have a chance of having kmem_getpages() > succeed which increases the probability that your patch actually has an > effect for cpuset users. cpuset users are unlikely to trigger memory hotadds from inside limiting cpusets. Typically that's done from udev etc. -Andi -- ak@xxxxxxxxxxxxxxx -- Speaking for myself only. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>