[TCP]: Don't set SKB owner in tcp_transmit_skb().
The data itself is already charged to the SKB, doing the skb_set_owner_w() just generates a lot of noise and extra atomics we don't really need. Lmbench improvements on lat_tcp are minimal: before: TCP latency using localhost: 23.2701 microseconds TCP latency using localhost: 23.1994 microseconds TCP latency using localhost: 23.2257 microseconds after: TCP latency using localhost: 22.8380 microseconds TCP latency using localhost: 22.9465 microseconds TCP latency using localhost: 22.8462 microseconds Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -125,7 +125,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
DCCP_INC_STATS(DCCP_MIB_OUTSEGS);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = icsk->icsk_af_ops->queue_xmit(skb, 0);
|
||||
err = icsk->icsk_af_ops->queue_xmit(skb, sk, 0);
|
||||
if (err <= 0)
|
||||
return err;
|
||||
|
||||
@@ -426,7 +426,7 @@ int dccp_send_reset(struct sock *sk, enum dccp_reset_codes code)
|
||||
code);
|
||||
if (skb != NULL) {
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
err = inet_csk(sk)->icsk_af_ops->queue_xmit(skb, 0);
|
||||
err = inet_csk(sk)->icsk_af_ops->queue_xmit(skb, sk, 0);
|
||||
if (err == NET_XMIT_CN)
|
||||
err = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user