Linux Kernel Selftest development
 help / color / mirror / Atom feed
From: Alex Williamson <alex@shazbot.org>
To: Josh Hilke <jrhilke@google.com>
Cc: David Matlack <dmatlack@google.com>,
	Shuah Khan <shuah@kernel.org>,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	Vipin Sharma <vipinsh@google.com>,
	Alex Williamson <alex.williamson@nvidia.com>,
	alex@shazbot.org
Subject: Re: [PATCH v10 0/3] vfio: selftests: Add driver for Intel Ethernet Gigabit Controller (IGB)
Date: Wed, 5 Aug 2026 09:46:21 -0600	[thread overview]
Message-ID: <20260805094621.665d5ec0@shazbot.org> (raw)
In-Reply-To: <20260805-igb_v3_b4-v10-0-9c86dc849c0d@google.com>

On Wed, 05 Aug 2026 00:20:57 +0000
Josh Hilke <jrhilke@google.com> wrote:

> This v10 of a series which adds a VFIO selftest driver for the Intel
> Gigabit Ethernet controller (IGB), specifically targeting the 82576
> device. IGB is fully virtualized in QEMU, making it suitable for running
> VFIO selftests without specialized hardware.

LGTM, passes on physical NIC.  Thanks for the re-spins.

David, do you want to double check and provide an Ack?  Thanks,

