diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2012-08-12 20:09:59 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-08-14 14:45:07 -0700 |
commit | 7bd86cc282a458b66c41e3f6676de6656c99b8db (patch) | |
tree | 3d40c40d31d9556c095a9e50d54528886fdbcc79 /net/ipv4/route.c | |
parent | aefe5c0060639914cce7ed4947f2c030f615bebf (diff) | |
download | linux-7bd86cc282a458b66c41e3f6676de6656c99b8db.tar.gz linux-7bd86cc282a458b66c41e3f6676de6656c99b8db.tar.bz2 linux-7bd86cc282a458b66c41e3f6676de6656c99b8db.zip |
ipv4: Cache local output routes
Commit caacf05e5ad1abf causes big drop of UDP loop back performance.
The cause of the regression is that we do not cache the local output
routes. Each time we send a datagram from unconnected UDP socket,
the kernel allocates a dst_entry and adds it to the rt_uncached_list.
It creates lock contention on the rt_uncached_lock.
Reported-by: Alex Shi <alex.shi@intel.com>
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index e4ba974f143c..fd9ecb52c66b 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -2028,7 +2028,6 @@ struct rtable *__ip_route_output_key(struct net *net, struct flowi4 *fl4) } dev_out = net->loopback_dev; fl4->flowi4_oif = dev_out->ifindex; - res.fi = NULL; flags |= RTCF_LOCAL; goto make_route; } |