From: Lu Baolu <baolu.lu@linux.intel.com> To: Joerg Roedel <joro@8bytes.org>, David Woodhouse <dwmw2@infradead.org>, Alex Williamson <alex.williamson@redhat.com>, Kirti Wankhede <kwankhede@nvidia.com> Cc: ashok.raj@intel.com, sanjay.k.kumar@intel.com, jacob.jun.pan@intel.com, kevin.tian@intel.com, Jean-Philippe Brucker <jean-philippe.brucker@arm.com>, yi.l.liu@intel.com, yi.y.sun@intel.com, peterx@redhat.com, tiwei.bie@intel.com, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Lu Baolu <baolu.lu@linux.intel.com>, Jacob Pan <jacob.jun.pan@linux.intel.com> Subject: [RFC PATCH v2 02/10] iommu/vt-d: Add multiple domains per device query Date: Thu, 30 Aug 2018 12:09:14 +0800 [thread overview] Message-ID: <20180830040922.30426-3-baolu.lu@linux.intel.com> (raw) In-Reply-To: <20180830040922.30426-1-baolu.lu@linux.intel.com> Add the response to IOMMU_CAP_AUX_DOMAIN capability query through iommu_capable(). Return true if IOMMUs support the scalable mode, return false otherwise. Cc: Ashok Raj <ashok.raj@intel.com> Cc: Jacob Pan <jacob.jun.pan@linux.intel.com> Cc: Kevin Tian <kevin.tian@intel.com> Cc: Liu Yi L <yi.l.liu@intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> --- drivers/iommu/intel-iommu.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 3e49d4029058..891ae70e7bf2 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -5193,12 +5193,39 @@ static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain, return phys; } +static inline bool scalable_mode_support(void) +{ + struct dmar_drhd_unit *drhd; + struct intel_iommu *iommu; + bool ret = true; + + rcu_read_lock(); + for_each_active_iommu(iommu, drhd) { + if (!sm_supported(iommu)) { + ret = false; + break; + } + } + rcu_read_unlock(); + + return ret; +} + static bool intel_iommu_capable(enum iommu_cap cap) { - if (cap == IOMMU_CAP_CACHE_COHERENCY) + switch (cap) { + case IOMMU_CAP_CACHE_COHERENCY: return domain_update_iommu_snooping(NULL) == 1; - if (cap == IOMMU_CAP_INTR_REMAP) + case IOMMU_CAP_INTR_REMAP: return irq_remapping_enabled == 1; + case IOMMU_CAP_AUX_DOMAIN: + return scalable_mode_support(); + case IOMMU_CAP_NOEXEC: + /* PASSTHROUGH */ + default: + pr_info("Unsupported capability query %d\n", cap); + break; + } return false; } -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Lu Baolu <baolu.lu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> To: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>, David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, Alex Williamson <alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, Kirti Wankhede <kwankhede-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> Cc: kevin.tian-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, ashok.raj-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, tiwei.bie-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, Jean-Philippe Brucker <jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org>, sanjay.k.kumar-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, yi.y.sun-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, jacob.jun.pan-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: [RFC PATCH v2 02/10] iommu/vt-d: Add multiple domains per device query Date: Thu, 30 Aug 2018 12:09:14 +0800 [thread overview] Message-ID: <20180830040922.30426-3-baolu.lu@linux.intel.com> (raw) In-Reply-To: <20180830040922.30426-1-baolu.lu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> Add the response to IOMMU_CAP_AUX_DOMAIN capability query through iommu_capable(). Return true if IOMMUs support the scalable mode, return false otherwise. Cc: Ashok Raj <ashok.raj-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Cc: Jacob Pan <jacob.jun.pan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> Cc: Kevin Tian <kevin.tian-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Cc: Liu Yi L <yi.l.liu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Signed-off-by: Lu Baolu <baolu.lu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> --- drivers/iommu/intel-iommu.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 3e49d4029058..891ae70e7bf2 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -5193,12 +5193,39 @@ static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain, return phys; } +static inline bool scalable_mode_support(void) +{ + struct dmar_drhd_unit *drhd; + struct intel_iommu *iommu; + bool ret = true; + + rcu_read_lock(); + for_each_active_iommu(iommu, drhd) { + if (!sm_supported(iommu)) { + ret = false; + break; + } + } + rcu_read_unlock(); + + return ret; +} + static bool intel_iommu_capable(enum iommu_cap cap) { - if (cap == IOMMU_CAP_CACHE_COHERENCY) + switch (cap) { + case IOMMU_CAP_CACHE_COHERENCY: return domain_update_iommu_snooping(NULL) == 1; - if (cap == IOMMU_CAP_INTR_REMAP) + case IOMMU_CAP_INTR_REMAP: return irq_remapping_enabled == 1; + case IOMMU_CAP_AUX_DOMAIN: + return scalable_mode_support(); + case IOMMU_CAP_NOEXEC: + /* PASSTHROUGH */ + default: + pr_info("Unsupported capability query %d\n", cap); + break; + } return false; } -- 2.17.1
next prev parent reply other threads:[~2018-08-30 4:12 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-30 4:09 [RFC PATCH v2 00/10] vfio/mdev: IOMMU aware mediated device Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 01/10] iommu: Add APIs for multiple domains per device Lu Baolu 2018-08-30 4:09 ` Lu Baolu 2018-08-30 4:09 ` Lu Baolu [this message] 2018-08-30 4:09 ` [RFC PATCH v2 02/10] iommu/vt-d: Add multiple domains per device query Lu Baolu 2018-09-05 19:35 ` Alex Williamson 2018-09-06 0:54 ` Lu Baolu 2018-09-06 0:54 ` Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 03/10] iommu/amd: Add default branch in amd_iommu_capable() Lu Baolu 2018-08-30 4:09 ` Lu Baolu 2018-09-05 19:37 ` Alex Williamson 2018-09-05 19:37 ` Alex Williamson 2018-09-06 0:55 ` Lu Baolu 2018-09-06 0:55 ` Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 04/10] iommu/vt-d: Enable/disable multiple domains per device Lu Baolu 2018-08-30 4:09 ` Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 05/10] iommu/vt-d: Attach/detach domains in auxiliary mode Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 06/10] iommu/vt-d: Return ID associated with an auxiliary domain Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 07/10] vfio/mdev: Add mediated device domain type Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 08/10] vfio/type1: Add domain at(de)taching group helpers Lu Baolu 2018-09-10 16:23 ` Jean-Philippe Brucker 2018-09-10 16:23 ` Jean-Philippe Brucker 2018-09-12 5:02 ` Lu Baolu 2018-09-12 17:54 ` Jean-Philippe Brucker 2018-09-12 17:54 ` Jean-Philippe Brucker 2018-09-13 0:35 ` Tian, Kevin 2018-09-14 14:45 ` Jean-Philippe Brucker 2018-09-15 2:36 ` Tian, Kevin 2018-09-18 15:52 ` Jean-Philippe Brucker [not found] ` <f46bcf5f-002b-4269-a750-c4254c9fc89f-5wv7dgnIgG8@public.gmane.org> 2018-09-18 23:26 ` Tian, Kevin 2018-09-19 2:10 ` Lu Baolu 2018-09-25 17:55 ` Jean-Philippe Brucker 2018-09-26 2:11 ` Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 09/10] vfio/type1: Determine domain type of an mdev group Lu Baolu 2018-08-30 4:09 ` [RFC PATCH v2 10/10] vfio/type1: Attach domain for " Lu Baolu 2018-09-05 3:01 ` [RFC PATCH v2 00/10] vfio/mdev: IOMMU aware mediated device Tian, Kevin 2018-09-05 3:01 ` Tian, Kevin 2018-09-05 19:15 ` Alex Williamson 2018-09-06 1:29 ` Lu Baolu 2018-09-10 16:22 ` Jean-Philippe Brucker 2018-09-12 2:42 ` Lu Baolu 2018-09-12 17:54 ` Jean-Philippe Brucker 2018-09-13 0:19 ` Tian, Kevin 2018-09-13 0:19 ` Tian, Kevin 2018-09-13 15:03 ` Jean-Philippe Brucker 2018-09-13 16:55 ` Raj, Ashok 2018-09-13 16:55 ` Raj, Ashok 2018-09-14 14:39 ` Jean-Philippe Brucker [not found] ` <03d496b0-84c2-b3ca-5be5-d4540c6d8ec7-5wv7dgnIgG8@public.gmane.org> 2018-09-14 0:39 ` Tian, Kevin 2018-09-14 14:40 ` Jean-Philippe Brucker 2018-09-14 14:40 ` Jean-Philippe Brucker 2018-09-14 21:04 ` Jacob Pan 2018-09-18 15:46 ` Jean-Philippe Brucker 2018-09-19 2:22 ` Tian, Kevin 2018-09-20 15:53 ` Jacob Pan 2018-09-14 2:46 ` Lu Baolu 2018-09-14 2:53 ` Tian, Kevin 2018-09-14 2:53 ` 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=20180830040922.30426-3-baolu.lu@linux.intel.com \ --to=baolu.lu@linux.intel.com \ --cc=alex.williamson@redhat.com \ --cc=ashok.raj@intel.com \ --cc=dwmw2@infradead.org \ --cc=iommu@lists.linux-foundation.org \ --cc=jacob.jun.pan@intel.com \ --cc=jacob.jun.pan@linux.intel.com \ --cc=jean-philippe.brucker@arm.com \ --cc=joro@8bytes.org \ --cc=kevin.tian@intel.com \ --cc=kvm@vger.kernel.org \ --cc=kwankhede@nvidia.com \ --cc=linux-kernel@vger.kernel.org \ --cc=peterx@redhat.com \ --cc=sanjay.k.kumar@intel.com \ --cc=tiwei.bie@intel.com \ --cc=yi.l.liu@intel.com \ --cc=yi.y.sun@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: linkBe 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.