On Wed, Jun 24, 2020 at 01:55:15AM -0700, Liu Yi L wrote: > +/* > + * struct iommu_nesting_info - Information for nesting-capable IOMMU. > + * user space should check it before using > + * nesting capability. > + * > + * @size: size of the whole structure > + * @format: PASID table entry format, the same definition with > + * @format of struct iommu_gpasid_bind_data. > + * @features: supported nesting features. > + * @flags: currently reserved for future extension. > + * @data: vendor specific cap info. > + * > + * +---------------+----------------------------------------------------+ > + * | feature | Notes | > + * +===============+====================================================+ > + * | SYSWIDE_PASID | Kernel manages PASID in system wide, PASIDs used | > + * | | in the system should be allocated by host kernel | > + * +---------------+----------------------------------------------------+ > + * | BIND_PGTBL | bind page tables to host PASID, the PASID could | > + * | | either be a host PASID passed in bind request or | > + * | | default PASIDs (e.g. default PASID of aux-domain) | > + * +---------------+----------------------------------------------------+ > + * | CACHE_INVLD | mandatory feature for nesting capable IOMMU | > + * +---------------+----------------------------------------------------+ This feature description is vague about what CACHE_INVLD does and how to use it. If I understand correctly, the presence of this feature means that VFIO_IOMMU_NESTING_OP_CACHE_INVLD must be used? The same kind of clarification could be done for SYSWIDE_PASID and BIND_PGTBL too. Stefan