On Fri, 2024-04-19 at 10:47 -0600, Alex Williamson wrote: > On Fri, 19 Apr 2024 13:11:35 -0300 > Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > > On Fri, Apr 19, 2024 at 05:57:52PM +0200, Niklas Schnelle wrote: > > > On Fri, 2024-04-19 at 10:58 -0300, Jason Gunthorpe wrote: > > > > On Fri, Apr 19, 2024 at 03:53:23PM +0200, Gerd Bayer wrote: > > > > > From: Ben Segal <bpsegal@xxxxxxxxxx> > > > > > > > > > > Many PCI adapters can benefit or even require full 64bit read > > > > > and write access to their registers. In order to enable work > > > > > on > > > > > user-space drivers for these devices add two new variations > > > > > vfio_pci_core_io{read|write}64 of the existing access methods > > > > > when the architecture supports 64-bit ioreads and iowrites. > > > > > > > > > > Signed-off-by: Ben Segal <bpsegal@xxxxxxxxxx> > > > > > Co-developed-by: Gerd Bayer <gbayer@xxxxxxxxxxxxx> > > > > > Signed-off-by: Gerd Bayer <gbayer@xxxxxxxxxxxxx> > > > > > --- > > > > > > > > > > Hi all, > > > > > > > > > > we've successfully used this patch with a user-mode driver > > > > > for a PCI device that requires 64bit register read/writes on > > > > > s390. > > > > > > > > But why? S390 already has a system call for userspace to do the > > > > 64 bit write, and newer S390 has a userspace instruction to do > > > > it. > > > > > > > > Why would you want to use a VFIO system call on the mmio > > > > emulation path? > > > > > > > > mmap the registers and access them normally? > > > > > > It's a very good point and digging into why this wasn't used by > > > Benjamin. It turns out VFIO_PCI_MMAP is disabled for S390 which > > > it really shouldn't be especially now that we have the user-space > > > instructions. Before that though Benjamin turned to this > > > interface which then lead him to this limitation. So yeah we'll > > > definitely verify that it also works via VFIO_PCI_MMAP and send a > > > patch to enable that. > > > > Make sense to me! > > > > > That said I still think it's odd not to have the 8 byte case > > > working here even if it isn't the right approach. Could still be > > > useful for debug/testing without having to add the MIO > > > instructions or the our special syscall. > > > > Yes, this also makes sense, but this patch needs some adjusting > > Yes, I think so too, falling back to 4-byte accesses of course if > 8-byte is not available. Thanks, So I'll rework this to simply fall back to 32-bit if 64-bit is not available in a v2. And we'll investigate the VFIO_PCI_MMAP case separately. Thank you, Gerd