CACHE_LINE_SIZE on x86

Andre Oppermann andre at freebsd.org
Thu Nov 1 14:45:01 UTC 2012


On 01.11.2012 01:50, Jim Harris wrote:
>
>
> On Thu, Oct 25, 2012 at 2:40 PM, Jim Harris <jim.harris at gmail.com <mailto:jim.harris at gmail.com>> wrote:
>
>     On Thu, Oct 25, 2012 at 2:32 PM, John Baldwin <jhb at freebsd.org <mailto:jhb at freebsd.org>> wrote:
>      >
>      > It would be good to know though if there are performance benefits from
>      > avoiding sharing across paired lines in this manner.  Even if it has
>      > its own MOESI state, there might still be negative effects from sharing
>      > the pair.
>
>     On 2S, I do see further benefits by using 128 byte padding instead of
>     64.  On 1S, I see no difference.  I've been meaning to turn off
>     prefetching on my system to see if it has any effect in the 2S case -
>     I can give that a shot tomorrow.
>
>
> So tomorrow turned into next week, but I have some data finally.
>
> I've updated to HEAD from today, including all of the mtx_padalign changes.  I tested 64 v. 128 byte
> alignment on 2S amd64 (SNB Xeon).  My BIOS also has a knob to disable the adjacent line prefetching
> (MLC spatial prefetcher), so I ran both 64b and 128b against this specific prefetcher both enabled
> and disabled.
>
> MLC prefetcher enabled: 3-6% performance improvement, 1-5% decrease in CPU utilization by using 128b
> padding instead of 64b.

Just to be sure.  The numbers you show are just for the one location you've
converted to the new padded mutex and a particular test case?

-- 
Andre

> MLC prefetcher disabled: performance and CPU utilization differences are in the noise - anywhere
> from -0.2% to +0.5%.  The performanc here matches extremely closely (within 1%) with 128b padding
> and the MLC prefetcher enabled.
>
> I think it's safe to say that the 128b pad/alignment is worth keeping for multi-socket x86, and is
> most certainly due to the MLC spatial prefetcher.
>
> I still see no measurable differences with 64b v. 128b padding on 1S, but that's only testing with
> my benchmark.
>
> Thanks,
>
> -Jim
>



More information about the freebsd-arch mailing list