From: Jiang Biao Date: Mon, 24 Aug 2020 05:20:25 +0000 (+0800) Subject: PCI: Add schedule point in pci_read_config() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=2ce02a864ac1a2bf99baeb20d38100d2cc413ac2;p=linux.git 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 --- diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 6d78df981d41a..3b9f63d3cad61 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) {