Re: Slow speed of tcp connections in a network namespace
From: Andrew Vagin <hidden>
Date: 2012-12-29 14:51:12
On Sat, Dec 29, 2012 at 05:53:23AM -0800, Eric Dumazet wrote:
quoted
3.8-rc1 is used for experiments. Do you have any ideas where is a problem?veth has absolutely no offload features It needs some care... At the very miminum, let TCP coalesce do its job by allowing SG CC Michał Mirosław [off-list ref] for insights. Please try following patch :
Hello Eric, Thanks for your feedback. With this patch the results is a bit better (~4MB/s), but it's much less than in the root netns.
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 95814d9..9fefeb3 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c@@ -259,6 +259,10 @@ static const struct net_device_ops veth_netdev_ops = { .ndo_set_mac_address = eth_mac_addr, }; +#define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | \ + NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | \ + NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX) + static void veth_setup(struct net_device *dev) { ether_setup(dev);@@ -269,9 +273,10 @@ static void veth_setup(struct net_device *dev) dev->netdev_ops = &veth_netdev_ops; dev->ethtool_ops = &veth_ethtool_ops; dev->features |= NETIF_F_LLTX; + dev->features |= VETH_FEATURES; dev->destructor = veth_dev_free; - dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_RXCSUM; + dev->hw_features = VETH_FEATURES; } /*