Alex

 
> v9: https://lore.kernel.org/kvm/20260730-igb_v3_b4-v9-0-9e4d8682437e@google.com/
> 
> Version 10 adds an assert in the IGB driver to prevent DMA transfers
> smaller than 60 bytes, avoiding out-of-bounds DMA writes caused by
> hardware padding on short transfers, and squashes the recovery logic
> (previously Patch 5) into the main driver patch to keep the driver
> self-contained. Also add some logic from Alex to correct the ordering of
> Tx/Rx queue setup.
> 
> This series applies on top of linux-next, but the VFIO selftests don't
> build without this patch which fixes a compile error for the test
> fixture:
> https://lore.kernel.org/linux-kselftest/20260630213341.1664345-1-dmatlack@google.com/
> 
> Testing
> =======
> - VFIO selftests builds clean at every commit
> - vfio_pci_driver_test passes using IGB driver + QEMU. Use the following
>   command to run the tests:
> 
>   vng \
>   --run arch/x86/boot/bzImage \
>   --user root \
>   --disable-microvm \
>   --memory 32G \
>   --cpus 8 \
>   --qemu-opts="-M q35,accel=kvm,kernel-irqchip=split" \
>   --qemu-opts="-device intel-iommu,intremap=on,caching-mode=on,device-iotlb=on" \
>   --qemu-opts="-netdev user,id=net0 -device igb,netdev=net0,addr=09.0" \
>   --append "console=ttyS0 earlyprintk=ttyS0 intel_iommu=on iommu=pt" \
>   --exec "modprobe vfio-pci && \
>           ./tools/testing/selftests/vfio/scripts/setup.sh 0000:00:09.0 && \
>           ./tools/testing/selftests/vfio/scripts/run.sh ./tools/testing/selftests/vfio/vfio_pci_driver_test"
> --------
> Changelog:
> 
> v9 -> v10:
> - Add assert in IGB driver to prevent DMA transfers < 60 bytes (Ethernet
>   minimum payload size) to avoid memory corruption from hardware padding. (Sashiko)
> - Squash recovery logic into the main driver patch to make the driver self-contained. 
> - Set per-queue enable bits _after_ enabling global queue bits (Alex)
> 
> v8 -> v9:
> - Enable Pad Short Packets (PSP) in TCTL to support transfers < 60 bytes. (Sashiko)
> - Correct misleading comment about interrupt delivery in Patch 1. (Sashiko)
> 
> v7 -> v8:
> - Rebase onto linux-next branch. (Alex)
> - Implement retry limit in vfio_pci_device_reset(). (Alex)
> - Carry David's reviewed-by tag onto the patches that haven't been
>   touched since v6.
> 
> v6 -> v7:
> - Allow the driver to be used on any architecture. (Alex) 
> - Fix regression in reset logic for the physical device. (Alex)
> 
> v5 -> v6:
> - Retry on EAGAIN during device reset to handle transient lock contention (Sashiko).
> 
> v4 -> v5:
> - Reordered igb_remove() to reset the device before disabling MSI-X (Sashiko)
> - Refactored hardware reset logic into igb_reset() helper.
> - Simplified reset completion check to usleep + assertion instead of retry loop (Sashiko).
> - Allow arbitrary test data by enabling Multicast Promiscuous (MPE)
>   and Broadcast Accept (BAM) modes (Sashiko).
> - Fixed igb_send_msi() to use MSIX_VECTOR_MASK instead of magic number (Sashiko).
> 
> v3 -> v4
> - Enable MSI-X mode in GPIE (Sashiko)
> - Fix hardware initilization order to avoid race conditions (Alex/Sashiko)
> - Add memory barrier to prevent speculative reads (Alex/Sashiko)
> - Clean up stale references in commit messages and comments (Alex/Sashiko)
> - Add a comment to address software/firmware semaphore (Alex/Sashiko)
> 
> v2 -> v3
> - Poll reset bit and document the required wait time (David/Sashiko)
> - Fix the logic for enabling PCI_COMMAND_MEMORY (David/Sashiko)
> - Fail the test if autonegotation fails (David/Sashiko)
> - Handle endianness conversions (David/Sashiko)
> - Use real IGB headers at the start of the series (David)
> - Add E1000_TXD_CMD_IFCS to the TX descriptor command word (Sashiko)
> 
> v1 -> v2
> - Removed the chunking loop in igb_memcpy_start() (David)
> - Removed redundant writes to status_error and hdr_addr (David)
> - Include official IGB header files (David)
> 
> Signed-off-by: Josh Hilke <jrhilke@google.com>
> ---
> Alex Williamson (1):
>       vfio: selftests: Add helpers to re-enable interrupts
> 
> Josh Hilke (2):
>       vfio: selftests: igb: Add driver for Intel 82576 device
>       vfio: selftests: Retry on EAGAIN during device reset
> 
>  .../selftests/vfio/lib/drivers/igb/e1000_82575.h   |   1 +
>  .../selftests/vfio/lib/drivers/igb/e1000_defines.h |   1 +
>  .../selftests/vfio/lib/drivers/igb/e1000_regs.h    |   1 +
>  tools/testing/selftests/vfio/lib/drivers/igb/igb.c | 585 +++++++++++++++++++++
>  .../vfio/lib/include/libvfio/vfio_pci_device.h     |  15 +
>  tools/testing/selftests/vfio/lib/libvfio.mk        |   1 +
>  tools/testing/selftests/vfio/lib/vfio_pci_device.c |  42 +-
>  tools/testing/selftests/vfio/lib/vfio_pci_driver.c |   3 +-
>  8 files changed, 647 insertions(+), 2 deletions(-)
> ---
> base-commit: 0f6da28aab51b16762ed82e8fdeaa5042da45b08
> change-id: 20260707-igb_v3_b4-49194c14373c
> 
> Best regards,


      parent reply	other threads:[~2026-08-05 15:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-05  0:20 [PATCH v10 0/3] vfio: selftests: Add driver for Intel Ethernet Gigabit Controller (IGB) Josh Hilke
2026-08-05  0:20 ` [PATCH v10 1/3] vfio: selftests: Add helpers to re-enable interrupts Josh Hilke
2026-08-05  0:20 ` [PATCH v10 2/3] vfio: selftests: igb: Add driver for Intel 82576 device Josh Hilke
2026-08-05  0:21 ` [PATCH v10 3/3] vfio: selftests: Retry on EAGAIN during device reset Josh Hilke
2026-08-05 15:46 ` Alex Williamson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260805094621.665d5ec0@shazbot.org \
    --to=alex@shazbot.org \
    --cc=alex.williamson@nvidia.com \
    --cc=dmatlack@google.com \
    --cc=jrhilke@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=shuah@kernel.org \
    --cc=vipinsh@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox