From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail190.messagelabs.com (mail190.messagelabs.com [216.82.249.51]) by kanga.kvack.org (Postfix) with ESMTP id EF9F66B006A for ; Thu, 21 Jan 2010 19:15:36 -0500 (EST) Date: Thu, 21 Jan 2010 17:15:34 -0700 From: Alex Chiang Subject: Re: SLUB ia64 linux-next crash bisected to 756dee75 Message-ID: <20100122001534.GB30417@ldl.fc.hp.com> References: <20100119200228.GE11010@ldl.fc.hp.com> <20100119212935.GG11010@ldl.fc.hp.com> <20100121214749.GJ17684@ldl.fc.hp.com> <20100121230551.GO17684@ldl.fc.hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org To: Christoph Lameter Cc: Lee Schermerhorn , penberg@cs.helsinki.fi, linux-ia64@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org List-ID: * Christoph Lameter : > On Thu, 21 Jan 2010, Alex Chiang wrote: > > > > 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. > > Difficult since I also did not track how this belonged together. Sorry. No prob. Replying and cc'ing so akpm sees this as our final answer. :) /ac > > > From: Christoph Lameter > Subject: [SLUB] dma kmalloc handling fixes > > 1. We need kmalloc_percpu for all of the now extended kmalloc caches > array not just for each shift value. > > 2. init_kmem_cache_nodes() must assume node 0 locality for statically > allocated dma kmem_cache structures even after boot is complete. > > Reported-and-tested-by: Alex Chiang > Signed-off-by: Christoph Lameter > > --- > 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; > -- > To unsubscribe from this list: send the line "unsubscribe linux-ia64" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org