Re: AF_XDP busy poll receives packets in batches of 8 on i40e

Federico Parola <[email protected]>
Newsgroups org.kernel.vger.xdp-newbies
Message-ID <[email protected]>
On 18/03/22 00:26, Jay Vosburgh wrote:
> Jesse Brandeburg <[email protected]> wrote:
> 
>> On 3/17/2022 8:34 AM, Federico Parola wrote:
>>>>      We observed similar "batching" behavior on i40e devices late
>>>> last year in ordinary use (not XDP, but using SR-IOV VFs).  We
>>>> instrumented the drivers at the send and receive sides, and determined
>>>> that it appeared to be a behavior of the receiving device itself, i.e.,
>>>> packets 1 - 7 would be held indefinitely (as I recall, no interrupt or
>>>> update of the RX ring pointers) until packet 8 arrives, at which point
>>>> all 8 were delivered simultaneously.
>>>>
>>>>      The issue was evidently in the firmware, and was resolved after
>>>> a firmware upgrade.
>>> Hi Jay,
>>> I just updated the firmware to the latest version (v8.50 from v8.30) but
>>> unfortunately the problem is still there.
>>> However I'm experiencing the problem only when using AF_XDP in busy poll
>>> mode, all other modes (standard AF_XDP and normal packet reception) work
>>> just fine.
>>> Maybe the two problems are correlated in some way.
>>
>> This sounds related to the WB_ON_ITR feature in our hardware. If
>> interrupts are disabled the driver needs to set that bit (and an ITR
>> value) so that packets get written back in a timely manner and don't just
>> wait for a cache line edge (I bet your Cache Line Size value in PCIe space
>> (lspci) is set to 128?)
> 
> 	FWIW, in the case we had, driver changes (5.14 upstream, the
> then-current Intel out of tree driver) didn't change the behavior.  The
> PCI Cache Line Size was 64 bytes; the device was
> 
> 13:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
>          Subsystem: Hewlett-Packard Company Ethernet 10Gb 2-port 562SFP+ Adapter
> 
> 	From an lspci -vvv perspective, failing and non-failing cards
> differed only in the serial numbers.
> 

I tested it on 3 different XL710 NICs, all updated to the latest 8.50 
firmware, and they all present the same 8 packets "batching" behavior.
How do I check the PCI Cache Line Size (I didn't find such entry in 
lspci -vvv)? Normal cache line size is 64B on my system, but I guess 
they are two different things.

>> Maybe something to chase there? We may also be able to look into it if it
>> wasn't fixed already upstream.
> 
> 	-J
> 
> ---
> 	-Jay Vosburgh, [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.