Re: GRO support in the bridge
From: Stephen Hemminger <hidden>
Date: 2011-08-10 15:08:52
On Wed, 10 Aug 2011 05:29:15 -0700 (PDT) Sedat Cakir [off-list ref] wrote:
Hi, I am trying to understand why GRO is NOT enabled on the bridge. Is there a special reason for it? Reading the code in net/core/dev.c:2817 (__netif_receieve_skb) which is what I think the bridge is calling because that is what is passed in at br_input.c:br_pass_frame_up():24. I am wondering if this can be modified to use one of the _gro_ receive functions and if so if that will positively impact performance? Do you have any idea? Appreciate your help.Thanks, Sedat
The reason is that GRO is related to NAPI. GRO works by coalescing frames received in one NAPI interval of work. The bridge itself has no receive irq or NAPI and is upcalled from the device receive handler. There is no expectation or requirement that devices in a bridge use NAPI. Therefore it is not possible or safe for bridge pseudo-device to use GRO.