• Christoph Lameter's avatar
    x86: Add support for cmpxchg_double · 3824abd1
    Christoph Lameter authored
    A simple implementation that only supports the word size and does not
    have a fallback mode (would require a spinlock).
    
    Add 32 and 64 bit support for cmpxchg_double. cmpxchg double uses
    the cmpxchg8b or cmpxchg16b instruction on x86 processors to compare
    and swap 2 machine words. This allows lockless algorithms to move more
    context information through critical sections.
    
    Set a flag CONFIG_CMPXCHG_DOUBLE to signal that support for double word
    cmpxchg detection has been build into the kernel. Note that each subsystem
    using cmpxchg_double has to implement a fall back mechanism as long as
    we offer support for processors that do not implement cmpxchg_double.
    Reviewed-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: default avatarChristoph Lameter <cl@linux.com>
    Link: http://lkml.kernel.org/r/20110601172614.173427964@linux.comSigned-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    3824abd1
cmpxchg_64.h 5.34 KB