lkml.org 
[lkml]   [2009]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [tip:perfcounters/urgent] x86: atomic64: The atomic64_t data type should be 8 bytes aligned on 32-bit too


    On Fri, 3 Jul 2009, tip-bot for Eric Dumazet wrote:
    >
    > x86: atomic64: The atomic64_t data type should be 8 bytes aligned on 32-bit too
    >
    > Locked instructions on two cache lines at once are painful. If
    > atomic64_t uses two cache lines, my test program is 10x slower.
    >
    > The chance for that is significant: 4/32 or 12.5%.

    Btw, the comments here are not strictly correct.

    It's not necessarily even about "two cachelines". It's true that crossing
    cachelines is extra painful, but from a CPU core angle, there's another
    access width that matters almost as much, namely the width of the bus
    between the core and the L1 cache. If it's not aligned to that, the core
    needs to do each 8-byte read/write as two accesses, even if it's to the
    same cacheline, and that complicates things.

    The cacheline itself is generally larger than the cache access width. I
    could easily see a 64B cacheline, but a 256b (32B) bus between the cache
    and the core.

    Making the atomics be naturally aligned means that you never cross either
    one, of course.

    Linus


    \
     
     \ /
      Last update: 2009-10-18 23:28    [W:0.023 / U:0.316 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site