Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754673AbYHMNLR (ORCPT ); Wed, 13 Aug 2008 09:11:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752662AbYHMNLD (ORCPT ); Wed, 13 Aug 2008 09:11:03 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:56417 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752338AbYHMNLA (ORCPT ); Wed, 13 Aug 2008 09:11:00 -0400 Message-ID: <48A2DD2C.3090602@linux-foundation.org> Date: Wed, 13 Aug 2008 08:10:04 -0500 From: Christoph Lameter User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: KOSAKI Motohiro CC: KOSAKI Motohiro , 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 Subject: Re: No, really, stop trying to delete slab until you've finished making slub perform as well References: <20080805210125.A897.KOSAKI.MOTOHIRO@jp.fujitsu.com> <48986AC6.5030406@linux-foundation.org> <20080813194222.E77F.KOSAKI.MOTOHIRO@jp.fujitsu.com> In-Reply-To: <20080813194222.E77F.KOSAKI.MOTOHIRO@jp.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1406 Lines: 54 KOSAKI Motohiro wrote: > > > % cat /proc/meminfo > > Slab: 1591680 kB > SReclaimable: 12608 kB > SUnreclaim: 1579072 kB Unreclaimable grew very big. > :t-0000128 28739 128 1.3G 20984/20984/8 512 0 99 0 * Argh. Most slabs contain a single object. Probably due to the conflict resolution. > kmalloc-192 4609 192 85.9M 1303/1303/8 341 0 99 1 And a similar but not so severe issue here. The obvious fix is to avoid allocating another slab on conflict but how will this impact performance? Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2008-08-13 08:06:00.000000000 -0500 +++ linux-2.6/mm/slub.c 2008-08-13 08:07:59.000000000 -0500 @@ -1253,13 +1253,11 @@ static inline int lock_and_freeze_slab(struct kmem_cache_node *n, struct page *page) { - if (slab_trylock(page)) { - list_del(&page->lru); - n->nr_partial--; - __SetPageSlubFrozen(page); - return 1; - } - return 0; + slab_lock(page); + list_del(&page->lru); + n->nr_partial--; + __SetPageSlubFrozen(page); + return 1; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/