On Tue, 17 Aug 2010, David Rientjes wrote: > On Tue, 17 Aug 2010, Christoph Lameter wrote: > > > Index: linux-2.6/mm/slub.c > > =================================================================== > > --- linux-2.6.orig/mm/slub.c 2010-08-13 10:32:45.000000000 -0500 > > +++ linux-2.6/mm/slub.c 2010-08-13 10:32:50.000000000 -0500 > > @@ -2062,23 +2062,14 @@ init_kmem_cache_node(struct kmem_cache_n > > #endif > > } > > > > -static DEFINE_PER_CPU(struct kmem_cache_cpu, kmalloc_percpu[KMALLOC_CACHES]); > > - > > static inline int alloc_kmem_cache_cpus(struct kmem_cache *s) > > { > > - if (s < kmalloc_caches + KMALLOC_CACHES && s >= kmalloc_caches) > > - /* > > - * Boot time creation of the kmalloc array. Use static per cpu data > > - * since the per cpu allocator is not available yet. > > - */ > > - s->cpu_slab = kmalloc_percpu + (s - kmalloc_caches); > > - else > > - s->cpu_slab = alloc_percpu(struct kmem_cache_cpu); > > + BUILD_BUG_ON(PERCPU_DYNAMIC_EARLY_SIZE < > > + SLUB_PAGE_SHIFT * sizeof(struct kmem_cache)); > > This fails with CONFIG_NODES_SHIFT=10 on x86_64, which means it will fail > the ia64 defconfig as well. struct kmem_cache stores nodemask pointers up > to MAX_NUMNODES, which makes the conditional fail. Hmmm... Wrong struct name. This needs to be struct kmem_cache_cpu not struct kmem_cache. struct kmem_cache_cpu is sufficiently small. -- 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>