diff options
author | Li RongQing <lirongqing@baidu.com> | 2018-08-29 06:52:10 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-30 08:07:53 +0300 |
commit | 016f3d1818b047c80100d92f023916f9c8d34d3c (patch) | |
tree | 3880ec429ca568b6622b849dbf09822ee367ea6b | |
parent | 920767a9c8925781afdfdbcbc2c0536d3d9b81c0 (diff) | |
download | linux-016f3d1818b047c80100d92f023916f9c8d34d3c.tar.xz |
vxlan: reduce dirty cache line in vxlan_find_mac
vxlan_find_mac() unconditionally set f->used for every packet,
this causes a cache miss for every packet, since remote, hlist
and used of vxlan_fdb share the same cache line, which are
accessed when send every packets.
so f->used is set only if not equal to jiffies, to reduce dirty
cache line times, this gives 3% speed-up with small packets.
Signed-off-by: Zhang Yu <zhangyu31@baidu.com>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/vxlan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index ababba37d735..e5d236595206 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -464,7 +464,7 @@ static struct vxlan_fdb *vxlan_find_mac(struct vxlan_dev *vxlan, struct vxlan_fdb *f; f = __vxlan_find_mac(vxlan, mac, vni); - if (f) + if (f && f->used != jiffies) f->used = jiffies; return f; |