Skip to content
  • Eric Dumazet's avatar
    atomic: add atomic_inc_not_zero_hint() · 3f9d35b9
    Eric Dumazet authored
    
    
    Followup of perf tools session in Netfilter WorkShop 2010
    
    In the network stack we make high usage of atomic_inc_not_zero() in
    contexts we know the probable value of atomic before increment (2 for udp
    sockets for example)
    
    Using a special version of atomic_inc_not_zero() giving this hint can help
    processor to use less bus transactions.
    
    On x86 (MESI protocol) for example, this avoids entering Shared state,
    because "lock cmpxchg" issues an RFO (Read For Ownership)
    
    akpm: Adds a new include/linux/atomic.h.  This means that new code should
    henceforth include linux/atomic.h and not asm/atomic.h.  The presence of
    include/linux/atomic.h will in fact cause checkpatch.pl to warn about use
    of asm/atomic.h.  The new include/linux/atomic.h becomes the place where
    arch-neutral atomic_t code should be placed.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
    Cc: David Miller <davem@davemloft.net>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Reviewed-by: default avatar"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3f9d35b9