From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of Jim Baxter > Sent: 16 May 2017 18:41 > > The CDC-NCM driver can require large amounts of memory to create > skb's and this can be a problem when the memory becomes fragmented. > > This especially affects embedded systems that have constrained > resources but wish to maximise the throughput of CDC-NCM with 16KiB > NTB's. Why is this driver copying multiple tx messages into a single skb. Surely there are better ways to do this?? I think it is generating a 'multi-ethernet frame' URB with an overall header for each URB and a header for each ethernet frame. Given that the USB stack allows multiple concurrent transmits I'm surprised that batching large ethernet frames makes much difference. Also the USB target can't actually tell when URB that contain multiples of the USB packet size end. So it is possible to send a single NTB as multiple URB. Of course, the usb_net might have other ideas. David -- 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