In my application this is a bridge or router (not TCP endpoint), and the driver is doing GRO and NAPI polling. Also looking at using the skb->fraglist to make the GRO code more effective and more transparent by passing flags, short segments, etc through for perfect reconstruction by TSO. Simon > On Dec 12, 2019, at 5:46 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > > > > On 12/12/19 4:59 PM, Simon Barber wrote: >> I’m currently adding ACK thinning to Linux’s GRO code. Quite a simple addition given the way that code works. >> >> Simon >> >> > > Please don't. > > 1) It will not help since many NIC do not use GRO. > > 2) This does not help if you receive one ACK per NIC interrupt, which is quite common. > > 3) This breaks GRO transparency. > > 4) TCP can implement this in a more effective/controlled way, > since the peer know a lot more flow characteristics. > > Middle-box should not try to make TCP better, they usually break things.