qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [RFC v3 09/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support


From: Liu, Yi L
Subject: RE: [RFC v3 09/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support
Date: Wed, 12 Feb 2020 07:16:48 +0000

> From: Peter Xu <address@hidden>
> Sent: Wednesday, February 12, 2020 3:08 AM
> Subject: Re: [RFC v3 09/25] vfio: check VFIO_TYPE1_NESTING_IOMMU support
> 
> On Wed, Jan 29, 2020 at 04:16:40AM -0800, Liu, Yi L wrote:
> > From: Liu Yi L <address@hidden>
> >
> > VFIO needs to check VFIO_TYPE1_NESTING_IOMMU support with Kernel
> > before further using it.
> > e.g. requires to check IOMMU UAPI version.
> >
> > Cc: Kevin Tian <address@hidden>
> > Cc: Jacob Pan <address@hidden>
> > Cc: Peter Xu <address@hidden>
> > Cc: Eric Auger <address@hidden>
> > Cc: Yi Sun <address@hidden>
> > Cc: David Gibson <address@hidden>
> > Cc: Alex Williamson <address@hidden>
> > Signed-off-by: Liu Yi L <address@hidden>
> > Signed-off-by: Yi Sun <address@hidden>
> > ---
> >  hw/vfio/common.c | 14 ++++++++++++--
> >  1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/vfio/common.c b/hw/vfio/common.c index
> > 0cc7ff5..a5e70b1 100644
> > --- a/hw/vfio/common.c
> > +++ b/hw/vfio/common.c
> > @@ -1157,12 +1157,21 @@ static void
> > vfio_put_address_space(VFIOAddressSpace *space)  static int
> vfio_get_iommu_type(VFIOContainer *container,
> >                                 Error **errp)  {
> > -    int iommu_types[] = { VFIO_TYPE1v2_IOMMU, VFIO_TYPE1_IOMMU,
> > +    int iommu_types[] = { VFIO_TYPE1_NESTING_IOMMU,
> > +                          VFIO_TYPE1v2_IOMMU, VFIO_TYPE1_IOMMU,
> >                            VFIO_SPAPR_TCE_v2_IOMMU, VFIO_SPAPR_TCE_IOMMU };
> > -    int i;
> > +    int i, version;
> >
> >      for (i = 0; i < ARRAY_SIZE(iommu_types); i++) {
> >          if (ioctl(container->fd, VFIO_CHECK_EXTENSION,
> > iommu_types[i])) {
> > +            if (iommu_types[i] == VFIO_TYPE1_NESTING_IOMMU) {
> > +                version = ioctl(container->fd,
> > +                                VFIO_NESTING_GET_IOMMU_UAPI_VERSION);
> > +                if (version < IOMMU_UAPI_VERSION) {
> > +                    printf("IOMMU UAPI incompatible for nesting\n");
> 
> There should have better alternatives than printf()... Maybe warn_report()?

Got it. thanks. 😊

Regards,
Yi Liu

reply via email to

[Prev in Thread] Current Thread [Next in Thread]