diff options
author | Eric Dumazet <edumazet@google.com> | 2012-06-11 02:36:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-11 16:11:28 -0400 |
commit | 9136461ab921fd5066ba6a0de08399e2172f4d71 (patch) | |
tree | 0dbbcb9d46f217ce035748b759e42fe519ed4039 /include/linux/netdevice.h | |
parent | 67da25521066b38911701efa133aaad2238b5530 (diff) |
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>
Diffstat (limited to 'include/linux/netdevice.h')
-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 d94cb1431519..a0b84e3b087c 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1046,10 +1046,9 @@ struct net_device { | |||
1046 | */ | 1046 | */ |
1047 | char name[IFNAMSIZ]; | 1047 | char name[IFNAMSIZ]; |
1048 | 1048 | ||
1049 | struct pm_qos_request pm_qos_req; | 1049 | /* device name hash chain, please keep it close to name[] */ |
1050 | |||
1051 | /* device name hash chain */ | ||
1052 | struct hlist_node name_hlist; | 1050 | struct hlist_node name_hlist; |
1051 | |||
1053 | /* snmp alias */ | 1052 | /* snmp alias */ |
1054 | char *ifalias; | 1053 | char *ifalias; |
1055 | 1054 | ||
@@ -1322,6 +1321,8 @@ struct net_device { | |||
1322 | 1321 | ||
1323 | /* group the device belongs to */ | 1322 | /* group the device belongs to */ |
1324 | int group; | 1323 | int group; |
1324 | |||
1325 | struct pm_qos_request pm_qos_req; | ||
1325 | }; | 1326 | }; |
1326 | #define to_net_dev(d) container_of(d, struct net_device, dev) | 1327 | #define to_net_dev(d) container_of(d, struct net_device, dev) |
1327 | 1328 | ||