From: Nick Piggin <npiggin@suse.de>
To: Christoph Lameter <clameter@sgi.com>
Cc: netdev@vger.kernel.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
yanmin_zhang@linux.intel.com, David Miller <davem@davemloft.net>,
Eric Dumazet <dada1@cosmosbay.com>
Subject: Re: [rfc][patch 2/3] slab: introduce SMP alignment
Date: Fri, 7 Mar 2008 06:19:44 +0100 [thread overview]
Message-ID: <20080307051944.GJ21185@wotan.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0803062108210.1143@schroedinger.engr.sgi.com>
On Thu, Mar 06, 2008 at 09:11:39PM -0800, Christoph Lameter wrote:
> On Fri, 7 Mar 2008, Nick Piggin wrote:
>
> > > No the slab allocators were optimized for VSMP so that the
> > > internode_alignment is not necessary there. That was actually one of the
> > > requirements that triggered the slab numa work.
> >
> > BTW. can you explain this incredible claim that the slab allocators
> > do not need internode_alignment to avoid false sharing of allocated
> > objects on VSMP? I don't understand how that would work at all.
>
> The queues are per node which means that pages from which we allocate are
> distinct per node. As long as processes allocate and free object on a
> single node all is fine. Problems can arise though if objects are used
> across node.
This does not solve the problem. Say if you have 2 objects allocated
from a given slab and you want to avoid cacheline contention between
them, then you have to always ensure they don't overlap on the same
cacheline. The fact this happens naturally when you allocate 2 objects
from 2 different nodes doesn't really help: the same single CPU can
allocate objects that you want to avoid false sharing with. Consider
a task struct for example: if you start up a whole lot of worker threads
from a single CPU, then you will allocate them all from that one CPU.
Then they are spread over all CPUs and you get cacheline contention.
Which is why VSMP would legitimately want to use internode alignment
on some structures. And internode alignment is total overkill on any
other type of system, so you can't go around annotating all your
structures with it and hope KMEM_CACHE does the right thing.
next prev parent reply other threads:[~2008-03-07 5:19 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-03 9:34 [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment Nick Piggin
2008-03-03 9:35 ` [rfc][patch 2/3] slab: introduce SMP alignment Nick Piggin
2008-03-03 19:06 ` Christoph Lameter
2008-03-03 20:03 ` Nick Piggin
2008-03-03 20:09 ` Christoph Lameter
2008-03-03 20:12 ` Nick Piggin
2008-03-03 20:17 ` Christoph Lameter
2008-03-03 20:24 ` Nick Piggin
2008-03-03 20:41 ` Pekka Enberg
2008-03-03 21:23 ` Christoph Lameter
2008-03-03 21:31 ` Christoph Lameter
2008-03-05 0:16 ` Nick Piggin
2008-03-07 4:37 ` Nick Piggin
2008-03-07 5:11 ` Christoph Lameter
2008-03-07 5:19 ` Nick Piggin [this message]
2008-03-07 5:26 ` Christoph Lameter
2008-03-07 5:37 ` Nick Piggin
2008-03-11 7:13 ` Nick Piggin
2008-03-12 6:21 ` Christoph Lameter
2008-03-03 9:36 ` [rfc][patch 3/3] use SLAB_ALIGN_SMP Nick Piggin
2008-03-03 9:53 ` Eric Dumazet
2008-03-03 12:41 ` Nick Piggin
2008-03-03 13:00 ` Eric Dumazet
2008-03-03 13:46 ` Nick Piggin
2008-03-03 13:53 ` Pekka Enberg
2008-03-03 14:15 ` Eric Dumazet
2008-03-03 19:10 ` Christoph Lameter
2008-03-03 19:09 ` Christoph Lameter
2008-03-03 20:10 ` Nick Piggin
2008-03-03 20:12 ` Christoph Lameter
2008-03-03 20:18 ` Nick Piggin
2008-03-03 21:14 ` Christoph Lameter
2008-03-03 9:44 ` [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment Pekka Enberg
2008-03-03 12:28 ` Nick Piggin
2008-03-03 19:08 ` Christoph Lameter
2008-03-03 20:06 ` Nick Piggin
2008-03-03 20:10 ` Christoph Lameter
2008-03-03 20:17 ` Nick Piggin
2008-03-03 21:16 ` Christoph Lameter
2008-03-03 21:30 ` Pekka Enberg
2008-03-03 21:32 ` Christoph Lameter
2008-03-03 21:35 ` Pekka Enberg
2008-03-05 0:28 ` Nick Piggin
2008-03-05 20:56 ` Christoph Lameter
2008-03-06 2:49 ` Nick Piggin
2008-03-06 22:53 ` Christoph Lameter
2008-03-07 2:04 ` Nick Piggin
2008-03-07 2:20 ` Christoph Lameter
2008-03-07 2:25 ` Nick Piggin
2008-03-07 2:27 ` Christoph Lameter
2008-03-07 2:33 ` Nick Piggin
2008-03-07 2:33 ` Christoph Lameter
2008-03-07 5:23 ` Nick Piggin
2008-03-05 0:08 ` Nick Piggin
2008-03-05 0:06 ` Nick Piggin
2008-03-05 0:10 ` David Miller
2008-03-05 21:06 ` Christoph Lameter
2008-03-06 2:57 ` Nick Piggin
2008-03-06 22:56 ` Christoph Lameter
2008-03-07 2:23 ` Nick Piggin
2008-03-07 2:26 ` Christoph Lameter
2008-03-07 2:32 ` Nick Piggin
2008-03-07 2:54 ` Christoph Lameter
2008-03-07 3:10 ` Nick Piggin
2008-03-07 3:18 ` Christoph Lameter
2008-03-07 3:22 ` Nick Piggin
2008-03-07 3:58 ` Christoph Lameter
2008-03-07 4:05 ` Nick Piggin
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=20080307051944.GJ21185@wotan.suse.de \
--to=npiggin@suse.de \
--cc=clameter@sgi.com \
--cc=dada1@cosmosbay.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=yanmin_zhang@linux.intel.com \
/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;
as well as URLs for NNTP newsgroup(s).