net: keep name_hlist close to name
authorEric Dumazet <edumazet@google.com>
Mon, 11 Jun 2012 06:36:13 +0000 (06:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Jun 2012 20:11:28 +0000 (13:11 -0700)
__dev_get_by_name() is slow because pm_qos_req has been inserted between
name[] and name_hlist, adding cache misses.

pm_qos_req has nothing to do at the beginning of struct net_device

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h

index d94cb14..a0b84e3 100644 (file)
@@ -1046,10 +1046,9 @@ struct net_device {
         */
        char                    name[IFNAMSIZ];
 
-       struct pm_qos_request   pm_qos_req;
-
-       /* device name hash chain */
+       /* device name hash chain, please keep it close to name[] */
        struct hlist_node       name_hlist;
+
        /* snmp alias */
        char                    *ifalias;
 
@@ -1322,6 +1321,8 @@ struct net_device {
 
        /* group the device belongs to */
        int group;
+
+       struct pm_qos_request   pm_qos_req;
 };
 #define to_net_dev(d) container_of(d, struct net_device, dev)