• Wei Wang's avatar
    ipv6: only update __use and lastusetime once per jiffy at most · 0da4af00
    Wei Wang authored
    In order to not dirty the cacheline too often, we try to only update
    dst->__use and dst->lastusetime at most once per jiffy.
    As dst->lastusetime is only used by ipv6 garbage collector, it should
    be good enough time resolution.
    And __use is only used in ipv6_route_seq_show() to show how many times a
    dst has been used. And as __use is not atomic_t right now, it does not
    show the precise number of usage times anyway. So we think it should be
    OK to only update it at most once per jiffy.
    
    According to my latest syn flood test on a machine with intel Xeon 6th
    gen processor and 2 10G mlx nics bonded together, each with 8 rx queues
    on 2 NUMA nodes:
    With this patch, the packet process rate increases from ~3.49Mpps to
    ~3.75Mpps with a 7% increase rate.
    
    Note: dst_use() is being renamed to dst_hold_and_use() to better specify
    the purpose of the function.
    Signed-off-by: default avatarWei Wang <weiwan@google.com>
    Acked-by: default avatarEric Dumazet <edumazet@googl.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0da4af00
dn_route.c 47.4 KB