• Eric Dumazet's avatar
    inetpeer: various changes · d6cc1d64
    Eric Dumazet authored
    Try to reduce cache line contentions in peer management, to reduce IP
    defragmentation overhead.
    
    - peer_fake_node is marked 'const' to make sure its not modified.
      (tested with CONFIG_DEBUG_RODATA=y)
    
    - Group variables in two structures to reduce number of dirtied cache
    lines. One named "peers" for avl tree root, its number of entries, and
    associated lock. (candidate for RCU conversion)
    
    - A second one named "unused_peers" for unused list and its lock
    
    - Add a !list_empty() test in unlink_from_unused() to avoid taking lock
    when entry is not unused.
    
    - Use atomic_dec_and_lock() in inet_putpeer() to avoid taking lock in
    some cases.
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d6cc1d64
inetpeer.c 14.4 KB