Re: [PATCH net-next 2/4] bnxt_en: Use NETIF_F_GRO_HW.
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: 2017-12-05 18:10:55
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: 2017-12-05 18:10:55
On Mon, Dec 04, 2017 at 04:07:15PM -0800, Michael Chan wrote:
As already pointed out, GRO_HW is a subset of GRO. Packets that cannot be aggregated in hardware (due to hardware resource limitations or protocol types that it doesn't handle) can just be passed to the stack for GRO aggregation.
How would the parameters/limits work in this case? I mean, currently we have the default weight of 64 packets per napi poll cycle, the budget of 300 per cycle and also the time constrain, net.core.netdev_budget_usecs. With GRO_HW, this 64 limit may be exceeded. I'm looking at qede code and it works by couting each completion as 1 rcv_pkts (qede_fp.c:1318). So if it now gets 64 packets, it's up to 64*MTU aprox, GRO'ed or not. But with GRO_HW, seems it may be much more than that and which may not be fair with other interfaces in the system. Drivers supporting GRO_HW probably should account for this. And how can one control how much time a packet may spend on NIC queue waiting to be GRO'ed? Does it use the coalescing parameters for that? Marcelo