On Mon,  7 Nov 2022 20:52:54 -0400
Jason Gunthorpe <j...@nvidia.com> wrote:

> Add a kconfig CONFIG_VFIO_CONTAINER that controls compiling the container
> code. If 'n' then only iommufd will provide the container service. All the
> support for vfio iommu drivers, including type1, will not be built.
> 
> This allows a compilation check that no inappropriate dependencies between
> the device/group and container have been created.
> 
> Tested-by: Nicolin Chen <nicol...@nvidia.com>
> Signed-off-by: Jason Gunthorpe <j...@nvidia.com>
> ---
>  drivers/vfio/Kconfig  | 35 +++++++++++++++--------
>  drivers/vfio/Makefile |  4 +--
>  drivers/vfio/vfio.h   | 65 +++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 91 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/vfio/Kconfig b/drivers/vfio/Kconfig
> index 1118d322eec97d..286c1663bd7564 100644
> --- a/drivers/vfio/Kconfig
> +++ b/drivers/vfio/Kconfig
> @@ -3,8 +3,8 @@ menuconfig VFIO
>       tristate "VFIO Non-Privileged userspace driver framework"
>       select IOMMU_API
>       depends on IOMMUFD || !IOMMUFD
> -     select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
>       select INTERVAL_TREE
> +     select VFIO_CONTAINER if IOMMUFD=n
>       help
>         VFIO provides a framework for secure userspace device drivers.
>         See Documentation/driver-api/vfio.rst for more details.
> @@ -12,6 +12,18 @@ menuconfig VFIO
>         If you don't know what to do here, say N.
>  
>  if VFIO
> +config VFIO_CONTAINER
> +     bool "Support for the VFIO container /dev/vfio/vfio"
> +     select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
> +     default y
> +     help
> +       The VFIO container is the classic interface to VFIO for establishing
> +       IOMMU mappings. If N is selected here then IOMMUFD must be used to
> +       manage the mappings.
> +
> +       Unless testing IOMMUFD say Y here.
> +
> +if VFIO_CONTAINER
>  config VFIO_IOMMU_TYPE1
>       tristate
>       default n
> @@ -21,16 +33,6 @@ config VFIO_IOMMU_SPAPR_TCE
>       depends on SPAPR_TCE_IOMMU
>       default VFIO
>  
> -config VFIO_SPAPR_EEH
> -     tristate
> -     depends on EEH && VFIO_IOMMU_SPAPR_TCE
> -     default VFIO
> -
> -config VFIO_VIRQFD
> -     tristate
> -     select EVENTFD
> -     default n
> -
>  config VFIO_NOIOMMU
>       bool "VFIO No-IOMMU support"
>       help


Perhaps this should have been obvious, but I'm realizing that
vfio-noiommu mode is completely missing without VFIO_CONTAINER, which
seems a barrier to deprecating VFIO_CONTAINER and perhaps makes it a
question whether IOMMUFD should really be taking over /dev/vfio/vfio.
No-iommu mode has users.  Thanks,

Alex

Reply via email to