Download raw body.
iavf(4): multi-queue support
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.
iavf(4): multi-queue support