Subject: Re: Misuse of LRO, how widespread

From: Dimitris Michailidis <[email-masked]>
Date: Mon, 06 Dec 2010 15:36:38 -0800

Ben Hutchings wrote:
> On Mon, 2010-12-06 at 15:05 -0800, Dimitris Michailidis wrote:
>> Stephen Hemminger wrote:
>>> On Mon, 06 Dec 2010 13:15:42 -0800
>>> Dimitris Michailidis <[email-masked]> wrote:
>>>
>>>> Stephen Hemminger wrote:
>>>>> I inspected all drivers in net-next to see which drivers are using
>>>>> LRO and which ones are broken. Most concerning is that Chelsio
>>>>> and Solarflare drivers ignore ETH_FLAG_LRO.
>>>>>
>>>>> The ones that are using LRO but allow disabling it:
>>>>>   qlcnic, netxen, mv643, s2io, myi10ge, bnx2x, ixgbe, vmxnet3
>>>>>
>>>>> One driver seems confused about LRO vs GRO:
>>>>>   mlx4 - comments about LRO and depends on LRO but driver is using GRO
>>>>>
>>>>> Drivers with not using ethtool interface to disable LRO:
>>>>>   pasemi_mac, sfc, ehea, cxgb3, cxgb4
>>>> cxgb4 uses GRO, not LRO.
>>> Ok. but cxgb3 still uses LRO (or it least calls it lro).
>>>
>> cxgb3 was the driver Herbert implemented GRO on I think, and he converted it 
>> to GRO.  It possibly has leftover LRO references as it was using LRO before.
> 
> There's a fair amount of code setting LRO flags in various structures,
> so either the driver still enables LRO in hardware/firmware or this is
> dead code.

 From a quick look it appears to have a per queue lro flag.  HW/FW are not 
aware of LRO, whatever flags that driver has are for SW.  I'd say it's 
obsolete but probably not dead code.

> Ben.