浏览代码

[NET]: Improve cache line coherency of ingress qdisc

Move the ingress qdisc members of struct net_device from the transmit
cache line to the receive cache line to avoid cache line ping-pong.
These members are only used on the receive path.

Signed-off-by: Neil Turton <nturton@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Neil Turton 17 年之前
父节点
当前提交
d5bd0146f0
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. 4 4
      include/linux/netdevice.h

+ 4 - 4
include/linux/netdevice.h

@@ -604,6 +604,10 @@ struct net_device
 
 
 	unsigned char		broadcast[MAX_ADDR_LEN];	/* hw bcast add	*/
 	unsigned char		broadcast[MAX_ADDR_LEN];	/* hw bcast add	*/
 
 
+	/* ingress path synchronizer */
+	spinlock_t		ingress_lock;
+	struct Qdisc		*qdisc_ingress;
+
 /*
 /*
  * Cache line mostly used on queue transmit path (qdisc)
  * Cache line mostly used on queue transmit path (qdisc)
  */
  */
@@ -617,10 +621,6 @@ struct net_device
 	/* Partially transmitted GSO packet. */
 	/* Partially transmitted GSO packet. */
 	struct sk_buff		*gso_skb;
 	struct sk_buff		*gso_skb;
 
 
-	/* ingress path synchronizer */
-	spinlock_t		ingress_lock;
-	struct Qdisc		*qdisc_ingress;
-
 /*
 /*
  * One part is mostly used on xmit path (device)
  * One part is mostly used on xmit path (device)
  */
  */