Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756802AbXKETKt (ORCPT ); Mon, 5 Nov 2007 14:10:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754558AbXKETKk (ORCPT ); Mon, 5 Nov 2007 14:10:40 -0500 Received: from extu-mxob-1.symantec.com ([216.10.194.28]:55136 "EHLO extu-mxob-1.symantec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752603AbXKETKj (ORCPT ); Mon, 5 Nov 2007 14:10:39 -0500 Date: Mon, 5 Nov 2007 19:09:41 +0000 (GMT) From: Hugh Dickins X-X-Sender: hugh@blonde.wat.veritas.com To: Christoph Lameter cc: =?ISO-8859-1?Q?Oliv=E9r_Pint=E9r?= , Linus Torvalds , Andrew Morton , Willy Tarreau , linux-kernel@vger.kernel.org, stable@kernel.org Subject: Re: [PATCH 1/2] slub: fix leakage In-Reply-To: Message-ID: References: <6101e8c40711031027x3f946b28p324dadeab7c1b2c3@mail.gmail.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2430 Lines: 57 On Mon, 5 Nov 2007, Christoph Lameter wrote: > On Sun, 4 Nov 2007, Hugh Dickins wrote: > > > In a low memory situation, when several tasks pile up to allocate > > the same resource, we'd usually free back all but the first, rather > > than depleting free memory even more than necessary. That you were > > doing before, now you take the simpler way out and don't bother. > > Hmmm... But even without the patch: All tasks had to allocate their > own slabs via the page allocator first. Most of those were then thrown > away immediately. Now we are flushing the current cpu slab. Which means > that this is also going back to the page allocator if its empty. Perfectly possible, but not the likely case. > It is > likely that the push back in the situation you mention will put a slab > with only one object allocated onto the partial lists. This can have two > beneficial effects: > > 1. We can avoid going back to the page allocator for awhile since we will > find the almost free slab if the current slab is exhausted. Well, yes, but we don't usually make that argument for allocating more than we need - especially not when memory is low ;) > > 2. If the object that was allocated in the flushed slab was a short lived > use freed then the slab will go back to the page allocator very fast. > > > I've no evidence that this is a significant issue: just mention > > it in case it gives you second thoughts e.g. was there a concrete > > scenario, other than instinct, which led you to put in that code > > originally? > > The intend was to use objects that were cache hot as much as possible. Use > of the newly allocated slab means we are likely accessing a cache cold > page. Ah yes. And that's certainly no argument for retaining the code, I'm sure it's not a case we need to optimize for. > > However, given that it took us pretty long to find that issue I would > think that this is not that of an important code path. So the removal > seems to be the right way to go. Okay, I wanted to make the point, but I've no wish to hold up your fix (and removing code, particularly code that has given trouble, is always welcome). Please go ahead - thanks. Hugh - 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/