[PATCH v2 10/11] vfio: Make vfio_container optionally compiled
Alex Williamson
alex.williamson at redhat.com
Tue Nov 8 22:28:31 UTC 2022
On Mon, 7 Nov 2022 20:52:54 -0400
Jason Gunthorpe <jgg at 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 <nicolinc at nvidia.com>
> Signed-off-by: Jason Gunthorpe <jgg at 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
More information about the dri-devel
mailing list