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>
This commit is contained in:

committed by
David S. Miller

parent
a38b2fa37e
commit
bffa72cf7f
@@ -661,8 +661,12 @@ struct sk_buff {
|
||||
struct sk_buff *prev;
|
||||
|
||||
union {
|
||||
ktime_t tstamp;
|
||||
u64 skb_mstamp;
|
||||
struct net_device *dev;
|
||||
/* Some protocols might use this space to store information,
|
||||
* while device pointer would be NULL.
|
||||
* UDP receive path is one user.
|
||||
*/
|
||||
unsigned long dev_scratch;
|
||||
};
|
||||
};
|
||||
struct rb_node rbnode; /* used in netem & tcp stack */
|
||||
@@ -670,12 +674,8 @@ struct sk_buff {
|
||||
struct sock *sk;
|
||||
|
||||
union {
|
||||
struct net_device *dev;
|
||||
/* Some protocols might use this space to store information,
|
||||
* while device pointer would be NULL.
|
||||
* UDP receive path is one user.
|
||||
*/
|
||||
unsigned long dev_scratch;
|
||||
ktime_t tstamp;
|
||||
u64 skb_mstamp;
|
||||
};
|
||||
/*
|
||||
* This is the control buffer. It is free to use for every
|
||||
|
Reference in New Issue
Block a user