Index | Thread | Search

From:
Jonathan Matthew <jonathan@d14n.org>
Subject:
Re: iavf(4): multi-queue support
To:
YASUOKA Masahiko <yasuoka@openbsd.org>
Cc:
jan@openbsd.org, naito.yuichiro@gmail.com, tech@openbsd.org
Date:
Tue, 26 Nov 2024 20:39:57 +1000

Download raw body.

Thread
On Tue, Nov 26, 2024 at 06:09:41PM +0900, YASUOKA Masahiko wrote:
> Hello,
> 
> On Fri, 22 Nov 2024 16:48:40 +0100
> Jan Klemkow <jan@openbsd.org> wrote:
> > On Fri, Nov 22, 2024 at 04:57:32PM GMT, Yuichiro NAITO wrote:
> >> From: Jan Klemkow <j.klemkow@wemelug.de>
> >> Subject: Re: iavf(4): multi-queue support
> >> Date: Thu, 21 Nov 2024 10:44:40 +0100
> >> 
> >> > On Thu, Nov 21, 2024 at 10:31:02AM GMT, Yuichiro NAITO wrote:
> >> >> From: Yuichiro NAITO <naito.yuichiro@gmail.com>
> >> >> Subject: Re: iavf(4): multi-queue support
> >> >> Date: Wed, 04 Sep 2024 17:22:21 +0900 (JST)
> >> >> 
> >> >> > Hi. Suppose you are interested in iavf(4) multi-queue. Try the following
> >> >> > complete patch which enables multi-queue, checksum offloads, and TSO.
> >> >> > I confirmed it works on my ESXi 8.0 and Linux qemu/kvm. Iperf3 results in
> >> >> > 9.41 Gbps transmit speed and 6.87 Gbps receive speed of my OpenBSD guest
> >> >> > with MTU size 1500 on ESXi 8.0.
> >> >> 
> >> >> Hi, I had some reports that my patch doesn't work on ESXi while attaching
> >> >> an iavf device. The reporter said the following error messages are shown
> >> >> in the dmesg.
> >> >> 
> >> >> ```
> >> >> iavf0: SET_RSS_HENA failed: -1
> >> >> iavf0: queue op 9 failed: -1
> >> >> ```
> >> >> 
> >> >> Both errors had an error code '-1', meaning the response from the PF driver
> >> >> timed out. The `SET_RSS_HENA` request sends a packet classifier value for
> >> >> the RSS hash filter which currently sends 0. Some PF driver version of ESXi
> >> >> ignores the 0 value. So, I added the default value referring to the NetBSD
> >> >> driver. The value definition is the same as the ixl(4). I split the
> >> >> definitions to the 'if_iavfvars.h' file to share the code.
> >> >> 
> >> >> The `queue op 9 failed` message happened in the 'iavf_queue_select' function.
> >> >> This seems really timed out. I extended the time-out value to 3000 ms. This
> >> >> value is also taken from NetBSD.
> >> >> 
> >> >> I merged my code that handles a PCI bus error case in my previous mail.
> >> >> 
> >> >> https://marc.info/?l=openbsd-tech&m=172723210819245&w=2
> >> >> 
> >> >> I also merged Jan's code that has VLAN #ifdef. The checksum offload code is
> >> >> the same as Jan's. If you see the diff from Jan's code, you will see my code
> >> >> only.
> >> >> 
> >> >> https://marc.info/?l=openbsd-tech&m=173040636900369&w=2
> >> >> 
> >> >> OK?
> >> > 
> >> > I tested your diff on my KVM setup.  Works for me there.  I had no time
> >> > for ESXi tests yet.
> >> > 
> >> > Could you split your diff in checksum offload, TSO and Multi-Queue.
> >> > Thus, its easier to review and to see where the problems are.
> >> 
> >> Sure. I split my patch into the following 4 patches.
> >> 
> >> 1. check-sum offloading
> >> 2. TSO support
> >> 3. Multi-queue support
> >> 4. PCI bus error handling
> >> 
> >> Please apply by this order.
> >> 
> >> Here is the check-sum offloading patch, originally you wrote it.
> >> I changed the 'ixl_rx_checksum' function name to 'iavf_rx_checksum'.
> >> It looks like a simple mistake. No functional change is intended.
> > 
> > I reviewed and tested the checksum your checksum diff below.
> > 
> > ok jan@
> 
> Naito doesn't have an account on cvs.  The first diff seems correct
> for me too.  I'll commit it later.

Thanks.  The first diff has my ok as well.