• Paolo Abeni's avatar
    sock: avoid dirtying incoming_cpu if not needed · 34cfb542
    Paolo Abeni authored
    for connected socket, the incoming_cpu field in the sock struct
    is not going to change frequently, but we are setting it
    unconditionally for each packet.
    Since sk_incoming_cpu and sk_flags share the same cacheline,
    and the latter is access by udp_recvmsg(), this cause a cache
    miss for each packet for UDP connected socket.
    With this patch, we set the incoming cpu field only when the
    ingress cpu really changes.
    This gives a small but measurable performance improvement for
    connected UDP socket.
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>