net: add dst_cache to ovs vxlan lwtunnel
In case of UDP traffic with datagram length below MTU this give about 2% performance increase when tunneling over ipv4 and about 60% when tunneling over ipv6 Signed-off-by: Paolo Abeni <pabeni@redhat.com> Suggested-and-acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
0c1d70af92
commit
d71785ffc7
@@ -265,7 +265,7 @@ again:
|
||||
lwtstate_put(dst->lwtstate);
|
||||
|
||||
if (dst->flags & DST_METADATA)
|
||||
kfree(dst);
|
||||
metadata_dst_free((struct metadata_dst *)dst);
|
||||
else
|
||||
kmem_cache_free(dst->ops->kmem_cachep, dst);
|
||||
|
||||
@@ -395,6 +395,14 @@ struct metadata_dst *metadata_dst_alloc(u8 optslen, gfp_t flags)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(metadata_dst_alloc);
|
||||
|
||||
void metadata_dst_free(struct metadata_dst *md_dst)
|
||||
{
|
||||
#ifdef CONFIG_DST_CACHE
|
||||
dst_cache_destroy(&md_dst->u.tun_info.dst_cache);
|
||||
#endif
|
||||
kfree(md_dst);
|
||||
}
|
||||
|
||||
struct metadata_dst __percpu *metadata_dst_alloc_percpu(u8 optslen, gfp_t flags)
|
||||
{
|
||||
int cpu;
|
||||
|
Reference in New Issue
Block a user