On Tue, Aug 6, 2013 at 8:22 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > 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 ;) > >> 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 The reset only happens during open(), and TSO can't be re-enabled magically, unless the interface is re-opened by Admin. > > So, I really think this part should be removed from your patch. OK, will remove it. Thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html