Re: [PATCH net-next] net: make struct dst_entry::dev first member

2017-05-18 Thread David Miller
From: Alexey Dobriyan 
Date: Wed, 17 May 2017 19:31:39 +0300

> struct dst_entry::dev is used most often. Move it so it can be
> accessed without imm8 offset on x86_64.
 ...
> Signed-off-by: Alexey Dobriyan 

Applied.


[PATCH net-next] net: make struct dst_entry::dev first member

2017-05-17 Thread Alexey Dobriyan
struct dst_entry::dev is used most often. Move it so it can be
accessed without imm8 offset on x86_64.

add/remove: 0/0 grow/shrink: 9/239 up/down: 52/-413 (-361)
function old new   delta
dst_rcu_free 126 138 +12
fnhe_flush_routes211 219  +8
rt_set_nexthop   747 754  +7
rt_cache_route85  91  +6
rt6_release  209 215  +6
dst_release  107 111  +4
dst_destroy_rcu   29  33  +4
dn_dst_check_expire  329 333  +4
dn_insert_route  484 485  +1
xfrm_resolve_and_create_bundle  29912990  -1
...
ip_route_me_harder  11631157  -6
__ip_append_data.isra   27302724  -6
ip6_forward 30523045  -7
callforward_do_filter659 651  -8
dst_gc_task  571 549 -22

Signed-off-by: Alexey Dobriyan 
---

 include/net/dst.h |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -31,9 +31,9 @@
 struct sk_buff;
 
 struct dst_entry {
+   struct net_device   *dev;
struct rcu_head rcu_head;
struct dst_entry*child;
-   struct net_device   *dev;
struct  dst_ops *ops;
unsigned long   _metrics;
unsigned long   expires;