Re: Bug in reclaim logic with exhausted nodes?
From: Christoph Lameter <hidden>
Date: 2014-03-29 05:40:44
Also in:
linux-mm
On Thu, 27 Mar 2014, Nishanth Aravamudan wrote:
quoted
That looks to be the correct way to handle things. Maybe mark the node as offline or somehow not present so that the kernel ignores it.This is a SLUB condition: mm/slub.c::early_kmem_cache_node_alloc(): ... page = new_slab(kmem_cache_node, GFP_NOWAIT, node); ...
So the page allocation from the node failed. We have a strange boot
condition where the OS is aware of anode but allocations on that node
fail.
> if (page_to_nid(page) != node) { printk(KERN_ERR "SLUB: Unable to allocate memory from "
"node %d\n", node);
printk(KERN_ERR "SLUB: Allocating a useless per node structure "
"in order to be able to continue\n");
}
...
Since this is quite early, and we have not set up the nodemasks yet,
does it make sense to perhaps have a temporary init-time nodemask that
we set bits in here, and "fix-up" those nodes when we setup the
nodemasks?Please take care of this earlier than this. The page allocator in general should allow allocations from all nodes with memory during boot,