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. 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