From 2ce02a864ac1a2bf99baeb20d38100d2cc413ac2 Mon Sep 17 00:00:00 2001 From: Jiang Biao Date: Mon, 24 Aug 2020 13:20:25 +0800 Subject: 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 Signed-off-by: Jiang Biao Signed-off-by: Bjorn Helgaas --- drivers/pci/pci-sysfs.c | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/pci/pci-sysfs.c') 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) { -- cgit v1.2.1