summaryrefslogtreecommitdiff
path: root/drivers/pci/host/Kconfig
diff options
context:
space:
mode:
authorJon Derrick <jonathan.derrick@intel.com>2016-11-12 02:08:45 +0300
committerBjorn Helgaas <helgaas@kernel.org>2016-12-07 21:17:27 +0300
commit3906b91844d603153c094f636205ec9aa5454b2f (patch)
treefed4912836567a492164807ed21ff02a7a625c6d /drivers/pci/host/Kconfig
parent5b23e8fa46ca037e0f61df919e8a08659c0e7640 (diff)
downloadlinux-3906b91844d603153c094f636205ec9aa5454b2f.tar.xz
PCI: vmd: Use SRCU as a local RCU to prevent delaying global RCU
SRCU lets synchronize_srcu() depend on VMD-local RCU primitives, preventing long delays from locking up RCU in other systems. VMD performs a synchronize when removing a device, but will hit all IRQ lists if the device uses all VMD vectors. This patch will not help VMD's RCU synchronization, but will isolate the read side delays to the VMD subsystem. Additionally, the use of SRCU in VMD's ISR will keep it isolated from any other RCU waiters in the rest of the system. Tested using concurrent FIO and NVMe resets: [global] rw=read bs=4k direct=1 ioengine=libaio iodepth=32 norandommap timeout=300 runtime=1000000000 [nvme0] cpus_allowed=0-63 numjobs=8 filename=/dev/nvme0n1 [nvme1] cpus_allowed=0-63 numjobs=8 filename=/dev/nvme1n1 while (true) do for i in /sys/class/nvme/nvme*; do echo "Resetting ${i##*/}" echo 1 > $i/reset_controller; sleep 5 done; done Signed-off-by: Jon Derrick <jonathan.derrick@intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Keith Busch <keith.busch@intel.com>
Diffstat (limited to 'drivers/pci/host/Kconfig')
-rw-r--r--drivers/pci/host/Kconfig2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig
index d7e7c0a827c3..e020359b09bc 100644
--- a/drivers/pci/host/Kconfig
+++ b/drivers/pci/host/Kconfig
@@ -286,7 +286,7 @@ config PCIE_ROCKCHIP
4 slots.
config VMD
- depends on PCI_MSI && X86_64
+ depends on PCI_MSI && X86_64 && SRCU
tristate "Intel Volume Management Device Driver"
default N
---help---