Re: [PATCH 1/2] slub: fix leakage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux