From: David Matlack <dmatlack@google.com>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: Alex Williamson <alex.williamson@redhat.com>,
Jason Gunthorpe <jgg@nvidia.com>, Josh Hilke <jrhilke@google.com>,
kvm@vger.kernel.org, Vipin Sharma <vipinsh@google.com>
Subject: Re: [PATCH 01/12] vfio: selftests: Split run.sh into separate scripts
Date: Mon, 10 Nov 2025 18:19:41 +0000 [thread overview]
Message-ID: <aRIsvZhxD9kPfX-J@google.com> (raw)
In-Reply-To: <CAJHc60y=rcbXixxT+dmKebQP3txcQbCDKr_tGrqVxjn9AFHuVg@mail.gmail.com>
On 2025-11-10 08:51 AM, Raghavendra Rao Ananta wrote:
> On Thu, Oct 9, 2025 at 4:56 AM David Matlack <dmatlack@google.com> wrote:
> >
> > If the future, VFIO selftests can automatically detect set up devices by
> nit: s/If/In
Ack
> > + rm -rf ${DEVICES_DIR}
> Since the cleanup.sh can potentially be run against a single device,
> we should probably check if no devices exist under ${DEVICES_DIR}
> before removing the entire dir.
Oof, good catch. Will fix in v2.
> > +function bind() {
> > + write_to /sys/bus/pci/drivers/${2}/bind ${1}
> > +}
> Since these scripts reside within the selftests/vfio/ dir, and most of
> these functions target PCI aspects, should we hardcode `vfio-pci` as
> the driver instead of passing the arg around? This is a general
> question/suggestion for the patch. We can even rename it to
> <op>_vfio_pci() (bind_vfio_pci() for example) for better clarity.
This function is also used to bind the device back to whatever driver it
was originally bound to in cleanup.sh. So "${2}" is not always
"vfio-pci".
> > +function set_sriov_numvfs() {
> > + write_to /sys/bus/pci/devices/${1}/sriov_numvfs ${2}
> > +}
> > +
> Similar to get_sriov_numvfs(), shall we check the existence of the
> 'sriov_numvfs' first? In the current workflow, we indirectly check for
> the file using get_sriov_numvfs() or look for 'sriov_numvfs' in the
> ${device_bdf}. However, an independent check would be cleaner and
> safer (for any future references). WDYT?
I don't think set_sriov_numvfs() should silently do nothing if
sriov_numvfs file does not exist. Calling set_sriov_numvfs() on a device
that does not support SR-IOV indicates a bug in the caller, so it should
fail IMO.
> > + driver=$(get_driver ${device_bdf})
> > + if [ "${driver}" ]; then
> > + unbind ${device_bdf} ${driver}
> > + echo ${driver} > ${device_dir}/driver
> Sorry, what is the purpose of writing the driver's name to the
> "driver" file? Isn't "unbind" sufficient?
So that cleanup.sh can bind the device back to this driver. The goal is
that cleanup.sh returns the device back to the state it was in before
setup.sh. i.e. cleanup.sh needs to undo everything done by setup.sh.
> > + fi
> > +
> Since vfio-pci can be built as a module that may not be loaded yet (or
> even disabled), do you think it's worth checking before binding the
> device to the driver? Of course, these operations would fail, but
> would it be better if we informed users why?
If that were to happen, I think it will be debuggable by the user.
write_to() in lib.sh always prints out what setup.sh and cleanup.sh are
trying to do. So the user will see something like:
echo BDF > /sys/bus/pci/drivers/vfio-pci/bind
Error: No such file or directory
And then the user can go investigate why /sys/bus/pci/drivers/ does not
exist. I think if we try to make the script diagnose why something
failed, that will be an endless game of whack-a-mole and the scripts
will start getting long and complex.
next prev parent reply other threads:[~2025-11-10 18:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-08 23:25 [PATCH 00/12] vfio: selftests: Support for multi-device tests David Matlack
2025-10-08 23:25 ` [PATCH 01/12] vfio: selftests: Split run.sh into separate scripts David Matlack
2025-11-10 3:21 ` Raghavendra Rao Ananta
2025-11-10 18:19 ` David Matlack [this message]
2025-10-08 23:25 ` [PATCH 02/12] vfio: selftests: Allow passing multiple BDFs on the command line David Matlack
2025-11-10 3:45 ` Raghavendra Rao Ananta
2025-11-10 18:31 ` David Matlack
2025-10-08 23:25 ` [PATCH 03/12] vfio: selftests: Rename struct vfio_iommu_mode to iommu_mode David Matlack
2025-10-08 23:25 ` [PATCH 04/12] vfio: selftests: Introduce struct iommu David Matlack
2025-10-08 23:25 ` [PATCH 05/12] vfio: selftests: Support multiple devices in the same container/iommufd David Matlack
2025-10-27 16:21 ` David Matlack
2025-11-07 3:37 ` Josh Hilke
2025-10-08 23:25 ` [PATCH 06/12] vfio: selftests: Eliminate overly chatty logging David Matlack
2025-10-08 23:25 ` [PATCH 07/12] vfio: selftests: Prefix logs with device BDF where relevant David Matlack
2025-11-10 4:54 ` Raghavendra Rao Ananta
2025-11-10 18:28 ` David Matlack
2025-10-08 23:25 ` [PATCH 08/12] vfio: selftests: Rename struct vfio_dma_region to dma_region David Matlack
2025-10-08 23:25 ` [PATCH 09/12] vfio: selftests: Move iommu_*() functions into iommu.c David Matlack
2025-10-08 23:25 ` [PATCH 10/12] vfio: selftests: Rename vfio_util.h to libvfio.h David Matlack
2025-10-08 23:25 ` [PATCH 11/12] vfio: selftests: Split libvfio.h into separate header files David Matlack
2025-10-08 23:25 ` [PATCH 12/12] vfio: selftests: Add vfio_pci_device_init_perf_test David Matlack
2025-10-16 16:12 ` David Matlack
2025-11-05 19:06 ` [PATCH 00/12] vfio: selftests: Support for multi-device tests Alex Williamson
2025-11-05 21:03 ` David Matlack
2025-11-05 21:54 ` Alex Williamson
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=aRIsvZhxD9kPfX-J@google.com \
--to=dmatlack@google.com \
--cc=alex.williamson@redhat.com \
--cc=jgg@nvidia.com \
--cc=jrhilke@google.com \
--cc=kvm@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