aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-sysfs.c
diff options
context:
space:
mode:
authorJiang Biao <benbjiang@tencent.com>2020-08-24 13:20:25 +0800
committerBjorn Helgaas <bhelgaas@google.com>2020-09-17 12:21:46 -0500
commit2ce02a864ac1a2bf99baeb20d38100d2cc413ac2 (patch)
treec7215e9b59586a26ff2b58f754a0fbfe0af87363 /drivers/pci/pci-sysfs.c
parentPCI/ACPI: Tone down missing MCFG message (diff)
downloadlinux-dev-2ce02a864ac1a2bf99baeb20d38100d2cc413ac2.tar.xz
linux-dev-2ce02a864ac1a2bf99baeb20d38100d2cc413ac2.zip
PCI: Add schedule point in pci_read_config()
The PCI sysfs "config" file allows large reads, and the resulting PCI config reads can take several milliseconds to complete. Testing with the cyclictest [1] benchmark showed 5ms+ latencies. Add a schedule point in pci_read_config() to reduce the maximum latency. [1] https://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git/ [bhelgaas: commit log] Link: https://lore.kernel.org/r/20200824052025.48362-1-benbjiang@tencent.com Reported-by: Bin Lai <robinlai@tencent.com> Signed-off-by: Jiang Biao <benbjiang@tencent.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r--drivers/pci/pci-sysfs.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 6d78df981d41..3b9f63d3cad6 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -708,6 +708,7 @@ static ssize_t pci_read_config(struct file *filp, struct kobject *kobj,
data[off - init_off + 3] = (val >> 24) & 0xff;
off += 4;
size -= 4;
+ cond_resched();
}
if (size >= 2) {