diff mbox series

vfio: Depend on MMU

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

Commit Message

Jason Gunthorpe March 5, 2021, 1:30 a.m. UTC
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(-)

Comments

Cornelia Huck March 5, 2021, 8:46 a.m. UTC | #1
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?)
Jason Gunthorpe March 5, 2021, 11:11 p.m. UTC | #2
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
Alex Williamson March 8, 2021, 5:59 p.m. UTC | #3
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
Cornelia Huck March 8, 2021, 6:12 p.m. UTC | #4
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.
Cornelia Huck March 8, 2021, 6:14 p.m. UTC | #5
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
>
Jason Gunthorpe March 8, 2021, 6:23 p.m. UTC | #6
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 mbox series

Patch

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.