• Paolo Abeni's avatar
    sock: avoid dirtying sk_stamp, if possible · 6c7c98ba
    Paolo Abeni authored
    sock_recv_ts_and_drops() unconditionally set sk->sk_stamp for
    every packet, even if the SOCK_TIMESTAMP flag is not set in the
    related socket.
    If selinux is enabled, this cause a cache miss for every packet
    since sk->sk_stamp and sk->sk_security share the same cacheline.
    With this change sk_stamp is set only if the SOCK_TIMESTAMP
    flag is set, and is cleared for the first packet, so that the user
    perceived behavior is unchanged.
    
    This gives up to 5% speed-up under udp-flood with small packets.
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Acked-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6c7c98ba
sock.h 66.1 KB