From: Alex Williamson <alex@shazbot.org>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: David Matlack <dmatlack@google.com>,
Vipin Sharma <vipinsh@google.com>,
Josh Hilke <jrhilke@google.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
alex@shazbot.org
Subject: Re: [PATCH v4 0/8] vfio: selftest: Add SR-IOV UAPI test
Date: Fri, 27 Feb 2026 15:19:58 -0700 [thread overview]
Message-ID: <20260227151958.4aba263e@shazbot.org> (raw)
In-Reply-To: <20260224182532.3914470-1-rananta@google.com>
On Tue, 24 Feb 2026 18:25:24 +0000
Raghavendra Rao Ananta <rananta@google.com> wrote:
> Hello,
>
> This series adds a vfio selftest, vfio_pci_sriov_uapi_test.c, to get some
> coverage on SR-IOV UAPI handling. Specifically, it includes the
> following cases that iterates over all the iommu modes:
> - Setting correct/incorrect/NULL tokens during device init.
> - Close the PF device immediately after setting the token.
> - Change/override the PF's token after device init.
>
> The test takes care of creating/setting up the VF device, and hence, it
> can be executed like any other test, simply by passing the PF's BDF to
> run.sh. For example,
>
> $ ./scripts/setup.sh 0000:16:00.1
> $ ./scripts/run.sh ./vfio_pci_sriov_uapi_test
>
> TAP version 13
> 1..45
> # Starting 45 tests from 15 test cases.
> # RUN vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.init_token_match ...
> Created 1 VF (0000:1a:00.0) under the PF: 0000:16:00.1
> # OK vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.init_token_match
> ok 1 vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.init_token_match
> # RUN vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.pf_early_close ...
> Created 1 VF (0000:1a:00.0) under the PF: 0000:16:00.1
> # OK vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.pf_early_close
> ok 2 vfio_pci_sriov_uapi_test.vfio_type1_iommu_same_uuid.pf_early_close
> [...]
> # RUN vfio_pci_sriov_uapi_test.iommufd_null_uuid.override_token ...
> Created 1 VF (0000:1a:00.0) under the PF: 0000:16:00.1
> # OK vfio_pci_sriov_uapi_test.iommufd_null_uuid.override_token
> ok 45 vfio_pci_sriov_uapi_test.iommufd_null_uuid.override_token
> # PASSED: 45 / 45 tests passed.
> # Totals: pass:45 fail:0 xfail:0 xpass:0 skip:0 error:0
>
> Thank you.
> Raghavendra
>
> v4: Suggestions by David and Alex
> - Assert that the value computed in sysfs_val_get() in an int. Rename the
> function to sysfs_val_get_int() to better reflect what the function is doing. (Alex)
> - Add the missing Signed-off-by tag in patch-7 (David).
>
> v3: Suggestions by David Matlack (thanks!)
> - Introduce a patch to add -Wall and -Werror to the vfio Makefile.
> - Use snprintf_assert() where they were missed.
> - Rename the functions as suggested in the sysfs lib and the test file.
> - Alloc the output char * buffer in the functions sysfs_driver_get() and
> sysfs_sriov_vf_bdf_get() instead of relying on the caller to pass one.
> The caller is now responsible for freeing these buffers.
> - Remove unnecessary initializations of local variables in sysfs and the
> vfio_pci_device libraries.
> - Move the inclusion of -luuid to the top level Makefile.
> - Introduce vfio_pci_device_{alloc|free}() and let the test and the functions in
> vfio_pci_device.c use this.
> - Return -errno for the ioctl failure in __vfio_device_bind_iommufd() instead of
> directly calling ioctl_assert().
> - Since the vfio-pci driver sets the 'driver_override' to the driver of PF,
> instead of clearing sriov_drivers_autoprobe and binding the VF explicitly to
> the 'vfio-pci' driver, only assert that it's already bound.
> - By extension to the above point, remove the unnecessary functions from the sysfs
> lib.
>
> v2: Suggestions by David Matlack (thank you)
> - Introduce snprintf_assert() to check against content trucation.
> - Introduce a new sysfs library to handle all the common vfio/pci sysfs
> operations.
> - Rename vfio_pci_container_get_device_fd() to
> vfio_pci_group_get_device_fd().
> - Use a fixed size 'arg' array instead of dynamic allocation in
> __vfio_pci_group_get_device_fd().
> - Exclude vfio_pci_device_init() to accept the 'vf_token' arg.
> - Move the vfio_pci_sriov_uapi_test.c global variable to the FIXTURE()
> struct or as TEST_F() local variables.
> - test_vfio_pci_container_setup() returns 'int' to indicate status.
> - Skip the test if nr_vfs != 0.
> - Explicitly set "sriov_drivers_autoprobe" for the PF.
> - Make sure to bind the VF device to the "vfio-pci" driver.
> - Cleanup the things done by FIXTURE_SETUP() in FIXTURE_TEARDOWN().
>
> v3: https://lore.kernel.org/all/20260204010057.1079647-1-rananta@google.com/
> v2: https://lore.kernel.org/all/20251210181417.3677674-1-rananta@google.com/
> v1: https://lore.kernel.org/all/20251104003536.3601931-1-rananta@google.com/
>
> Raghavendra Rao Ananta (8):
> vfio: selftests: Add -Wall and -Werror to the Makefile
> vfio: selftests: Introduce snprintf_assert()
> vfio: selftests: Introduce a sysfs lib
> vfio: selftests: Extend container/iommufd setup for passing vf_token
> vfio: selftests: Expose more vfio_pci_device functions
> vfio: selftests: Add helper to set/override a vf_token
> vfio: selftests: Add helpers to alloc/free vfio_pci_device
> vfio: selftests: Add tests to validate SR-IOV UAPI
>
> tools/testing/selftests/vfio/Makefile | 4 +
> .../selftests/vfio/lib/include/libvfio.h | 1 +
> .../vfio/lib/include/libvfio/assert.h | 5 +
> .../vfio/lib/include/libvfio/sysfs.h | 12 ++
> .../lib/include/libvfio/vfio_pci_device.h | 11 +
> tools/testing/selftests/vfio/lib/libvfio.mk | 1 +
> tools/testing/selftests/vfio/lib/sysfs.c | 141 ++++++++++++
> .../selftests/vfio/lib/vfio_pci_device.c | 156 ++++++++++----
> .../selftests/vfio/vfio_dma_mapping_test.c | 6 +-
> .../selftests/vfio/vfio_pci_device_test.c | 21 +-
> .../selftests/vfio/vfio_pci_sriov_uapi_test.c | 200 ++++++++++++++++++
> 11 files changed, 507 insertions(+), 51 deletions(-)
> create mode 100644 tools/testing/selftests/vfio/lib/include/libvfio/sysfs.h
> create mode 100644 tools/testing/selftests/vfio/lib/sysfs.c
> create mode 100644 tools/testing/selftests/vfio/vfio_pci_sriov_uapi_test.c
>
>
> base-commit: d721f52e31553a848e0e9947ca15a49c5674aef3
Please rebase:
$ git log --oneline --no-merges d721f52e31553a848e0e9947ca15a49c5674aef3..v7.0-rc1 tools/testing/selftests/vfio/a55d4bbbe644 vfio: selftests: only build tests on arm64 and x86_64
1c588bca3bd5 vfio: selftests: Drop IOMMU mapping size assertions for VFIO_TYPE1_IOMMU
080723f4d4c3 vfio: selftests: Add vfio_dma_mapping_mmio_test
557dbdf6c4e9 vfio: selftests: Align BAR mmaps for efficient IOMMU mapping
03b7c2d763c9 vfio: selftests: Centralize IOMMU mode name definitions
193120dddd1a vfio: selftests: Drop <uapi/linux/types.h> includes
e6fbd1759c9e selftests: complete kselftest include centralization
Thanks,
Alex
next prev parent reply other threads:[~2026-02-27 22:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-24 18:25 [PATCH v4 0/8] vfio: selftest: Add SR-IOV UAPI test Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 1/8] vfio: selftests: Add -Wall and -Werror to the Makefile Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 2/8] vfio: selftests: Introduce snprintf_assert() Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 3/8] vfio: selftests: Introduce a sysfs lib Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 4/8] vfio: selftests: Extend container/iommufd setup for passing vf_token Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 5/8] vfio: selftests: Expose more vfio_pci_device functions Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 6/8] vfio: selftests: Add helper to set/override a vf_token Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 7/8] vfio: selftests: Add helpers to alloc/free vfio_pci_device Raghavendra Rao Ananta
2026-02-24 18:25 ` [PATCH v4 8/8] vfio: selftests: Add tests to validate SR-IOV UAPI Raghavendra Rao Ananta
2026-02-25 17:13 ` [PATCH v4 0/8] vfio: selftest: Add SR-IOV UAPI test David Matlack
2026-02-27 22:19 ` Alex Williamson [this message]
2026-02-27 23:41 ` Raghavendra Rao Ananta
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=20260227151958.4aba263e@shazbot.org \
--to=alex@shazbot.org \
--cc=dmatlack@google.com \
--cc=jrhilke@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rananta@google.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.