On Wed, 2025-04-02 at 11:51 -0400, Stefan Hajnoczi wrote: > On Tue, Apr 01, 2025 at 10:22:43AM -0700, Farhan Ali wrote: > > Hi, > > > > Recently on s390x we have enabled mmap support for vfio-pci devices [1]. > > Hi Alex, > I wanted to bring this to your attention. Feel free to merge it through > the VFIO tree, otherwise I will merge it once you have taken a look. > > Thanks, > Stefan > > > This allows us to take advantage and use userspace drivers on s390x. > > However, > > on s390x we have special instructions for MMIO access. Starting with z15 > > (and newer platforms) we have new PCI Memory I/O (MIO) instructions which > > operate on virtually mapped PCI memory spaces, and can be used from > > userspace. > > On older platforms we would fallback to using existing system calls for > > MMIO access. > > > > This patch series introduces support the PCI MIO instructions, and enables > > s390x > > support for the userspace NVMe driver on s390x. I would appreciate any > > review/feedback > > on the patches. > > > > Thanks > > Farhan
Hi Stefan, the kernel patch actually made it into Linus' tree for v6.15 already as commit aa9f168d55dc ("s390/pci: Support mmap() of PCI resources except for ISM devices") plus prerequisites. This went via the PCI tree because they included a change to struct pci_dev and also enabled mmap() on PCI resource files. Alex reviewed an earlier version and was the one who suggested to also enable mmap() on PCI resources. Thanks, Niklas > > > > [1] > > https://lore.kernel.org/linux-s390/20250226-vfio_pci_mmap-v7-0-c5c0f1d26...@linux.ibm.com/ > > > > ChangeLog > > --------- > > v2 series https://mail.gnu.org/archive/html/qemu-devel/2025-03/msg06847.html > > v2 -> v3 > > - Update the PCI MMIO APIs to reflect that its PCI MMIO access on host > > as suggested by Stefan(patch 2) > > - Move s390x ifdef check to s390x_pci_mmio.h as suggested by Philippe > > (patch 1) > > - Add R-bs for the respective patches. > > > > v1 series https://mail.gnu.org/archive/html/qemu-devel/2025-03/msg06596.html > > v1 -> v2 > > - Add 8 and 16 bit reads/writes for completeness (patch 1) > > - Introduce new QEMU PCI MMIO read/write API as suggested by Stefan > > (patch 2) > > - Update NVMe userspace driver to use QEMU PCI MMIO functions (patch 3) > > > > Farhan Ali (3): > > util: Add functions for s390x mmio read/write > > include: Add a header to define host PCI MMIO functions > > block/nvme: Use host PCI MMIO API > > > > block/nvme.c | 37 +++++---- > > include/qemu/host-pci-mmio.h | 116 ++++++++++++++++++++++++++ > > include/qemu/s390x_pci_mmio.h | 24 ++++++ > > util/meson.build | 2 + > > util/s390x_pci_mmio.c | 148 ++++++++++++++++++++++++++++++++++ > > 5 files changed, 311 insertions(+), 16 deletions(-) > > create mode 100644 include/qemu/host-pci-mmio.h > > create mode 100644 include/qemu/s390x_pci_mmio.h > > create mode 100644 util/s390x_pci_mmio.c > > > > -- > > 2.43.0 > >