From: David Matlack <dmatlack@google.com>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: Alex Williamson <alex@shazbot.org>,
Vipin Sharma <vipinsh@google.com>,
Josh Hilke <jrhilke@google.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 8/8] vfio: selftests: Add tests to validate SR-IOV UAPI
Date: Mon, 6 Apr 2026 22:24:05 +0000 [thread overview]
Message-ID: <adQyhegJdEWuUIi4@google.com> (raw)
In-Reply-To: <20260402173059.1018805-9-rananta@google.com>
On 2026-04-02 05:30 PM, Raghavendra Rao Ananta wrote:
> +/* clang-format off */
> +FIXTURE(vfio_pci_sriov_uapi_test) {};
> +/* clang-format on */
> +
> +FIXTURE_SETUP(vfio_pci_sriov_uapi_test)
> +{
> +}
> +
> +FIXTURE_TEARDOWN(vfio_pci_sriov_uapi_test)
> +{
> +}
Please do iommu_init() iommu_cleanup() here to reduce code duplication
and as an added bonus you can drop the clang-format comments above.
> +static void vf_teardown(void)
> +{
> + /* Destroy the VF only when the main/parent process exits. */
> + if (getpid() != main_pid)
> + return;
Is this because the child processes created by test_harness_run() to run
the TEST_F()s inherit the atexit() call? If so please clarify that in
the comment in more detail.
> +
> + free(vf_bdf);
> + sysfs_sriov_numvfs_set(pf_bdf, 0);
> +}
> +
> +static void vf_setup(void)
> +{
> + char *vf_driver;
> + int nr_vfs;
> +
> + nr_vfs = sysfs_sriov_totalvfs_get(pf_bdf);
> + if (nr_vfs <= 0)
> + ksft_exit_skip("SR-IOV may not be supported by the PF: %s\n", pf_bdf);
> +
> + nr_vfs = sysfs_sriov_numvfs_get(pf_bdf);
> + if (nr_vfs != 0)
> + ksft_exit_skip("SR-IOV already configured for the PF: %s\n", pf_bdf);
> +
> + /* Create only one VF for testing */
> + sysfs_sriov_numvfs_set(pf_bdf, 1);
> +
> + /*
> + * Setup an exit handler to destroy the VF in case of failures
> + * during further setup at the end of the test run.
> + */
> + main_pid = getpid();
> + VFIO_ASSERT_EQ(atexit(vf_teardown), 0);
> +
> + vf_bdf = sysfs_sriov_vf_bdf_get(pf_bdf, 0);
> +
> + /*
> + * The VF inherits the driver from the PF.
> + * Ensure this is 'vfio-pci' before proceeding.
> + */
> + vf_driver = sysfs_driver_get(vf_bdf);
> + VFIO_ASSERT_NE(vf_driver, NULL);
> + VFIO_ASSERT_EQ(strcmp(vf_driver, "vfio-pci"), 0);
> + free(vf_driver);
> +
> + printf("Created 1 VF (%s) under the PF: %s\n", vf_bdf, pf_bdf);
Do we actually need atexit()? This code can go into main and we can do
the VF cleanup before returning from main after test_harness_run()
returns. I don't think you even need to check the VF driver. If the VF
is not bound to vfio-pci then that will be caught by the test cases when
they call device_init(vf_bdf, ...).
That would make the logic more straightforward and get rid of the
main_pid stuff too.
next prev parent reply other threads:[~2026-04-06 22:24 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 17:30 [PATCH v7 0/8] vfio: selftest: Add SR-IOV UAPI test Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 1/8] vfio: selftests: Add -Wall and -Werror to the Makefile Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 2/8] vfio: selftests: Introduce snprintf_assert() Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 3/8] vfio: selftests: Introduce a sysfs lib Raghavendra Rao Ananta
2026-04-06 21:12 ` Alex Williamson
2026-04-07 22:46 ` Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 4/8] vfio: selftests: Extend container/iommufd setup for passing vf_token Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 5/8] vfio: selftests: Expose more vfio_pci_device functions Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 6/8] vfio: selftests: Add helper to set/override a vf_token Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 7/8] vfio: selftests: Add helpers to alloc/free vfio_pci_device Raghavendra Rao Ananta
2026-04-02 17:30 ` [PATCH v7 8/8] vfio: selftests: Add tests to validate SR-IOV UAPI Raghavendra Rao Ananta
2026-04-06 22:24 ` David Matlack [this message]
2026-04-07 20:51 ` Raghavendra Rao Ananta
2026-04-07 21:01 ` David Matlack
2026-04-13 18:11 ` Vipin Sharma
2026-04-13 18:08 ` Vipin Sharma
2026-05-04 17:51 ` Raghavendra Rao Ananta
2026-05-05 18:52 ` Vipin Sharma
2026-05-05 20:49 ` Raghavendra Rao Ananta
2026-05-05 21:01 ` Vipin Sharma
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=adQyhegJdEWuUIi4@google.com \
--to=dmatlack@google.com \
--cc=alex@shazbot.org \
--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.