All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolin Chen <nicolinc@nvidia.com>
To: <joro@8bytes.org>, <will@kernel.org>, <marcan@marcan.st>,
	<sven@svenpeter.dev>, <robin.murphy@arm.com>,
	<robdclark@gmail.com>, <baolu.lu@linux.intel.com>,
	<matthias.bgg@gmail.com>, <orsonzhai@gmail.com>,
	<baolin.wang7@gmail.com>, <zhang.lyra@gmail.com>,
	<jean-philippe@linaro.org>, <alex.williamson@redhat.com>,
	<jgg@nvidia.com>, <kevin.tian@intel.com>
Cc: <suravee.suthikulpanit@amd.com>, <alyssa@rosenzweig.io>,
	<dwmw2@infradead.org>, <yong.wu@mediatek.com>,
	<mjrosato@linux.ibm.com>, <gerald.schaefer@linux.ibm.com>,
	<thierry.reding@gmail.com>, <vdumpa@nvidia.com>,
	<jonathanh@nvidia.com>, <cohuck@redhat.com>,
	<thunder.leizhen@huawei.com>, <tglx@linutronix.de>,
	<chenxiang66@hisilicon.com>, <christophe.jaillet@wanadoo.fr>,
	<john.garry@huawei.com>, <yangyingliang@huawei.com>,
	<jordan@cosmicpenguin.net>, <iommu@lists.linux-foundation.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-arm-msm@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-s390@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
	<virtualization@lists.linux-foundation.org>,
	<kvm@vger.kernel.org>
Subject: [PATCH v3 0/5] Simplify vfio_iommu_type1 attach/detach routine
Date: Thu, 23 Jun 2022 13:00:24 -0700	[thread overview]
Message-ID: <20220623200029.26007-1-nicolinc@nvidia.com> (raw)

This is a preparatory series for IOMMUFD v2 patches. It enforces error
code -EMEDIUMTYPE in iommu_attach_device() and iommu_attach_group() when
an IOMMU domain and a device/group are incompatible. It also drops the
useless domain->ops check since it won't fail in current environment.

These allow VFIO iommu code to simplify its group attachment routine, by
avoiding the extra IOMMU domain allocations and attach/detach sequences
of the old code.

Worths mentioning the exact match for enforce_cache_coherency is removed
with this series, since there's very less value in doing that since KVM
won't be able to take advantage of it -- this just wastes domain memory.
Instead, we rely on Intel IOMMU driver taking care of that internally.

This is on github:
https://github.com/nicolinc/iommufd/commits/vfio_iommu_attach

Changelog
v3:
 * Dropped all dev_err since -EMEDIUMTYPE clearly indicates what error.
 * Updated commit message of enforce_cache_coherency removing patch.
 * Updated commit message of domain->ops removing patch.
 * Replaced "goto out_unlock" with simply mutex_unlock() and return.
 * Added a line of comments for -EMEDIUMTYPE return check.
 * Moved iommu_get_msi_cookie() into alloc_attach_domain() as a cookie
   should be logically tied to the lifetime of a domain itself.
 * Added Kevin's "Reviewed-by".
v2: https://lore.kernel.org/kvm/20220616000304.23890-1-nicolinc@nvidia.com/
 * Added -EMEDIUMTYPE to more IOMMU drivers that fit the category.
 * Changed dev_err to dev_dbg for -EMEDIUMTYPE to avoid kernel log spam.
 * Dropped iommu_ops patch, and removed domain->ops in VFIO directly,
   since there's no mixed-driver use case that would fail the sanity.
 * Updated commit log of the patch removing enforce_cache_coherency.
 * Fixed a misplace of "num_non_pinned_groups--" in detach_group patch.
 * Moved "num_non_pinned_groups++" in PATCH-5 to the common path between
   domain-reusing and new-domain pathways, like the code previously did.
 * Fixed a typo in EMEDIUMTYPE patch.
v1: https://lore.kernel.org/kvm/20220606061927.26049-1-nicolinc@nvidia.com/

Jason Gunthorpe (1):
  vfio/iommu_type1: Prefer to reuse domains vs match enforced cache
    coherency

