On 2/26/20 10:45 PM, Vlastimil Babka wrote: > > > if (node == NUMA_NO_NODE) > page = alloc_pages(flags, order); > else > page = __alloc_pages_node(node, flags, order); > > So yeah looks like SLUB's kmalloc_node() is supposed to behave like the > page allocator's __alloc_pages_node() and respect __GFP_THISNODE but not > enforce it by itself. There's probably just some missing data structure > initialization somewhere right now for memoryless nodes. Upon more digging, I think the problem could manifest if node_to_mem_node(0) (_node_numa_mem_[0]) returned 0 instead of 1, because it wasn't initialized properly for a memoryless node. Can you e.g. print it somewhere?