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
next prev parent 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