Nicolin Chen (4):
  iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
  vfio/iommu_type1: Remove the domain->ops comparison
  vfio/iommu_type1: Clean up update_dirty_scope in detach_group()
  vfio/iommu_type1: Simplify group attachment

 drivers/iommu/amd/iommu.c                   |   2 +-
 drivers/iommu/apple-dart.c                  |   4 +-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c |  15 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c       |   6 +-
 drivers/iommu/arm/arm-smmu/qcom_iommu.c     |   9 +-
 drivers/iommu/intel/iommu.c                 |  10 +-
 drivers/iommu/iommu.c                       |  28 ++
 drivers/iommu/ipmmu-vmsa.c                  |   4 +-
 drivers/iommu/mtk_iommu_v1.c                |   2 +-
 drivers/iommu/omap-iommu.c                  |   3 +-
 drivers/iommu/s390-iommu.c                  |   2 +-
 drivers/iommu/sprd-iommu.c                  |   6 +-
 drivers/iommu/tegra-gart.c                  |   2 +-
 drivers/iommu/virtio-iommu.c                |   3 +-
 drivers/vfio/vfio_iommu_type1.c             | 340 ++++++++++----------
 15 files changed, 225 insertions(+), 211 deletions(-)

-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen via iommu <iommu@lists.linux-foundation.org>
To: <joro@8bytes.org>, <will@kernel.org>, <marcan@marcan.st>,
	<sven@svenpeter.dev>, <robin.murphy@arm.com>,
	<robdclark@gmail.com>, <baolu.lu@linux.intel.com>,
	<matthias.bgg@gmail.com>, <orsonzhai@gmail.com>,
	<baolin.wang7@gmail.com>, <zhang.lyra@gmail.com>,
	<jean-philippe@linaro.org>,  <alex.williamson@redhat.com>,
	<jgg@nvidia.com>, <kevin.tian@intel.com>
Cc: jordan@cosmicpenguin.net, thierry.reding@gmail.com,
	alyssa@rosenzweig.io, linux-s390@vger.kernel.org,
	kvm@vger.kernel.org, jonathanh@nvidia.com,
	yangyingliang@huawei.com, gerald.schaefer@linux.ibm.com,
	linux-arm-msm@vger.kernel.org, christophe.jaillet@wanadoo.fr,
	linux-tegra@vger.kernel.org, tglx@linutronix.de,
	virtualization@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org, cohuck@redhat.com,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	linux-mediatek@lists.infradead.org, dwmw2@infradead.org
Subject: [PATCH v3 0/5] Simplify vfio_iommu_type1 attach/detach routine
Date: Thu, 23 Jun 2022 13:00:24 -0700	[thread overview]
Message-ID: <20220623200029.26007-1-nicolinc@nvidia.com> (raw)

This is a preparatory series for IOMMUFD v2 patches. It enforces error
code -EMEDIUMTYPE in iommu_attach_device() and iommu_attach_group() when
an IOMMU domain and a device/group are incompatible. It also drops the
useless domain->ops check since it won't fail in current environment.

These allow VFIO iommu code to simplify its group attachment routine, by
avoiding the extra IOMMU domain allocations and attach/detach sequences
of the old code.

Worths mentioning the exact match for enforce_cache_coherency is removed
with this series, since there's very less value in doing that since KVM
won't be able to take advantage of it -- this just wastes domain memory.
Instead, we rely on Intel IOMMU driver taking care of that internally.

This is on github:
https://github.com/nicolinc/iommufd/commits/vfio_iommu_attach

Changelog
v3:
 * Dropped all dev_err since -EMEDIUMTYPE clearly indicates what error.
 * Updated commit message of enforce_cache_coherency removing patch.
 * Updated commit message of domain->ops removing patch.
 * Replaced "goto out_unlock" with simply mutex_unlock() and return.
 * Added a line of comments for -EMEDIUMTYPE return check.
 * Moved iommu_get_msi_cookie() into alloc_attach_domain() as a cookie
   should be logically tied to the lifetime of a domain itself.
 * Added Kevin's "Reviewed-by".
