Message ID | 0-v1-02cb5500df6e+78-vfio_no_mmu_jgg@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio: Depend on MMU | expand |
On Thu, 4 Mar 2021 21:30:03 -0400 Jason Gunthorpe <jgg@nvidia.com> wrote: > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > So require it. > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/vfio/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > --- a/drivers/vfio/Kconfig > +++ b/drivers/vfio/Kconfig > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > menuconfig VFIO > tristate "VFIO Non-Privileged userspace driver framework" > select IOMMU_API > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > help > VFIO provides a framework for secure userspace device drivers. > See Documentation/driver-api/vfio.rst for more details. Actually, I'm wondering how much sense vfio makes on !MMU at all? (And maybe just merge this with your patch that switches IOMMU_API from a depend to a select, because that is the change that makes the MMU dependency required?)
On Fri, Mar 05, 2021 at 09:46:49AM +0100, Cornelia Huck wrote: > On Thu, 4 Mar 2021 21:30:03 -0400 > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > > > So require it. > > > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > > drivers/vfio/Kconfig | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > > +++ b/drivers/vfio/Kconfig > > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > > menuconfig VFIO > > tristate "VFIO Non-Privileged userspace driver framework" > > select IOMMU_API > > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > > help > > VFIO provides a framework for secure userspace device drivers. > > See Documentation/driver-api/vfio.rst for more details. > > Actually, I'm wondering how much sense vfio makes on !MMU at all? (And > maybe just merge this with your patch that switches IOMMU_API from a > depend to a select, because that is the change that makes the MMU > dependency required?) Why does changing depend to select affect MMU vs !MMU? Am I missing something? It looks like IOMMU_API can be turned with ARM !MMU here, for instance: config MSM_IOMMU bool "MSM IOMMU Support" depends on ARM depends on ARCH_MSM8X60 || ARCH_MSM8960 || COMPILE_TEST select IOMMU_API Generally with !MMU I try to ignore it as much as possible unless things don't compile, as I have no idea what people use it for :) Jason
On Fri, 5 Mar 2021 09:46:49 +0100 Cornelia Huck <cohuck@redhat.com> wrote: > On Thu, 4 Mar 2021 21:30:03 -0400 > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > > > So require it. > > > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > > --- > > drivers/vfio/Kconfig | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > > --- a/drivers/vfio/Kconfig > > +++ b/drivers/vfio/Kconfig > > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > > menuconfig VFIO > > tristate "VFIO Non-Privileged userspace driver framework" > > select IOMMU_API > > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > > help > > VFIO provides a framework for secure userspace device drivers. > > See Documentation/driver-api/vfio.rst for more details. > > Actually, I'm wondering how much sense vfio makes on !MMU at all? (And > maybe just merge this with your patch that switches IOMMU_API from a > depend to a select, because that is the change that makes the MMU > dependency required?) We do have the no-iommu code in vfio, potentially it's useful for !MMU, I guess. It seems a little arbitrary to remove it without a known breakage at this point. Thanks, Alex
On Mon, 8 Mar 2021 10:59:13 -0700 Alex Williamson <alex.williamson@redhat.com> wrote: > On Fri, 5 Mar 2021 09:46:49 +0100 > Cornelia Huck <cohuck@redhat.com> wrote: > > > On Thu, 4 Mar 2021 21:30:03 -0400 > > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > > > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > > > > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > > > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > > > > > So require it. > > > > > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > > > --- > > > drivers/vfio/Kconfig | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > > > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > > > --- a/drivers/vfio/Kconfig > > > +++ b/drivers/vfio/Kconfig > > > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > > > menuconfig VFIO > > > tristate "VFIO Non-Privileged userspace driver framework" > > > select IOMMU_API > > > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > > > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > > > help > > > VFIO provides a framework for secure userspace device drivers. > > > See Documentation/driver-api/vfio.rst for more details. > > > > Actually, I'm wondering how much sense vfio makes on !MMU at all? (And > > maybe just merge this with your patch that switches IOMMU_API from a > > depend to a select, because that is the change that makes the MMU > > dependency required?) > > We do have the no-iommu code in vfio, potentially it's useful for !MMU, > I guess. It seems a little arbitrary to remove it without a known > breakage at this point. Thanks, > > Alex Well, in practice, I think we had an implicit dependency on MMU before (everything selecting IOMMU_API depended on MMU.) If we think !MMU would be useful for the no-iommu use case, we can certainly restrict the dependency to VFIO_IOMMU_TYPE1.
On Fri, 5 Mar 2021 19:11:41 -0400 Jason Gunthorpe <jgg@nvidia.com> wrote: > On Fri, Mar 05, 2021 at 09:46:49AM +0100, Cornelia Huck wrote: > > On Thu, 4 Mar 2021 21:30:03 -0400 > > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > > > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > > > > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > > > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > > > > > So require it. > > > > > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > > > drivers/vfio/Kconfig | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > > > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > > > +++ b/drivers/vfio/Kconfig > > > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > > > menuconfig VFIO > > > tristate "VFIO Non-Privileged userspace driver framework" > > > select IOMMU_API > > > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > > > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > > > help > > > VFIO provides a framework for secure userspace device drivers. > > > See Documentation/driver-api/vfio.rst for more details. > > > > Actually, I'm wondering how much sense vfio makes on !MMU at all? (And > > maybe just merge this with your patch that switches IOMMU_API from a > > depend to a select, because that is the change that makes the MMU > > dependency required?) > > Why does changing depend to select affect MMU vs !MMU? Am I missing > something? > > It looks like IOMMU_API can be turned with ARM !MMU here, for > instance: > > config MSM_IOMMU > bool "MSM IOMMU Support" > depends on ARM > depends on ARCH_MSM8X60 || ARCH_MSM8960 || COMPILE_TEST > select IOMMU_API But that one is sitting under a menu depending on MMU, isn't it? > > Generally with !MMU I try to ignore it as much as possible unless > things don't compile, as I have no idea what people use it for :) > > Jason >
On Mon, Mar 08, 2021 at 07:14:21PM +0100, Cornelia Huck wrote: > On Fri, 5 Mar 2021 19:11:41 -0400 > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > On Fri, Mar 05, 2021 at 09:46:49AM +0100, Cornelia Huck wrote: > > > On Thu, 4 Mar 2021 21:30:03 -0400 > > > Jason Gunthorpe <jgg@nvidia.com> wrote: > > > > > > > VFIO_IOMMU_TYPE1 does not compile with !MMU: > > > > > > > > ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': > > > > ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] > > > > > > > > So require it. > > > > > > > > Suggested-by: Cornelia Huck <cohuck@redhat.com> > > > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > > > > drivers/vfio/Kconfig | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig > > > > index 90c0525b1e0cf4..67d0bf4efa1606 100644 > > > > +++ b/drivers/vfio/Kconfig > > > > @@ -22,7 +22,7 @@ config VFIO_VIRQFD > > > > menuconfig VFIO > > > > tristate "VFIO Non-Privileged userspace driver framework" > > > > select IOMMU_API > > > > - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) > > > > + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) > > > > help > > > > VFIO provides a framework for secure userspace device drivers. > > > > See Documentation/driver-api/vfio.rst for more details. > > > > > > Actually, I'm wondering how much sense vfio makes on !MMU at all? (And > > > maybe just merge this with your patch that switches IOMMU_API from a > > > depend to a select, because that is the change that makes the MMU > > > dependency required?) > > > > Why does changing depend to select affect MMU vs !MMU? Am I missing > > something? > > > > It looks like IOMMU_API can be turned with ARM !MMU here, for > > instance: > > > > config MSM_IOMMU > > bool "MSM IOMMU Support" > > depends on ARM > > depends on ARCH_MSM8X60 || ARCH_MSM8960 || COMPILE_TEST > > select IOMMU_API > > But that one is sitting under a menu depending on MMU, isn't it? Yep. Still, I'd keep the two ideas as two patches - order this one first. Jason
diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig index 90c0525b1e0cf4..67d0bf4efa1606 100644 --- a/drivers/vfio/Kconfig +++ b/drivers/vfio/Kconfig @@ -22,7 +22,7 @@ config VFIO_VIRQFD menuconfig VFIO tristate "VFIO Non-Privileged userspace driver framework" select IOMMU_API - select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM || ARM64) + select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64) help VFIO provides a framework for secure userspace device drivers. See Documentation/driver-api/vfio.rst for more details.
VFIO_IOMMU_TYPE1 does not compile with !MMU: ../drivers/vfio/vfio_iommu_type1.c: In function 'follow_fault_pfn': ../drivers/vfio/vfio_iommu_type1.c:536:22: error: implicit declaration of function 'pte_write'; did you mean 'vfs_write'? [-Werror=implicit-function-declaration] So require it. Suggested-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> --- drivers/vfio/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)