All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manfred Spraul <manfred@colorfullife.com>
To: Pekka J Enberg <penberg@cs.Helsinki.FI>
Cc: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] slab: introduce kmem_cache_zalloc allocator
Date: Tue, 21 Mar 2006 19:35:00 +0100	[thread overview]
Message-ID: <44204754.8070401@colorfullife.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0603211250530.22577@sbz-30.cs.Helsinki.FI>

Pekka J Enberg wrote:

>On Tue, 21 Mar 2006, Andrew Morton wrote:
>  
>
>>I've always felt that this was an odd design.  Because
>>
>>a) All that cache-warmth which we get from the constructor's zeroing can
>>   be lost by the time we get around to using an individual object and
>>
>>b) The object may be cache-cold by the time we free it, and we'll take
>>   cache misses just putting it back into a constructed state for
>>   kmem_cache_free().  And we'll lose that cache warmth by the time we use
>>   this object again.
>>
>>So from that POV I think (in my simple way) that this is a good patch.  But
>>IIRC, Manfred has reasons why it might not be?
>>    
>>
>
>I assume the design comes from Bonwick's paper which states that the 
>purpose of object constructor is to support one-time initialization of 
>objects which we're _not_ doing in this case.
>
>  
>
I agree - memset just before use is the Right Thing (tm).

One minor point: There are two cache_alloc entry points: __cache_alloc, 
which is a forced inline function, and kmem_cache_alloc, which is just a 
wrapper for __cache_alloc. Is it really necessary to call __cache_alloc?
The idea is that __cache_alloc is used just by the two high-performance 
paths: kmem_cache_alloc and kmalloc. Noone else should use __cache_alloc 
directly.

--
    Manfred

  reply	other threads:[~2006-03-21 18:35 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-20 13:07 [PATCH] slab: introduce kmem_cache_zalloc allocator Pekka J Enberg
2006-03-20 13:51 ` Eric Dumazet
2006-03-20 14:21   ` Pekka J Enberg
2006-03-20 16:05 ` Balbir Singh
2006-03-20 16:14   ` Pekka Enberg
2006-03-20 16:45     ` Balbir Singh
2006-03-21  7:13       ` Pekka J Enberg
2006-03-21 10:36 ` Andrew Morton
2006-03-21 11:03   ` Pekka J Enberg
2006-03-21 18:35     ` Manfred Spraul [this message]
2006-03-21 18:37       ` Pekka Enberg
2006-03-21 11:25 ` Andrew Morton
2006-03-21 11:50   ` Pekka J Enberg
2006-03-21 16:30   ` Pekka Enberg
     [not found] <5Ssjj-314-69@gated-at.bofh.it>
     [not found] ` <5Sv7o-7l5-23@gated-at.bofh.it>
     [not found]   ` <5Svh9-7xW-61@gated-at.bofh.it>
     [not found]     ` <5SvK8-88q-41@gated-at.bofh.it>
2006-03-20 19:07       ` Bodo Eggert
2006-03-21  3:25         ` Balbir Singh
2006-03-21 10:51           ` Bodo Eggert
2006-03-21 11:32             ` Pekka J Enberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44204754.8070401@colorfullife.com \
    --to=manfred@colorfullife.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=penberg@cs.Helsinki.FI \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.