From: Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
To: linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Joerg Roedel <jroedel-l3A5Bk7waGM@public.gmane.org>,
David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Cc: Yinghai Lu <yinghai-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Gregor Dick <gdick-s/n/eUQHGBpZroRs9YW3xA@public.gmane.org>
Subject: Re: [PATCH v3 00/11] PCI: Fix ATS deadlock
Date: Fri, 14 Aug 2015 09:40:57 -0500 [thread overview]
Message-ID: <20150814144057.GB26431@google.com> (raw)
In-Reply-To: <20150811154525.21078.85310.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
On Tue, Aug 11, 2015 at 10:50:59AM -0500, Bjorn Helgaas wrote:
> Gregor reported a deadlock [1] when enabling a VF that supports ATS.
> This series is intended to fix that. The second patch should be enough to
> fix the deadlock; the rest are simplification and cleanup.
>
> These are based on v4.2-rc2.
>
> [1] http://permalink.gmane.org/gmane.linux.kernel.iommu/9433
>
> Changes between v2 and v3:
> - Initialize info->ats.enabled, qdep in intel-iommu.c (Yinghai)
> - Use "u8 enabled:1", not "int enabled:1" in intel-iommu.c state
> - WARN_ON() if enabling ATS when already enabled (Joerg)
> - Return -EBUSY, not -EINVAL if enabling ATS when already enabled
> - Added Reviewed-by from Joerg
>
> Changes between v1 and v2:
> - Remove use of pci_ats_enabled() (intel-iommu.c)
> - Call pci_ats_queue_depth() only once per device and cache result
> (intel-iommu.c)
> - Remove pci_ats_enabled() interface
> - Stop caching queue depth in pci_dev to save space
> - Add PF refcount of how many associated VFs have ATS enabled
> - Add comment that ATS must be enabled on PF before on VFs
> - Require ATS to be disabled on all VFs and PF before changing STU
>
> ---
>
> Bjorn Helgaas (11):
> iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth
> PCI: Allocate ATS struct during enumeration
> PCI: Embed ATS info directly into struct pci_dev
> PCI: Reduce size of ATS structure elements
> PCI: Rationalize pci_ats_queue_depth() error checking
> PCI: Inline the ATS setup code into pci_ats_init()
> PCI: Use pci_physfn() rather than looking up physfn by hand
> PCI: Clean up ATS error handling
> PCI: Move ATS declarations to linux/pci.h so they're all together
> PCI: Stop caching ATS Invalidate Queue Depth
> PCI: Remove pci_ats_enabled()
>
>
> drivers/iommu/intel-iommu.c | 28 ++++++---
> drivers/pci/ats.c | 132 +++++++++++++++----------------------------
> drivers/pci/probe.c | 3 +
> include/linux/pci-ats.h | 49 ----------------
> include/linux/pci.h | 18 ++++++
> 5 files changed, 85 insertions(+), 145 deletions(-)
Applied with the tweaks Joerg suggested and his Ack/Reviewed-by to
pci/iommu for v4.3. Thanks for all your reviewing and testing!
prev parent reply other threads:[~2015-08-14 14:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-11 15:50 [PATCH v3 00/11] PCI: Fix ATS deadlock Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 01/11] iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth Bjorn Helgaas
2015-08-13 7:53 ` Joerg Roedel
2015-08-11 15:51 ` [PATCH v3 02/11] PCI: Allocate ATS struct during enumeration Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 03/11] PCI: Embed ATS info directly into struct pci_dev Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 04/11] PCI: Reduce size of ATS structure elements Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 05/11] PCI: Rationalize pci_ats_queue_depth() error checking Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 06/11] PCI: Inline the ATS setup code into pci_ats_init() Bjorn Helgaas
2015-08-11 15:51 ` [PATCH v3 07/11] PCI: Use pci_physfn() rather than looking up physfn by hand Bjorn Helgaas
2015-08-11 15:52 ` [PATCH v3 08/11] PCI: Clean up ATS error handling Bjorn Helgaas
2015-08-13 7:57 ` Joerg Roedel
2015-08-11 15:52 ` [PATCH v3 09/11] PCI: Move ATS declarations to linux/pci.h so they're all together Bjorn Helgaas
2015-08-11 15:52 ` [PATCH v3 10/11] PCI: Stop caching ATS Invalidate Queue Depth Bjorn Helgaas
[not found] ` <20150811154525.21078.85310.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-08-11 15:52 ` [PATCH v3 11/11] PCI: Remove pci_ats_enabled() Bjorn Helgaas
2015-08-14 14:40 ` Bjorn Helgaas [this message]
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=20150814144057.GB26431@google.com \
--to=bhelgaas-hpiqsd4aklfqt0dzr+alfa@public.gmane.org \
--cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=gdick-s/n/eUQHGBpZroRs9YW3xA@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=jroedel-l3A5Bk7waGM@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=yinghai-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox