All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yi Liu <yi.l.liu@intel.com>
To: Baolu Lu <baolu.lu@linux.intel.com>, <joro@8bytes.org>,
	<alex.williamson@redhat.com>, <jgg@nvidia.com>,
	<kevin.tian@intel.com>, <robin.murphy@arm.com>
Cc: <cohuck@redhat.com>, <eric.auger@redhat.com>,
	<nicolinc@nvidia.com>, <kvm@vger.kernel.org>,
	<mjrosato@linux.ibm.com>, <chao.p.peng@linux.intel.com>,
	<yi.y.sun@linux.intel.com>, <peterx@redhat.com>,
	<jasowang@redhat.com>, <shameerali.kolothum.thodi@huawei.com>,
	<lulu@redhat.com>, <suravee.suthikulpanit@amd.com>,
	<iommu@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
	<linux-kselftest@vger.kernel.org>, <zhenzhong.duan@intel.com>,
	<joao.m.martins@oracle.com>
Subject: Re: [PATCH v5 07/11] iommufd: Add data structure for Intel VT-d stage-1 cache invalidation
Date: Mon, 25 Sep 2023 14:56:45 +0800	[thread overview]
Message-ID: <49bd7209-27f0-4bac-59bb-5a59fb21f872@intel.com> (raw)
In-Reply-To: <e493c62d-8f10-17c8-f660-dbae19c481a4@linux.intel.com>

On 2023/9/21 21:33, Baolu Lu wrote:
> On 2023/9/21 15:54, Yi Liu wrote:
>> This adds the data structure for flushing iotlb for the nested domain
>> allocated with IOMMU_HWPT_TYPE_VTD_S1 type.
>>
>> This only supports invalidating IOTLB, but no for device-TLB as device-TLB
>> invalidation will be covered automatically in the IOTLB invalidation if the
>> underlying IOMMU driver has enabled ATS for the affected device.
>>
>> Signed-off-by: Yi Liu <yi.l.liu@intel.com>
>> ---
>>   include/uapi/linux/iommufd.h | 34 ++++++++++++++++++++++++++++++++++
>>   1 file changed, 34 insertions(+)
>>
>> diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
>> index 18a502e206c3..3050efbceb57 100644
>> --- a/include/uapi/linux/iommufd.h
>> +++ b/include/uapi/linux/iommufd.h
>> @@ -510,6 +510,40 @@ struct iommu_hw_info {
>>   };
>>   #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
>> +/**
>> + * enum iommu_hwpt_vtd_s1_invalidate_flags - Flags for Intel VT-d
>> + *                                           stage-1 cache invalidation
>> + * @IOMMU_VTD_QI_FLAGS_LEAF: The LEAF flag indicates whether only the
>> + *                           leaf PTE caching needs to be invalidated
>> + *                           and other paging structure caches can be
>> + *                           preserved.
>> + */
>> +enum iommu_hwpt_vtd_s1_invalidate_flags {
>> +    IOMMU_VTD_QI_FLAGS_LEAF = 1 << 0,
>> +};
>> +
>> +/**
>> + * struct iommu_hwpt_vtd_s1_invalidate - Intel VT-d cache invalidation
>> + *                                       (IOMMU_HWPT_TYPE_VTD_S1)
>> + * @addr: The start address of the addresses to be invalidated.
> 
> Is there an alignment requirement for @addr? If so, is 4K alignment
> sufficient? Perhaps we need to document it here so that user space can
> calculate the @addr correctly.

yes, it should be aligned. let's document it in the kdoc.

> 
>> + * @npages: Number of contiguous 4K pages to be invalidated.
>> + * @flags: Combination of enum iommu_hwpt_vtd_s1_invalidate_flags
>> + * @__reserved: Must be 0
>> + *
>> + * The Intel VT-d specific invalidation data for user-managed stage-1 cache
>> + * invalidation under nested translation. Userspace uses this structure to
>> + * tell host about the impacted caches after modifying the stage-1 page 
>> table.
>> + *
>> + * Invalidating all the caches related to the page table by setting @addr
>> + * to be 0 and @npages to be __aligned_u64(-1).
>> + */
>> +struct iommu_hwpt_vtd_s1_invalidate {
>> +    __aligned_u64 addr;
>> +    __aligned_u64 npages;
>> +    __u32 flags;
>> +    __u32 __reserved;
>> +};
>> +
>>   /**
>>    * struct iommu_hwpt_invalidate - ioctl(IOMMU_HWPT_INVALIDATE)
>>    * @size: sizeof(struct iommu_hwpt_invalidate)
> 
> Best regards,
> baolu

-- 
Regards,
Yi Liu

  reply	other threads:[~2023-09-25  6:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-21  7:54 [PATCH v5 00/11] Add Intel VT-d nested translation Yi Liu
2023-09-21  7:54 ` [PATCH v5 01/11] iommufd: Add data structure for Intel VT-d stage-1 domain allocation Yi Liu
2023-09-27  6:18   ` Tian, Kevin
2023-09-21  7:54 ` [PATCH v5 02/11] iommu/vt-d: Extend dmar_domain to support nested domain Yi Liu
2023-09-21  7:54 ` [PATCH v5 03/11] iommu/vt-d: Add helper for nested domain allocation Yi Liu
2023-09-21  7:54 ` [PATCH v5 04/11] iommu/vt-d: Add helper to setup pasid nested translation Yi Liu
2023-09-27  6:37   ` Tian, Kevin
2023-10-13 12:40     ` Yi Liu
2023-10-13 12:48       ` Baolu Lu
2023-10-16  8:30       ` Tian, Kevin
2023-09-21  7:54 ` [PATCH v5 05/11] iommu/vt-d: Make domain attach helpers to be extern Yi Liu
2023-09-21  7:54 ` [PATCH v5 06/11] iommu/vt-d: Set the nested domain to a device Yi Liu
2023-09-27  6:40   ` Tian, Kevin
2023-09-21  7:54 ` [PATCH v5 07/11] iommufd: Add data structure for Intel VT-d stage-1 cache invalidation Yi Liu
2023-09-21 13:33   ` Baolu Lu
2023-09-25  6:56     ` Yi Liu [this message]
2023-09-27  6:46   ` Tian, Kevin
2023-09-21  7:54 ` [PATCH v5 08/11] iommu/vt-d: Make iotlb flush helpers to be extern Yi Liu
2023-09-21  7:54 ` [PATCH v5 09/11] iommu/vt-d: Add iotlb flush for nested domain Yi Liu
2023-09-27  6:53   ` Tian, Kevin
2023-10-13 12:56     ` Yi Liu
2023-09-21  7:54 ` [PATCH v5 10/11] iommu/vt-d: Add nested domain allocation Yi Liu
2023-09-27  6:56   ` Tian, Kevin
2023-10-13 13:41     ` Yi Liu
2023-09-21  7:54 ` [PATCH v5 11/11] iommu/vt-d: Disallow read-only mappings to nest parent domain Yi Liu
2023-09-27  7:04   ` Tian, Kevin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49bd7209-27f0-4bac-59bb-5a59fb21f872@intel.com \
    --to=yi.l.liu@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=cohuck@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=iommu@lists.linux.dev \
    --cc=jasowang@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=joao.m.martins@oracle.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=lulu@redhat.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=peterx@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=yi.y.sun@linux.intel.com \
    --cc=zhenzhong.duan@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.