Index | Thread | Search

From:
Yuichiro NAITO <naito.yuichiro@gmail.com>
Subject:
Re: iavf: multiple bugfixes and support for Intel 800 series
To:
Carsten Beckmann <carsten_beckmann@genua.de>, "tech@openbsd.org" <tech@openbsd.org>
Date:
Thu, 15 Oct 2026 15:11:20 +0900

Download raw body.

Thread
Hello,

On 10/7/26 23:10, Carsten Beckmann wrote:
> Hi,
> 
> I recently tried using iavf(4) in an OpenBSD VM with an Intel E810-C on
> the host. This did not work at all though. iavf(4) went into a quick
> reset loop after attach and then just died. While debugging this I
> noticed a few other issues which in the end lead to this series of
> patches.
> 
> The first 6 patches are all bugfixes and affect the current iavf(4) even
> with NICs of the Intel 700 series on the host. I did use an Intel XXV710
> to debug and verify the fixes.
> 
> The last 2 patches are then required to make iavf(4) work with an Intel
> E810-C on the host. I believe that it should also work with other
> variants of the 800 series now, but I did not have them available to
> test it.
> 
> I did not want to spam the list with 8 patches without any prior
> discussion, so for now all of them follow inline. I'll also attach them
> individually in case this makes reviewing easier. Let me know if you
> would prefer me to send each patch individually to the list though.

I don't have an E810 card. I tested your patches with my X710 VFs
on ESXi 8.0. They work nicely for me. The iperf3 performance tests
show about 10 Gbps for both transmit and receive. The results are
shown below. The iperf3 server is running on the virtual machine
that has iavf(4) interfaces. So, when the iperf3 client sends packets,
OpenBSD receives the packets, and vice versa.

* dmesg

iavf0 at pci3 dev 0 function 0 "Intel XL710/X710 VF" rev 0x01, VF version 1.1, VF 0 VSI 9, msix, 4 queues, address 00:0c:29:a2:be:06
iavf1 at pci11 dev 0 function 0 "Intel XL710/X710 VF" rev 0x01, VF version 1.1, VF 0 VSI 20, msix, 4 queues, address 00:0c:29:a2:be:07

* receive 1 TCP stream

%iperf3 -c 192.168.100.1
Connecting to host 192.168.100.1, port 5201
(Snip)
[ ID] Interval           Transfer     Bitrate         Retr
[  4]   0.00-10.06  sec  9.89 GBytes  8.44 Gbits/sec  2905            sender
[  4]   0.00-10.06  sec  9.89 GBytes  8.44 Gbits/sec                  receiver

* receive 4 TCP streams

% iperf3 -c 192.168.100.1 -P 4
Connecting to host 192.168.100.1, port 5201
(Snip)
[ ID] Interval           Transfer     Bitrate         Retr
[  4]   0.00-10.00  sec  3.96 GBytes  3.40 Gbits/sec    0            sender
[  4]   0.00-10.01  sec  3.96 GBytes  3.40 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  2.18 GBytes  1.88 Gbits/sec  1623            sender
[  6]   0.00-10.01  sec  2.18 GBytes  1.87 Gbits/sec                  receiver
[  8]   0.00-10.00  sec  3.00 GBytes  2.58 Gbits/sec    0            sender
[  8]   0.00-10.01  sec  3.00 GBytes  2.57 Gbits/sec                  receiver
[ 10]   0.00-10.00  sec  1.78 GBytes  1.53 Gbits/sec    0            sender
[ 10]   0.00-10.01  sec  1.78 GBytes  1.53 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  10.9 GBytes  9.39 Gbits/sec  1623             sender
[SUM]   0.00-10.01  sec  10.9 GBytes  9.38 Gbits/sec                  receiver

* Transmit 1 TCP stream

% iperf3 -c 192.168.100.1 -R
Connecting to host 192.168.100.1, port 5201
(Snip)
[ ID] Interval           Transfer     Bitrate         Retr
[  4]   0.00-10.04  sec  11.0 GBytes  9.40 Gbits/sec    0            sender
[  4]   0.00-10.04  sec  11.0 GBytes  9.40 Gbits/sec                  receiver

* Transmit 4 TCP streams

% iperf3 -c 192.168.100.1 -P 4 -R
Connecting to host 192.168.100.1, port 5201
(Snip)
[ ID] Interval           Transfer     Bitrate         Retr
[  4]   0.00-10.00  sec  3.65 GBytes  3.14 Gbits/sec    0            sender
[  4]   0.00-10.00  sec  3.65 GBytes  3.14 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec    0            sender
[  6]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec                  receiver
[  8]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec    0            sender
[  8]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec                  receiver
[ 10]   0.00-10.00  sec  3.65 GBytes  3.14 Gbits/sec    0            sender
[ 10]   0.00-10.00  sec  3.65 GBytes  3.14 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  11.0 GBytes  9.42 Gbits/sec    0             sender
[SUM]   0.00-10.00  sec  11.0 GBytes  9.41 Gbits/sec                  receiver

-- 
Yuichiro NAITO (naito.yuichro@gmail.com)