XDP Tx ring disable timeout when loader is stopped
Opened this issue · 3 comments
Hello, I've discovered in /var/log/syslog
that when the loader program is stopped, there is a disable timeout
, and then the i40e driver enters allmulti
mode:
Apr 26 15:26:55 SRV-PVE-2 kernel: [895028.655165] i40e 0000:01:00.0: VSI seid 404 XDP Tx ring 33 disable timeout
Apr 26 15:26:57 SRV-PVE-2 kernel: [895030.595925] i40e 0000:01:00.0: entering allmulti mode.
I'm using the same loader code as in this example. I have a few maps in my BPF program:
- 3x
PerfMap
with 1024max_entries
- 2x
HashMap
with 1max_entries
- 1x
PerCpuHashMap
with 1_000_000max_entries
I suspect the last one caused the issue - it's used as a rate limit for each saddr
as a key, and a counter as the value.
Hi @QuiiBz, do you have suggestions for reproducing this issue?
As I understand it, i40e
is a driver for Intel's NIC, right? I don't have a hands-on access to this kind of hardware but it'd be very helpful if it can be emulated somehow.
Yes, i40e
is a driver for the following controllers:
- Intel® Ethernet Controller X710
- Intel® Ethernet Controller XL710
- Intel® Ethernet Network Connection X722
- Intel® Ethernet Controller XXV710
- Intel® Ethernet Controller V710
Sadly, I didn't found a way to emulate it.
I think allmulti
mode is quite universal. If you can provide us with a complete, minimal example, I could try this on a KVM box and see if it gets triggered, then we can go from there.