From: Gerd Bayer <gbayer@linux.ibm.com>
To: Alex Williamson <alex.williamson@redhat.com>,
Jason Gunthorpe <jgg@ziepe.ca>,
Niklas Schnelle <schnelle@linux.ibm.com>,
Ramesh Thomas <ramesh.thomas@intel.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
Ankit Agrawal <ankita@nvidia.com>,
Yishai Hadas <yishaih@nvidia.com>,
Halil Pasic <pasic@linux.ibm.com>,
Julian Ruess <julianr@linux.ibm.com>,
Gerd Bayer <gbayer@linux.ibm.com>
Subject: [PATCH v4 0/3] vfio/pci: Support 8-byte PCI loads and stores
Date: Wed, 22 May 2024 17:06:48 +0200 [thread overview]
Message-ID: <20240522150651.1999584-1-gbayer@linux.ibm.com> (raw)
Hi all,
this all started with a single patch by Ben to enable writing a user-mode
driver for a PCI device that requires 64bit register read/writes on s390.
A quick grep showed that there are several other drivers for PCI devices
in the kernel that use readq/writeq and eventually could use this, too.
So we decided to propose this for general inclusion.
A couple of suggestions for refactorizations by Jason Gunthorpe and Alex
Williamson later [1], I arrived at this little series that avoids some
code duplication in vfio_pci_core_do_io_rw().
Also, I've added a small patch to correct the spelling in one of the
declaration macros that was suggested by Ramesh Thomas [2].
This version was tested with a pass-through PCI device in a KVM guest
and with explicit test reads of size 8, 16, 32, and 64 bit on
s390. For 32bit architectures this has only been compile tested for the
32bit ARM architecture.
Thank you,
Gerd Bayer
[1] https://lore.kernel.org/all/20240422153508.2355844-1-gbayer@linux.ibm.com/
[2] https://lore.kernel.org/kvm/20240425165604.899447-1-gbayer@linux.ibm.com/T/#m1b51fe155c60d04313695fbee11a2ccea856a98c
Changes v3 -> v4:
- Make 64-bit accessors depend on CONFIG_64BIT (for x86, too).
- Drop conversion of if-else if chain to switch-case.
- Add patch to fix spelling of declaration macro.
Changes v2 -> v3:
- Introduce macro to generate body of different-size accesses in
vfio_pci_core_do_io_rw (courtesy Alex Williamson).
- Convert if-else if chain to a switch-case construct to better
accommodate conditional compiles.
Changes v1 -> v2:
- On non 64bit architecture use at most 32bit accesses in
vfio_pci_core_do_io_rw and describe that in the commit message.
- Drop the run-time error on 32bit architectures.
- The #endif splitting the "else if" is not really fortunate, but I'm
open to suggestions.
Ben Segal (1):
vfio/pci: Support 8-byte PCI loads and stores
Gerd Bayer (2):
vfio/pci: Extract duplicated code into macro
vfio/pci: Fix typo in macro to declare accessors
drivers/vfio/pci/vfio_pci_rdwr.c | 124 ++++++++++++++++---------------
include/linux/vfio_pci_core.h | 27 ++++---
2 files changed, 78 insertions(+), 73 deletions(-)
--
2.45.0
next reply other threads:[~2024-05-22 15:07 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-22 15:06 Gerd Bayer [this message]
2024-05-22 15:06 ` [PATCH v4 1/3] vfio/pci: Extract duplicated code into macro Gerd Bayer
2024-05-22 15:06 ` [PATCH v4 2/3] vfio/pci: Support 8-byte PCI loads and stores Gerd Bayer
2024-05-22 23:38 ` Ramesh Thomas
2024-05-23 15:01 ` Gerd Bayer
2024-05-23 21:47 ` Ramesh Thomas
2024-05-24 13:42 ` Gerd Bayer
2024-05-29 3:45 ` Ramesh Thomas
2024-05-23 15:10 ` Gerd Bayer
2024-05-22 15:06 ` [PATCH v4 3/3] vfio/pci: Fix typo in macro to declare accessors Gerd Bayer
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=20240522150651.1999584-1-gbayer@linux.ibm.com \
--to=gbayer@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=ankita@nvidia.com \
--cc=jgg@ziepe.ca \
--cc=julianr@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.ibm.com \
--cc=ramesh.thomas@intel.com \
--cc=schnelle@linux.ibm.com \
--cc=yishaih@nvidia.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