From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760077AbYENWcf (ORCPT ); Wed, 14 May 2008 18:32:35 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753912AbYENWcW (ORCPT ); Wed, 14 May 2008 18:32:22 -0400 Received: from relay1.sgi.com ([192.48.171.29]:48775 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753763AbYENWcV (ORCPT ); Wed, 14 May 2008 18:32:21 -0400 Date: Wed, 14 May 2008 15:32:17 -0700 (PDT) From: Christoph Lameter X-X-Sender: clameter@schroedinger.engr.sgi.com To: Matthew Wilcox cc: Andi Kleen , Pekka Enberg , KOSAKI Motohiro , Rik van Riel , akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Mel Gorman , mpm@selenic.com, "Zhang, Yanmin" Subject: Re: [patch 21/21] slab defrag: Obsolete SLAB In-Reply-To: <20080514220058.GG9921@parisc-linux.org> Message-ID: References: <482B2617.5010605@firstfloor.org> <20080514205842.GC9921@parisc-linux.org> <20080514212130.GD9921@parisc-linux.org> <20080514214326.GF9921@parisc-linux.org> <20080514220058.GG9921@parisc-linux.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 14 May 2008, Matthew Wilcox wrote: > Since there's no way we've found to date to get the TPC test to you, > how about we settle for analysing _this_ testcase which did show a > significant performance degradation for slub? > > I don't think it's an unreasonable testcase either -- effectively it's > allocating memory on all CPUs and then freeing it all on one. If that's > a worst-case scenario for slub, then slub isn't suitable for replacing > slab yet. Indeed that is a worst case scenario due to finer grained locking. The opposite side of that is that fast concurrent freeing of objects from two processors will have higher performance in slub since there is significantly less global lock contention and less work with expiring objects and moving them around (if you hit the queue limits then SLAB will do synchroonous merging of objects into slabs, its then no longer able to hide the object handling overhead in cache_reap().)