net: sk_buff rbnode reorg
authorEric Dumazet <edumazet@google.com>
Tue, 19 Sep 2017 12:14:24 +0000 (05:14 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Sep 2017 22:20:22 +0000 (15:20 -0700)
commitbffa72cf7f9df842f0016ba03586039296b4caaf
treee27752d22b270c0c607ff8025e44dd8f884aa1cb
parenta38b2fa37e2e2ac897e7159738c5763ee65ee405
net: sk_buff rbnode reorg

skb->rbnode shares space with skb->next, skb->prev and skb->tstamp

Current uses (TCP receive ofo queue and netem) need to save/restore
tstamp, while skb->dev is either NULL (TCP) or a constant for a given
queue (netem).

Since we plan using an RB tree for TCP retransmit queue to speedup SACK
processing with large BDP, this patch exchanges skb->dev and
skb->tstamp.

This saves some overhead in both TCP and netem.

v2: removes the swtstamp field from struct tcp_skb_cb

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Cc: Wei Wang <weiwan@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
include/net/tcp.h
net/ipv4/tcp_input.c
net/sched/sch_netem.c