Messages in this thread | | | Date | Thu, 19 Oct 2006 11:07:13 -0700 (PDT) | From | Christoph Lameter <> | Subject | Re: kernel BUG in __cache_alloc_node at linux-2.6.git/mm/slab.c:3177! |
| |
On Thu, 19 Oct 2006, Christoph Lameter wrote:
> I would expect this patch to fix your issues. This will allow fallback > allocations to occur in the page allocator during slab bootstrap. This > means your per node queues will be contaminated as they were before. After > the slab allocator is fully booted then the per node queues will become > gradually become node clean.
Forgot to mention the results of this contamination: The bootstrap process exercises fine control over data structures to place them in such a way that the slab allocator can perform optimally. F.e. data structures are placed in such a way on nodes that a kmalloc does not need a single off node reference.
The contamination will disrupt this placement. The slab believes that memory is from a different node than were it actually came from. As a result key data structures (such as cpucache descriptors) are placed on the wrong node. kmalloc and other slab operations may require off node allocations for every call. Depending on the NUMA factor this may have a significant influence on overall system performance (We have measured this effect to cause a drop of 20% in AIM7 performance!).
In addition to this stuff, I am right now dealing with huge page fault serialization (introduced to safely support DB2) and sparsemem continually causing nested table lookups in fundamental vm operations. All work of IBM people. Not interested in performance at all? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |