Hi, I've written a prototype kmem_cache_alloc_node function: I'm not yet convinced that it's really necessary to guarantee that kmalloc and kmem_cache_alloc are strictly node-local (adds noticable costs to the hot paths, and many objects will be touched by multiple nodes anyway), but at least the cpu bound data structures should be allocated from the right node. The attached patch adds a simple kmem_cache_alloc_node function and moves the cpu local structures within slab onto the right node. One problem is the bootstrap: there is an alloc_pages_node(,,cpu_to_node()) during CPU_UP_PREPARE: Does that work, or is that too early? Please test it, I don't have access to suitable hardware. The patch also includes fixes for two accounting bugs in error paths, I'll send them seperately to Andrew. -- Manfred