Message ID | 50289A37.6000209@intel.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: "Yan, Zheng" <zheng.z.yan@intel.com> Date: Mon, 13 Aug 2012 14:09:59 +0800 > 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> I was pretty sure not using 'fi' was necessary for semantic reasons here, but I can't find any such requirement, so I've applied this, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index e4ba974..fd9ecb5 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; }
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> --- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html