Re: [PATCH v10 0/3] vfio: selftests: Add driver for Intel Ethernet Gigabit Controller (IGB)
From: Alex Williamson
Date: Mon Aug 10 2026 - 19:42:30 EST
On Wed, 05 Aug 2026 00:20:57 +0000
Josh Hilke <jrhilke@xxxxxxxxxx> 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.
>
> v9: https://lore.kernel.org/kvm/20260730-igb_v3_b4-v9-0-9e4d8682437e@xxxxxxxxxx/
>
> 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@xxxxxxxxxx/
>
> 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)
Applied to vfio next branch for v7.3. Thanks,
Alex