login
Header Space

 
 

Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Christoph Lameter <clameter@...>
Cc: David Miller <davem@...>, <netdev@...>, <linux-kernel@...>, <yanmin_zhang@...>, <dada1@...>
Date: Thursday, March 6, 2008 - 10:23 pm

On Thu, Mar 06, 2008 at 02:56:42PM -0800, Christoph Lameter wrote:

That's just because you (apparently still) have a misconception about what
the flag is supposed to be for. It is not for aligning things to the start
of a cacheline boundary. It is not for avoiding false sharing on SMP. It
is for ensuring that a given object will span the fewest number of
cachelines. This can actually be important if you do anything like random
lookups or tree walks where the object contains the tree node.

Consider a 64 byte cacheline, and a 24 byte object:
cacheline  |-------|-------|-------
object     |--|--|--|--|--|--|--|--

So if you touch 8 random objects, it is statistically likely to cost you
10 cache misses (so long as the working set is sufficiently cold / larger
than cache that cacheline sharing is insignificant).

If you actually honour HWCACHE_ALIGN, then the same object will be 32
bytes:
cacheline  |-------|
object     |---|---|

Now 8 will cost 8. A 20% saving. Maybe almost a 20% performance improvement.

Before we go around in circles again, do you accept this? If yes, then
what is your argument that SLUB knows better than the caller; if no, then
why not?

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Mon Mar 3, 3:08 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Mon Mar 3, 4:10 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Mon Mar 3, 5:16 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Wed Mar 5, 5:06 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 6:56 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Nick Piggin, (Thu Mar 6, 10:23 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 10:26 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 10:54 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 11:18 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 11:58 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Mon Mar 3, 5:32 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Wed Mar 5, 4:56 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 6:53 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 10:20 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 10:27 pm)
Re: [rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment, Christoph Lameter, (Thu Mar 6, 10:33 pm)
[rfc][patch 3/3] use SLAB_ALIGN_SMP, Nick Piggin, (Mon Mar 3, 5:36 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Eric Dumazet, (Mon Mar 3, 5:53 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Nick Piggin, (Mon Mar 3, 8:41 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Eric Dumazet, (Mon Mar 3, 9:00 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Nick Piggin, (Mon Mar 3, 9:46 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Pekka Enberg, (Mon Mar 3, 9:53 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Christoph Lameter, (Mon Mar 3, 3:09 pm)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Nick Piggin, (Mon Mar 3, 4:10 pm)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Christoph Lameter, (Mon Mar 3, 4:12 pm)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Nick Piggin, (Mon Mar 3, 4:18 pm)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Christoph Lameter, (Mon Mar 3, 5:14 pm)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Eric Dumazet, (Mon Mar 3, 10:15 am)
Re: [rfc][patch 3/3] use SLAB_ALIGN_SMP, Christoph Lameter, (Mon Mar 3, 3:10 pm)
[rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Mon Mar 3, 5:35 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Mon Mar 3, 3:06 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Mon Mar 3, 4:03 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Mon Mar 3, 4:09 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Mon Mar 3, 4:12 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Mon Mar 3, 4:17 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Mon Mar 3, 4:24 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Mon Mar 3, 5:31 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Fri Mar 7, 12:37 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Fri Mar 7, 1:11 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Fri Mar 7, 1:19 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Fri Mar 7, 1:26 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Tue Mar 11, 3:13 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Wed Mar 12, 2:21 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Fri Mar 7, 1:37 am)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Nick Piggin, (Tue Mar 4, 8:16 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Pekka Enberg, (Mon Mar 3, 4:41 pm)
Re: [rfc][patch 2/3] slab: introduce SMP alignment, Christoph Lameter, (Mon Mar 3, 5:23 pm)
speck-geostationary