v2: https://lore.kernel.org/kvm/20220616000304.23890-1-nicolinc@nvidia.com/
 * Added -EMEDIUMTYPE to more IOMMU drivers that fit the category.
 * Changed dev_err to dev_dbg for -EMEDIUMTYPE to avoid kernel log spam.
 * Dropped iommu_ops patch, and removed domain->ops in VFIO directly,
   since there's no mixed-driver use case that would fail the sanity.
 * Updated commit log of the patch removing enforce_cache_coherency.
 * Fixed a misplace of "num_non_pinned_groups--" in detach_group patch.
 * Moved "num_non_pinned_groups++" in PATCH-5 to the common path between
   domain-reusing and new-domain pathways, like the code previously did.
 * Fixed a typo in EMEDIUMTYPE patch.
v1: https://lore.kernel.org/kvm/20220606061927.26049-1-nicolinc@nvidia.com/

Jason Gunthorpe (1):
  vfio/iommu_type1: Prefer to reuse domains vs match enforced cache
    coherency

Nicolin Chen (4):
  iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
  vfio/iommu_type1: Remove the domain->ops comparison
  vfio/iommu_type1: Clean up update_dirty_scope in detach_group()
  vfio/iommu_type1: Simplify group attachment

 drivers/iommu/amd/iommu.c                   |   2 +-
 drivers/iommu/apple-dart.c                  |   4 +-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c |  15 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c       |   6 +-
 drivers/iommu/arm/arm-smmu/qcom_iommu.c     |   9 +-
 drivers/iommu/intel/iommu.c                 |  10 +-
 drivers/iommu/iommu.c                       |  28 ++
 drivers/iommu/ipmmu-vmsa.c                  |   4 +-
 drivers/iommu/mtk_iommu_v1.c                |   2 +-
 drivers/iommu/omap-iommu.c                  |   3 +-
 drivers/iommu/s390-iommu.c                  |   2 +-
 drivers/iommu/sprd-iommu.c                  |   6 +-
 drivers/iommu/tegra-gart.c                  |   2 +-
 drivers/iommu/virtio-iommu.c                |   3 +-
 drivers/vfio/vfio_iommu_type1.c             | 340 ++++++++++----------
 15 files changed, 225 insertions(+), 211 deletions(-)

-- 
2.17.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen <nicolinc@nvidia.com>
To: <joro@8bytes.org>, <will@kernel.org>, <marcan@marcan.st>,
	<sven@svenpeter.dev>, <robin.murphy@arm.com>,
	<robdclark@gmail.com>, <baolu.lu@linux.intel.com>,
	<matthias.bgg@gmail.com>, <orsonzhai@gmail.com>,
	<baolin.wang7@gmail.com>, <zhang.lyra@gmail.com>,
	<jean-philippe@linaro.org>, <alex.williamson@redhat.com>,
	<jgg@nvidia.com>, <kevin.tian@intel.com>
Cc: mjrosato@linux.ibm.com, jordan@cosmicpenguin.net,
	thierry.reding@gmail.com, alyssa@rosenzweig.io,
	linux-s390@vger.kernel.org, kvm@vger.kernel.org,
	jonathanh@nvidia.com, yong.wu@mediatek.com,
	yangyingliang@huawei.com, gerald.schaefer@linux.ibm.com,
	linux-arm-msm@vger.kernel.org, john.garry@huawei.com,
	christophe.jaillet@wanadoo.fr, thunder.leizhen@huawei.com,
	linux-tegra@vger.kernel.org, tglx@linutronix.de,
	virtualization@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org, chenxiang66@hisilicon.com,
	cohuck@redhat.com, linux-kernel@vger.kernel.org,
	iommu@lists.linux-foundation.org, suravee.suthikulpanit@amd.com,
	linux-mediatek@lists.infradead.org, dwmw2@infradead.org
Subject: [PATCH v3 0/5] Simplify vfio_iommu_type1 attach/detach routine
Date: Thu, 23 Jun 2022 13:00:24 -0700	[thread overview]
Message-ID: <20220623200029.26007-1-nicolinc@nvidia.com> (raw)

This is a preparatory series for IOMMUFD v2 patches. It enforces error
code -EMEDIUMTYPE in iommu_attach_device() and iommu_attach_group() when
an IOMMU domain and a device/group are incompatible. It also drops the
useless domain->ops check since it won't fail in current environment.

These allow VFIO iommu code to simplify its group attachment routine, by
avoiding the extra IOMMU domain allocations and attach/detach sequences
of the old code.

