• Eric Dumazet's avatar
    net: avoid a pair of dst_hold()/dst_release() in ip_push_pending_frames() · a21bba94
    Eric Dumazet authored
    We can reduce pressure on dst entry refcount that slowdown UDP transmit
    path on SMP machines. This pressure is visible on RTP servers when
    delivering content to mediagateways, especially big ones, handling
    thousand of streams. Several cpus send UDP frames to the same
    destination, hence use the same dst entry.
    
    This patch makes ip_push_pending_frames() steal the refcount its
    callers had to take when filling inet->cork.dst.
    
    This doesnt avoid all refcounting, but still gives speedups on SMP,
    on UDP/RAW transmit path.
    Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a21bba94
ip_output.c 35.3 KB