From: Eric Dumazet > Sent: 13 January 2021 16:18 > > From: Eric Dumazet <eduma...@google.com> > > Both virtio net and napi_get_frags() allocate skbs > with a very small skb->head > > While using page fragments instead of a kmalloc backed skb->head might give > a small performance improvement in some cases, there is a huge risk of > under estimating memory usage.
There is (or was last time I looked) also a problem with some of the USB ethernet drivers. IIRC one of the ASXnnnnnn (???) USB3 ones allocates 64k skb to pass to the USB stack and then just lies about skb->truesize when passing them into the network stack. The USB hardware will merge TCP receives and put multiple ethernet packets into a single USB message. But single frames can end up in very big kernel memory buffers. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)