From: Eric Dumazet <eduma...@google.com>
Date: Mon, 19 Nov 2018 17:45:55 -0800

> Under stress, softirq rx handler often hits a socket owned by the user,
> and has to queue the packet into socket backlog.
> 
> When this happens, skb dst refcount is taken before we escape rcu
> protected region. This is done from __sk_add_backlog() calling
> skb_dst_force().
> 
> Consumer will have to perform the opposite costly operation.
> 
> AFAIK nothing in tcp stack requests the dst after skb was stored
> in the backlog. If this was the case, we would have had failures
> already since skb_dst_force() can end up clearing skb dst anyway.
> 
> Signed-off-by: Eric Dumazet <eduma...@google.com>

Hmmm, it seems to be used by connection completion code to setup the
socket cached rx dst, right?

For example tcp_finish_connect() --> icsk->icsk_af_ops->sk_rx_dst_set(sk, skb)

Reply via email to