All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/11] PCI: Fix ATS deadlock
@ 2015-07-21  0:13 Bjorn Helgaas
  2015-07-21  0:13 ` [PATCH v2 01/11] iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth Bjorn Helgaas
                   ` (9 more replies)
  0 siblings, 10 replies; 37+ messages in thread
From: Bjorn Helgaas @ 2015-07-21  0:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, David Woodhouse; +Cc: iommu, Gregor Dick

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 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 |   26 +++++----
 drivers/pci/ats.c           |  131 +++++++++++++++----------------------------
 drivers/pci/probe.c         |    3 +
 include/linux/pci-ats.h     |   49 ----------------
 include/linux/pci.h         |   18 ++++++
 5 files changed, 82 insertions(+), 145 deletions(-)

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2015-08-10 22:54 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-21  0:13 [PATCH v2 00/11] PCI: Fix ATS deadlock Bjorn Helgaas
2015-07-21  0:13 ` [PATCH v2 01/11] iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth Bjorn Helgaas
     [not found]   ` <20150721001357.28145.83631.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-07-27 13:08     ` Joerg Roedel
2015-07-27 13:08       ` Joerg Roedel
2015-07-27 22:54       ` Bjorn Helgaas
     [not found]         ` <20150727225453.GB24401-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-07-28  7:14           ` Joerg Roedel
2015-07-28  7:14             ` Joerg Roedel
2015-07-21  0:14 ` [PATCH v2 02/11] PCI: Allocate ATS struct during enumeration Bjorn Helgaas
2015-07-27 12:40   ` Joerg Roedel
2015-07-21  0:14 ` [PATCH v2 03/11] PCI: Embed ATS info directly into struct pci_dev Bjorn Helgaas
     [not found]   ` <20150721001413.28145.38246.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-07-27 12:45     ` Joerg Roedel
2015-07-27 12:45       ` Joerg Roedel
     [not found] ` <20150721001243.28145.81610.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-07-21  0:14   ` [PATCH v2 04/11] PCI: Reduce size of ATS structure elements Bjorn Helgaas
2015-07-21  0:14     ` Bjorn Helgaas
2015-07-21  0:14   ` [PATCH v2 07/11] PCI: Use pci_physfn() rather than looking up physfn by hand Bjorn Helgaas
2015-07-21  0:14     ` Bjorn Helgaas
2015-07-21  0:14   ` [PATCH v2 08/11] PCI: Clean up ATS error handling Bjorn Helgaas
2015-07-21  0:14     ` Bjorn Helgaas
2015-07-27 12:56     ` Joerg Roedel
2015-07-29 16:07   ` [PATCH v2 00/11] PCI: Fix ATS deadlock Bjorn Helgaas
2015-07-29 16:07     ` Bjorn Helgaas
2015-08-06 16:03     ` Yinghai Lu
2015-08-07  1:06       ` Yinghai Lu
2015-08-10 17:33         ` Bjorn Helgaas
2015-08-10 22:54           ` Yinghai Lu
2015-07-21  0:14 ` [PATCH v2 05/11] PCI: Rationalize pci_ats_queue_depth() error checking Bjorn Helgaas
2015-07-21  0:14 ` [PATCH v2 06/11] PCI: Inline the ATS setup code into pci_ats_init() Bjorn Helgaas
2015-07-21  0:15 ` [PATCH v2 09/11] PCI: Move ATS declarations to linux/pci.h so they're all together Bjorn Helgaas
2015-07-21  0:15 ` [PATCH v2 10/11] PCI: Stop caching ATS Invalidate Queue Depth Bjorn Helgaas
2015-07-27 12:57   ` Joerg Roedel
2015-07-27 14:00   ` Don Dutile
2015-07-27 22:27     ` Bjorn Helgaas
2015-07-27 23:13       ` Don Dutile
2015-07-21  0:15 ` [PATCH v2 11/11] PCI: Remove pci_ats_enabled() Bjorn Helgaas
     [not found]   ` <20150721001519.28145.73458.stgit-1RhO1Y9PlrlHTL0Zs8A6p/gx64E7kk8eUsxypvmhUTTZJqsBc5GL+g@public.gmane.org>
2015-07-27 12:58     ` Joerg Roedel
2015-07-27 12:58       ` Joerg Roedel
2015-07-28 15:16 ` [PATCH v2 00/11] PCI: Fix ATS deadlock Joerg Roedel

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.