vxlan_find_mac() unconditionally set f->used for every packet, this cause a cache miss for every packet, since remote, hlist and used of vxlan_fdb share the same cacheline.
With this change f->used is set only if not equal to jiffies This gives up to 5% speed-up with small packets. Signed-off-by: Zhang Yu <zhangy...@baidu.com> Signed-off-by: Li RongQing <lirongq...@baidu.com> --- drivers/net/vxlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- 2.16.2