public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Manfred Spraul <manfred@colorfullife.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	mpm@selenic.com, npiggin@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [RFC] Simple Slab: A slab allocator with minimal meta information
Date: Thu, 10 Aug 2006 20:47:05 +0200	[thread overview]
Message-ID: <44DB7F29.3060901@colorfullife.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0608100823580.8368@schroedinger.engr.sgi.com>

Christoph Lameter wrote:

>On Thu, 10 Aug 2006, KAMEZAWA Hiroyuki wrote:
>
>  
>
>>BTW, in recent Linux, many objects are freed by call_rcu(hoo, dealyed_free_foo).
>>Objects are freed far after it was touched.
>>I think catching this kind of freeing will not boost performance by cache-hit if
>>reuse freed page (object). 
>>    
>>
>
>Yes that is a general problem with RCU freeing. One can use the 
>SLAB_DESTROY_BY_RCU option to have RCU applied to the whole slab. In that 
>case on can use the cache hot effect but has the additional problem in RCU 
>of dealing with the issue that the object can be replaced at any time.
>  
>
No SLAB_DESTROY_BY_RCU is not equivalent to delayed_free_foo().
SLAB_DESTROY_BY_RCU just means that the slab allocator uses 
delayed_free_pages() instead of free_pages().
kmem_cache_free() does not delay the reuse, an object will be returned 
by the next kmem_cache_alloc, without any grace periods in between.

Independantly from that point, we need some benchmarks to test the 
allocator.

The last benchmarks  of the slab allocator (that I'm aware of) were done 
with packet routing - packet routing was the reason why the shared_array 
layer was added:
The shared_array layer is used to perform inter-cpu bulk object 
transfers. Without that cache, i.e. if a list_add() / list_del() was 
required to transfer one object from one cpu to another cpu, a 
significant amount of time was spent in the allocator.

Christoph, could you run a test? GigE routing with tiny packets should 
be sufficient. Two cpu bound nics, one does rx, the other one tx. Move 
the skb_head_cache to sslab.

--
    Manfred

  reply	other threads:[~2006-08-10 18:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-10  0:52 [RFC] Simple Slab: A slab allocator with minimal meta information Christoph Lameter
2006-08-10  2:07 ` Matt Mackall
2006-08-10  5:01 ` KAMEZAWA Hiroyuki
2006-08-10  5:13   ` Christoph Lameter
2006-08-10  5:44     ` KAMEZAWA Hiroyuki
2006-08-10  5:44       ` Christoph Lameter
2006-08-10  5:56         ` KAMEZAWA Hiroyuki
2006-08-10  6:13       ` KAMEZAWA Hiroyuki
2006-08-10 15:25         ` Christoph Lameter
2006-08-10 18:47           ` Manfred Spraul [this message]
2006-08-10 18:52             ` Christoph Lameter
2006-08-11 17:21             ` Christoph Lameter
2006-08-11 20:33               ` Manfred Spraul
2006-08-11 21:02                 ` Christoph Lameter
  -- strict thread matches above, loose matches on Subject: below --
2006-08-14  1:10 linux
2006-08-14 11:47 ` Andi Kleen

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=44DB7F29.3060901@colorfullife.com \
    --to=manfred@colorfullife.com \
    --cc=clameter@sgi.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpm@selenic.com \
    --cc=npiggin@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox