From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261825AbVGFBG3 (ORCPT ); Tue, 5 Jul 2005 21:06:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261998AbVGFBG3 (ORCPT ); Tue, 5 Jul 2005 21:06:29 -0400 Received: from ozlabs.org ([203.10.76.45]:39119 "EHLO ozlabs.org") by vger.kernel.org with ESMTP id S261825AbVGFBG0 (ORCPT ); Tue, 5 Jul 2005 21:06:26 -0400 Date: Wed, 6 Jul 2005 11:04:50 +1000 From: Anton Blanchard To: Christoph Lameter Cc: akpm@osdl.org, manfred@colorfullife.com, linux-kernel@vger.kernel.org Subject: Re: slab not freeing with current -git Message-ID: <20050706010450.GO12786@krispykreme> References: <20050705224528.GJ12786@krispykreme> <20050705225908.GL12786@krispykreme> <20050705235521.GN12786@krispykreme> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.9i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org > That is the issue. It should fall back to kmalloc. One piece of the > patchset dropped out between Andrew and Linus. That helped, but I still had lots of free memory in the request_queue slab. Giving kmem_cache_alloc_node the same treatment fixed it, although I wonder if we just shouldnt be passing in -1. Anton Index: foobar2/mm/slab.c =================================================================== --- foobar2.orig/mm/slab.c 2005-07-06 10:47:47.950435997 +1000 +++ foobar2/mm/slab.c 2005-07-06 10:59:59.945684235 +1000 @@ -2372,6 +2372,9 @@ struct slab *slabp; kmem_bufctl_t next; + if (nodeid == -1) + return kmem_cache_alloc(cachep, flags); + for (loop = 0;;loop++) { struct list_head *q; @@ -2443,6 +2446,9 @@ { kmem_cache_t *cachep; + if (node == -1) + return kmalloc(size, flags); + cachep = kmem_find_general_cachep(size, flags); if (unlikely(cachep == NULL)) return NULL;