On Thu, 2013-08-01 at 16:10 +0800, Ming Lei wrote: > On Thu, Aug 1, 2013 at 1:04 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > > On Thu, 2013-08-01 at 12:41 +0800, Ming Lei wrote: > > > >> From my trace result, lots of linear SKBs are cloned or header-cloned, so > >> it needs skb copy too. > >> > >> Is it normal in xmit path to see cloned SKBs for driver? If not, I can add check > >> to avoid allocation of 8 bytes header for non-cloned skb. > > > > Existing code is not very friendly and very complex. > > > > Sure TCP stack does a clone for every skb from socket write queue, > > but header should be available for pushing 8 bytes. > > > > The !skb_cloned(skb) test should be removed if the memmove() is not > > needed. > > > > Could you try following patch ? > > Tested-by: Ming Lei <ming.lei@xxxxxxxxxxxxx> > > This patch does work, and it will make the patch 4/4 become very > simple, :-) > > I will rewrite this one against your patch. OK I'll post an official patch then. I presume you got performance increase, since we no longer do a copy of the TCP packets. -- 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