diff options
author | Eric Dumazet <edumazet@google.com> | 2012-06-11 06:36:13 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-11 20:11:28 (GMT) |
commit | 9136461ab921fd5066ba6a0de08399e2172f4d71 (patch) | |
tree | 0dbbcb9d46f217ce035748b759e42fe519ed4039 | |
parent | 67da25521066b38911701efa133aaad2238b5530 (diff) | |
download | linux-9136461ab921fd5066ba6a0de08399e2172f4d71.tar.xz |
net: keep name_hlist close to name
__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>
-rw-r--r-- | include/linux/netdevice.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index d94cb14..a0b84e3 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -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) |