Thread (24 messages) flat view 24 messages, 6 authors, 2012-09-13

Re: GRO aggregation

From: Eric Dumazet <hidden>
Date: 2012-09-13 08:11:12

On Thu, 2012-09-13 at 09:36 +0300, Shlomo Pongartz wrote:
The thing is that napi_complete calls napi_gro_flush so this pose a 
limit on the aggregation.
However when I count the number of packets received until this routine 
is been called, I get a number,
which is bigger then what I see with tcpdump, and this number is less 
than what is expected if the limit is 64K.
So I what to know what can I do in order to improve things, e.g. 
allocate the skb differently.
I already answered to this question somehow.

MAX_SKB_FRAGS is 16

skb_gro_receive() will return -E2BIG once this limit is hit.

If you use a MSS = 100 (instead of MSS = 1460), then GRO skb will
contain only at most 1700 bytes, but TSO packets can still be 64KB, if
the sender NIC can afford it (some NICS wont work quite well)

We are not going to change skb allocations to get bigger GRO packets,
for several reasons.

Once of the reason is inherent to TCP protocol, because only one ACK is
sent in response to a GRO packet.

In your LAN, feel free to use bigger MTU to reach this 64KB magical
value you seem to desperately seek.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help