Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1676506

Re: [PATCH 3/9] iommu: Introduce iommu do invalidate API function

From Joerg Roedel <joro@8bytes.org>
Newsgroups linux.kernel
Subject Re: [PATCH 3/9] iommu: Introduce iommu do invalidate API function
Date 2017-06-28 12:10 +0200
Message-ID <tXi53-5sM-1@gated-at.bofh.it> (permalink)
References <tX4EN-57v-3@gated-at.bofh.it> <tX4EN-57v-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Jun 27, 2017 at 12:47:57PM -0700, Jacob Pan wrote:
> From: "Liu, Yi L" <yi.l.liu@linux.intel.com>
> 
> When a SVM capable device is assigned to a guest, the first level page
> tables are owned by the guest and the guest PASID table pointer is
> linked to the device context entry of the physical IOMMU.
> 
> Host IOMMU driver has no knowledge of caching structure updates unless
> the guest invalidation activities are passed down to the host. The
> primary usage is derived from emulated IOMMU in the guest, where QEMU
> can trap invalidation activities before pass them down the
> host/physical IOMMU. There are IOMMU architectural specific actions
> need to be taken which requires the generic APIs introduced in this
> patch to have opaque data in the tlb_invalidate_info argument.

Which "IOMMU architectural specific actions" are you thinking of?

> +int iommu_invalidate(struct iommu_domain *domain,
> +		struct device *dev, struct tlb_invalidate_info *inv_info)
> +{
> +	int ret = 0;
> +
> +	if (unlikely(!domain->ops->invalidate))
> +		return -ENODEV;
> +
> +	ret = domain->ops->invalidate(domain, dev, inv_info);
> +
> +	return ret;
> +}
> +EXPORT_SYMBOL_GPL(iommu_invalidate);

[...]

> +struct tlb_invalidate_info {
> +	__u32	model;
> +	__u32	length;
> +	__u8	opaque[];
> +};

This interface is aweful. It requires the user of a generic api to know
details about the implementation behind to do anything useful.

Please explain in more detail why this is needed. My feeling is that we
can make this more generic with a small set of invalidation functions in
the iommu-api.



	Joerg

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 3/9] iommu: Introduce iommu do invalidate API function Jacob Pan <jacob.jun.pan@linux.intel.com> - 2017-06-27 21:50 +0200
  Re: [PATCH 3/9] iommu: Introduce iommu do invalidate API function Joerg Roedel <joro@8bytes.org> - 2017-06-28 12:10 +0200
    Re: [PATCH 3/9] iommu: Introduce iommu do invalidate API function Jacob Pan <jacob.jun.pan@linux.intel.com> - 2017-06-28 18:10 +0200
      Re: [PATCH 3/9] iommu: Introduce iommu do invalidate API function Jean-Philippe Brucker <jean-philippe.brucker@arm.com> - 2017-06-28 20:00 +0200

csiph-web