On Mon, Feb 24, 2025 at 12:48:30PM -0800, Jakub Kicinski wrote: > With msec-long deferrals we'll flush due to jiffies change. At least > that explains a bit. Could you maybe try lower timeouts than 1msec? > Previously we'd just keep partially-completed packets in GRO for up > to 1msec, now we'll delay all packet processing for 1msec, that's a lot. Results again with each test run 1000 times: gro_flush_timeout=50us napi_defer_hard_irqs=1 --> failed to GRO 0 times gro_flush_timeout=100us napi_defer_hard_irqs=1 --> failed to GRO 0 times gro_flush_timeout=50us napi_defer_hard_irqs=0 --> failed to GRO 36 times gro_flush_timeout=100us napi_defer_hard_irqs=0 --> failed to GRO 46 times 100us with 1 defer seems to work fine and is well below the duration of a jiffy. So we'll usually be testing the "default" GRO path and only occasionally the jiffy-update path. I'll make these the numbers in the revised patch unless someone thinks otherwise.