public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox