* Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx>: > On Thu, 21 Jan 2010, Alex Chiang wrote: > > > Here is another dump of dmesg. I tried to trim it a little bit > > where it made sense. > > Looks like percpu data is corrupted. One of my earlier fixes dimensioned > the kmem_cache_cpu array correctly. That is missing here. Ah, that was pilot error on my part. I didn't realize that the second patch you sent was to be in combination with the first. Sorry about that. > Combined fix: > > --- > mm/slub.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > Index: linux-2.6/mm/slub.c > =================================================================== > --- linux-2.6.orig/mm/slub.c 2010-01-21 16:39:26.000000000 -0600 > +++ linux-2.6/mm/slub.c 2010-01-21 16:40:35.000000000 -0600 > @@ -2086,7 +2086,7 @@ init_kmem_cache_node(struct kmem_cache_n > #endif > } > > -static DEFINE_PER_CPU(struct kmem_cache_cpu, kmalloc_percpu[SLUB_PAGE_SHIFT]); > +static DEFINE_PER_CPU(struct kmem_cache_cpu, kmalloc_percpu[KMALLOC_CACHES]); > > static inline int alloc_kmem_cache_cpus(struct kmem_cache *s, gfp_t flags) > { > @@ -2176,7 +2176,8 @@ static int init_kmem_cache_nodes(struct > int node; > int local_node; > > - if (slab_state >= UP) > + if (slab_state >= UP && (s < kmalloc_caches || > + s > kmalloc_caches + KMALLOC_CACHES)) > local_node = page_to_nid(virt_to_page(s)); > else > local_node = 0; > Yup, the two together finally got it. Reported-and-tested-by: Alex Chiang <achiang@xxxxxx> Thanks! /ac -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |