Re: GRO aggregation
From: Eric Dumazet <hidden>
Date: 2012-09-13 13:22:18
On Thu, 2012-09-13 at 15:47 +0300, Or Gerlitz wrote:
Shlomo is dealing with making the IPoIB driver work well with GRO, thanks for the comments on the Mellanox Ethernet driver, we will look there too (added Yevgeny)... As for IPoIB it has two modes, connected which irrelevant for this discussion, and datagram - who is under the scope here. Its MTU is typically 2044 but can be 4092 as well, the allocation of skb's for this mode is done in ipoib_alloc_rx_skb() -- which you've patched recently... Following your comment we noted that if using the lower/typical mtu of 2044 which means we are below the ipoib_ud_need_sg() threshold, skbs are allocated on one "form" and if using the 4092 mtu in another "form" - do you see each of the form to fall into different GRO flow, e.g 2044 to the "slow" and 4092 to the "fast"?!
Seems fine to me both ways, because you use dev_alloc_skb(), and you dont pull tcp payload into tcp->head. You might try adding prefetch() as well to bring into cpu cache IP/TCP headers before they are needed in gro layers.