Re: [PATCH v4 0/3] vfio/pci: Introduce vfio_pci driver for ISM devices

Alex Williamson
2026-03-13T15:41:33Z

On Fri, 13 Mar 2026 15:40:27 +0100
Julian Ruess <julianr@linux.ibm.com> wrote:

> Hi all,
>
> This series adds a vfio_pci variant driver for the s390-specific
> Internal Shared Memory (ISM) devices used for inter-VM communication
> including SMC-D.
>
> This is a prerequisite for an in-development open-source user space
> driver stack that will allow to use ISM devices to provide remote
> console and block device functionality. This stack will be part of
> s390-tools.
>
> This driver would also allow QEMU to mediate access to an ISM device,
> enabling a form of PCI pass-through even for guests whose hardware
> cannot directly execute PCI accesses, such as nested guests.
>
> On s390, kernel primitives such as ioread() and iowrite() are switched
> over from function handle based PCI load/stores instructions to PCI
> memory-I/O (MIO) loads/stores when these are available and not
> explicitly disabled. Since these instructions cannot be used with ISM
> devices, ensure that classic function handle-based PCI instructions are
> used instead.
>
> The driver is still required even when MIO instructions are disabled, as
> the ISM device relies on the PCI store‑block (PCISTB) instruction to
> perform write operations.
>
> Thank you,
> Julian
>
> Signed-off-by: Julian Ruess <julianr@linux.ibm.com>
> ---
> Changes in v4:
> - Fix bug with < 8 byte reads. For code simplicity, only support 8 byte reads.

Does the ISM device define sub-8-byte accesses as valid? It looks like
if pread() doesn't return the desired size QEMU will fill the return
with -1. Unless such accesses are classified as undefined by ISM,
doesn't that suggest a potential data corruption issue to the guest
driver? Thanks,

Alex