From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Lameter Subject: Re: No, really, stop trying to delete slab until you've finished making slub perform as well Date: Tue, 19 Aug 2008 08:51:22 -0500 Message-ID: <48AACFDA.5090600@linux-foundation.org> References: <20080818193143.60D7.KOSAKI.MOTOHIRO@jp.fujitsu.com> <48A98259.7030101@linux-foundation.org> <20080819192515.12C5.KOSAKI.MOTOHIRO@jp.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Matthew Wilcox , Pekka Enberg , akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Mel Gorman , andi@firstfloor.org, Rik van Riel To: KOSAKI Motohiro Return-path: Received: from smtp1.linux-foundation.org ([140.211.169.13]:35929 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751915AbYHSNwx (ORCPT ); Tue, 19 Aug 2008 09:52:53 -0400 In-Reply-To: <20080819192515.12C5.KOSAKI.MOTOHIRO@jp.fujitsu.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: KOSAKI Motohiro wrote: > IOW, My box didn't happend performance regression. > but I think it isn't typical. Well that is typical for small NUMA system. Maybe this patch will fix it for now? Large systems can be tuned by setting the ratio lower. Subject: slub/NUMA: Disable remote node defragmentation by default Switch remote node defragmentation off by default. The current settings can cause excessive node local allocations with hackbench. (Note that this feature is not related to slab defragmentation). Signed-off-by: Christoph Lameter --- mm/slub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2008-08-19 06:45:54.732348449 -0700 +++ linux-2.6/mm/slub.c 2008-08-19 06:46:12.442348249 -0700 @@ -2312,7 +2312,7 @@ static int kmem_cache_open(struct kmem_c s->refcount = 1; #ifdef CONFIG_NUMA - s->remote_node_defrag_ratio = 100; + s->remote_node_defrag_ratio = 1000; #endif if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) goto error; @@ -4058,7 +4058,7 @@ static ssize_t remote_node_defrag_ratio_ if (err) return err; - if (ratio < 100) + if (ratio <= 100) s->remote_node_defrag_ratio = ratio * 10; return length;