Worths mentioning the exact match for enforce_cache_coherency is removed
with this series, since there's very less value in doing that since KVM
won't be able to take advantage of it -- this just wastes domain memory.
Instead, we rely on Intel IOMMU driver taking care of that internally.

This is on github:
https://github.com/nicolinc/iommufd/commits/vfio_iommu_attach

Changelog
v3:
 * Dropped all dev_err since -EMEDIUMTYPE clearly indicates what error.
 * Updated commit message of enforce_cache_coherency removing patch.
 * Updated commit message of domain->ops removing patch.
 * Replaced "goto out_unlock" with simply mutex_unlock() and return.
 * Added a line of comments for -EMEDIUMTYPE return check.
 * Moved iommu_get_msi_cookie() into alloc_attach_domain() as a cookie
   should be logically tied to the lifetime of a domain itself.
 * Added Kevin's "Reviewed-by".
v2: https://lore.kernel.org/kvm/20220616000304.23890-1-nicolinc@nvidia.com/
 * Added -EMEDIUMTYPE to more IOMMU drivers that fit the category.
 * Changed dev_err to dev_dbg for -EMEDIUMTYPE to avoid kernel log spam.
 * Dropped iommu_ops patch, and removed domain->ops in VFIO directly,
   since there's no mixed-driver use case that would fail the sanity.
 * Updated commit log of the patch removing enforce_cache_coherency.
 * Fixed a misplace of "num_non_pinned_groups--" in detach_group patch.
 * Moved "num_non_pinned_groups++" in PATCH-5 to the common path between
   domain-reusing and new-domain pathways, like the code previously did.
 * Fixed a typo in EMEDIUMTYPE patch.
v1: https://lore.kernel.org/kvm/20220606061927.26049-1-nicolinc@nvidia.com/

Jason Gunthorpe (1):
  vfio/iommu_type1: Prefer to reuse domains vs match enforced cache
    coherency

Nicolin Chen (4):
  iommu: Return -EMEDIUMTYPE for incompatible domain and device/group
  vfio/iommu_type1: Remove the domain->ops comparison
  vfio/iommu_type1: Clean up update_dirty_scope in detach_group()
  vfio/iommu_type1: Simplify group attachment

 drivers/iommu/amd/iommu.c                   |   2 +-
 drivers/iommu/apple-dart.c                  |   4 +-
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c |  15 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c       |   6 +-
 drivers/iommu/arm/arm-smmu/qcom_iommu.c     |   9 +-
 drivers/iommu/intel/iommu.c                 |  10 +-
 drivers/iommu/iommu.c                       |  28 ++
 drivers/iommu/ipmmu-vmsa.c                  |   4 +-
 drivers/iommu/mtk_iommu_v1.c                |   2 +-
 drivers/iommu/omap-iommu.c                  |   3 +-
 drivers/iommu/s390-iommu.c                  |   2 +-
 drivers/iommu/sprd-iommu.c                  |   6 +-
 drivers/iommu/tegra-gart.c                  |   2 +-
 drivers/iommu/virtio-iommu.c                |   3 +-
 drivers/vfio/vfio_iommu_type1.c             | 340 ++++++++++----------
 15 files changed, 225 insertions(+), 211 deletions(-)

