Re: [PATCH v3 4/4] USBNET: ax88179_178a: enable tso if usb host supports sg dma
From: Eric Dumazet <hidden>
Date: 2013-08-06 12:22:19
On Tue, 2013-08-06 at 08:52 +0800, Ming Lei wrote:
This patch enables 'can_dma_sg' flag for ax88179_178a device if the attached host controller supports building packet from discontinuous buffers(DMA SG is possible), so TSO can be enabled and skb fragment buffers can be passed to usb stack via urb->sg directly. With the patch, system CPU utilization decreased ~50% and throughput increased by ~10% when doing iperf client test on one ARM A15 dual core board.
Nice ;)
quoted hunk ↗ jump to hunk
AX_RXCOE_TCPV6 | AX_RXCOE_UDPV6;@@ -1310,6 +1318,10 @@ static int ax88179_reset(struct usbnet *dev) dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; + if (dev->can_dma_sg) { + dev->net->features |= NETIF_F_SG | NETIF_F_TSO; + dev->net->hw_features |= NETIF_F_SG | NETIF_F_TSO; + }
My concern with setting TSO on reset() is the following : Admin can disable TSO with ethtool -K ethX tso off Then, one hour later, or one month later, a reset happens, and this code magically re-enables TSO So, I really think this part should be removed from your patch.