lkml.org 
[lkml]   [2011]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 13/15] x86: add cmpxchg_flag() variant
    On 08/24/2011 06:53 AM, Christoph Lameter wrote:
    > On Tue, 23 Aug 2011, Jeremy Fitzhardinge wrote:
    >
    >> However, having prototyped it, I dunno, it doesn't really seem like much
    >> of a win for all the extra code it adds. I just can't get too excited
    >> about an extra test instruction adjacent to a monster like a locked
    >> cmpxchg. The jump variant avoids the test, but gcc still generates some
    >> pretty bogus stuff:
    > There are also unlocked cmpxchges in use.

    I only looked in arch/x86, but I didn't find any that were
    straightforward candidates for cmpxchg_flag.

    > And if the cmpxchg is a 16 byte
    > cmpxchg (cmpxchg_double) then the comparison is getting more expensive.

    We're talking about the difference between cmpxchg_flag() - which does
    a sete based on the flags set up cmpxchg - and a variant based on "asm
    goto" which could, in principle, avoid the need for sete by allowing a
    control flow statment to directly use the asm goto's conditional jump.
    The performance of both is invariant wrt the cmpxchg argument size.

    J


    \
     
     \ /
      Last update: 2011-08-24 18:35    [W:4.706 / U:0.188 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site