-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2022-06-23 20:01 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-23 20:00 Nicolin Chen [this message]
2022-06-23 20:00 ` [PATCH v3 0/5] Simplify vfio_iommu_type1 attach/detach routine Nicolin Chen
2022-06-23 20:00 ` Nicolin Chen via iommu
2022-06-23 20:00 ` [PATCH v3 1/5] iommu: Return -EMEDIUMTYPE for incompatible domain and device/group Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen via iommu
2022-06-24  1:35   ` Baolu Lu
2022-06-24  1:35     ` Baolu Lu
2022-06-24  1:35     ` Baolu Lu
2022-06-24  2:44     ` Nicolin Chen
2022-06-24  2:44       ` Nicolin Chen
2022-06-24  2:44       ` Nicolin Chen via iommu
2022-06-24  5:38       ` Yong Wu
2022-06-24  5:38         ` Yong Wu
2022-06-24  5:38         ` Yong Wu via iommu
2022-06-24  5:41         ` Nicolin Chen
2022-06-24  5:41           ` Nicolin Chen
2022-06-24  5:41           ` Nicolin Chen via iommu
2022-06-24  6:16         ` Tian, Kevin
2022-06-24  6:16           ` Tian, Kevin
2022-06-24  6:16           ` Tian, Kevin
2022-06-24  6:16           ` Tian, Kevin
2022-06-24 10:35           ` Yong Wu
2022-06-24 10:35             ` Yong Wu
2022-06-24 10:35             ` Yong Wu via iommu
2022-06-24 18:19             ` Jason Gunthorpe
2022-06-24 18:19               ` Jason Gunthorpe
2022-06-24 18:19               ` Jason Gunthorpe via iommu
2022-06-29 19:47               ` Nicolin Chen
2022-06-29 19:47                 ` Nicolin Chen
2022-06-29 19:47                 ` Nicolin Chen via iommu
2022-06-30  8:21                 ` Robin Murphy
2022-06-30  8:21                   ` Robin Murphy
2022-06-30  8:21                   ` Robin Murphy
2022-06-30  8:21                   ` Robin Murphy
2022-06-30  9:57                   ` Tian, Kevin
2022-06-30  9:57                     ` Tian, Kevin
2022-06-30  9:57                     ` Tian, Kevin
2022-06-30  9:57                     ` Tian, Kevin
2022-06-30 15:47                   ` Nicolin Chen
2022-06-30 15:47                     ` Nicolin Chen
2022-06-30 15:47                     ` Nicolin Chen via iommu
2022-06-30  9:33                 ` Yong Wu
2022-06-30  9:33                   ` Yong Wu
2022-06-30  9:33                   ` Yong Wu via iommu
2022-06-30 15:45                   ` Nicolin Chen
2022-06-30 15:45                     ` Nicolin Chen
2022-06-30 15:45                     ` Nicolin Chen via iommu
2022-06-23 20:00 ` [PATCH v3 2/5] vfio/iommu_type1: Prefer to reuse domains vs match enforced cache coherency Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen via iommu
2022-06-24  1:50   ` Baolu Lu
2022-06-24  1:50     ` Baolu Lu
2022-06-24  1:50     ` Baolu Lu
2022-06-23 20:00 ` [PATCH v3 3/5] vfio/iommu_type1: Remove the domain->ops comparison Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen via iommu
2022-06-24 18:28   ` Jason Gunthorpe
2022-06-24 18:28     ` Jason Gunthorpe
2022-06-24 18:28     ` Jason Gunthorpe via iommu
2022-06-24 18:46     ` Jason Gunthorpe
2022-06-24 18:46       ` Jason Gunthorpe
2022-06-24 18:46       ` Jason Gunthorpe via iommu
2022-06-23 20:00 ` [PATCH v3 4/5] vfio/iommu_type1: Clean up update_dirty_scope in detach_group() Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen via iommu
2022-06-23 20:00 ` [PATCH v3 5/5] vfio/iommu_type1: Simplify group attachment Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen
2022-06-23 20:00   ` Nicolin Chen via iommu
2022-06-27  6:57   ` Tian, Kevin
2022-06-27  6:57     ` Tian, Kevin
2022-06-27  6:57     ` Tian, Kevin
2022-06-27  6:57     ` 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=20220623200029.26007-1-nicolinc@nvidia.com \
    --to=nicolinc@nvidia.com \
    --cc=alex.williamson@redhat.com \
    --cc=alyssa@rosenzweig.io \
    --cc=baolin.wang7@gmail.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chenxiang66@hisilicon.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=cohuck@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=gerald.schaefer@linux.ibm.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jean-philippe@linaro.org \
    --cc=jgg@nvidia.com \
    --cc=john.garry@huawei.com \
    --cc=jonathanh@nvidia.com \
    --cc=jordan@cosmicpenguin.net \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=matthias.bgg@gmail.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=orsonzhai@gmail.com \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=sven@svenpeter.dev \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=thunder.leizhen@huawei.com \
    --cc=vdumpa@nvidia.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=will@kernel.org \
    --cc=yangyingliang@huawei.com \
    --cc=yong.wu@mediatek.com \
    --cc=zhang.lyra@gmail.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.