Message ID | 20240626-vfio_pci_mmap-v4-4-7f038870f022@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio/pci: s390: Fix issues preventing VFIO_PCI_MMAP=y for s390 and enable it | expand |
On Wed, 26 Jun 2024 13:15:51 +0200 Niklas Schnelle <schnelle@linux.ibm.com> wrote: > With the introduction of memory I/O (MIO) instructions enbaled in commit > 71ba41c9b1d9 ("s390/pci: provide support for MIO instructions") s390 > gained support for direct user-space access to mapped PCI resources. > Even without those however user-space can access mapped PCI resources > via the s390 specific MMIO syscalls. Thus mmap() can and should be > supported on all s390 systems with native PCI. Since VFIO_PCI_MMAP > enablement for s390 would make it unconditionally true and thus > pointless just remove it entirely. > > Link: https://lore.kernel.org/all/c5ba134a1d4f4465b5956027e6a4ea6f6beff969.camel@linux.ibm.com/ > Suggested-by: Jason Gunthorpe <jgg@nvidia.com> > Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com> > --- > drivers/vfio/pci/Kconfig | 4 ---- > drivers/vfio/pci/vfio_pci_core.c | 3 --- > 2 files changed, 7 deletions(-) I think you're planning a v5 which drops patch 3/ of this series and finesses the commit log of patch 2/ a bit. This has become much less a vfio series, so if you want to commit through s390, Acked-by: Alex Williamson <alex.williamson@redhat.com> Thanks, Alex > > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig > index bf50ffa10bde..c3bcb6911c53 100644 > --- a/drivers/vfio/pci/Kconfig > +++ b/drivers/vfio/pci/Kconfig > @@ -7,10 +7,6 @@ config VFIO_PCI_CORE > select VFIO_VIRQFD > select IRQ_BYPASS_MANAGER > > -config VFIO_PCI_MMAP > - def_bool y if !S390 > - depends on VFIO_PCI_CORE > - > config VFIO_PCI_INTX > def_bool y if !S390 > depends on VFIO_PCI_CORE > diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c > index 0e9d46575776..c08d0f7bb500 100644 > --- a/drivers/vfio/pci/vfio_pci_core.c > +++ b/drivers/vfio/pci/vfio_pci_core.c > @@ -120,9 +120,6 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_core_device *vdev) > > res = &vdev->pdev->resource[bar]; > > - if (!IS_ENABLED(CONFIG_VFIO_PCI_MMAP)) > - goto no_mmap; > - > if (!(res->flags & IORESOURCE_MEM)) > goto no_mmap; > >
On Thu, 2024-07-04 at 10:16 -0600, Alex Williamson wrote: > On Wed, 26 Jun 2024 13:15:51 +0200 > Niklas Schnelle <schnelle@linux.ibm.com> wrote: > > > With the introduction of memory I/O (MIO) instructions enbaled in commit > > 71ba41c9b1d9 ("s390/pci: provide support for MIO instructions") s390 > > gained support for direct user-space access to mapped PCI resources. > > Even without those however user-space can access mapped PCI resources > > via the s390 specific MMIO syscalls. Thus mmap() can and should be > > supported on all s390 systems with native PCI. Since VFIO_PCI_MMAP > > enablement for s390 would make it unconditionally true and thus > > pointless just remove it entirely. > > > > Link: https://lore.kernel.org/all/c5ba134a1d4f4465b5956027e6a4ea6f6beff969.camel@linux.ibm.com/ > > Suggested-by: Jason Gunthorpe <jgg@nvidia.com> > > Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com> > > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com> > > --- > > drivers/vfio/pci/Kconfig | 4 ---- > > drivers/vfio/pci/vfio_pci_core.c | 3 --- > > 2 files changed, 7 deletions(-) > > I think you're planning a v5 which drops patch 3/ of this series and > finesses the commit log of patch 2/ a bit. This has become much less a > vfio series, so if you want to commit through s390, > > Acked-by: Alex Williamson <alex.williamson@redhat.com> > > Thanks, > Alex > Thank you! Yes I will send a v5. I actually already pushed a changed version to my git.kernel.org branch but we're still discussing internally because pdev->non_compliant_bars respectively the resulting removal of the resources is interfering with future work on user-space vfio-pci use of the ISM device with a vfio-pci-ism variant driver. Thanks, Niklas
diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig index bf50ffa10bde..c3bcb6911c53 100644 --- a/drivers/vfio/pci/Kconfig +++ b/drivers/vfio/pci/Kconfig @@ -7,10 +7,6 @@ config VFIO_PCI_CORE select VFIO_VIRQFD select IRQ_BYPASS_MANAGER -config VFIO_PCI_MMAP - def_bool y if !S390 - depends on VFIO_PCI_CORE - config VFIO_PCI_INTX def_bool y if !S390 depends on VFIO_PCI_CORE diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 0e9d46575776..c08d0f7bb500 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -120,9 +120,6 @@ static void vfio_pci_probe_mmaps(struct vfio_pci_core_device *vdev) res = &vdev->pdev->resource[bar]; - if (!IS_ENABLED(CONFIG_VFIO_PCI_MMAP)) - goto no_mmap; - if (!(res->flags & IORESOURCE_MEM)) goto no_mmap;