On Thu, Aug 6, 2015 at 9:03 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Wed, Jul 29, 2015 at 9:07 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: >>> >>> 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() >> >> I applied these to a pci/iommu branch for v4.3. Let me know if you see any >> issues. > > looks like this branch causes hang on system with qlogic/emulex cards. > > exclude the branch, will make kernel work again. first patch has problem: 7b98d2d02887f8d422e05323241a5fa36b2a371e is the first bad commit commit 7b98d2d02887f8d422e05323241a5fa36b2a371e Author: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Date: Mon Jul 20 09:10:36 2015 -0500 iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth We check the ATS state (enabled/disabled) and fetch the PCI ATS Invalidate Queue Depth in performance-sensitive paths. It's easy to cache these, which removes dependencies on PCI. Remember the ATS enabled state. When enabling, read the queue depth once and cache it in the device_domain_info struct. This is similar to what amd_iommu.c does. Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> :040000 040000 e8597ffc4955b097ff3c80cbfa0e074c71761521 33b5491120a2aa89437b43d8020c7cce5339ab41 M drivers -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html