[NET]: Improve cache line coherency of ingress qdisc
authorNeil Turton <nturton@solarflare.com>
Wed, 13 Feb 2008 07:13:48 +0000 (23:13 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Feb 2008 07:13:48 +0000 (23:13 -0800)
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>
include/linux/netdevice.h

index 047d432bde5551784534de19482b46d3d3eb83da..4ffa49dbb66f891f51f0895e7fc7e186c10c5225 100644 (file)
@@ -604,6 +604,10 @@ struct net_device
 
        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)
  */
@@ -617,10 +621,6 @@ struct net_device
        /* Partially transmitted GSO packet. */
        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)
  */