]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
dma-debug: add a schedule point in debug_dma_dump_mappings()
authorEric Dumazet <edumazet@google.com>
Mon, 28 Oct 2019 21:56:46 +0000 (14:56 -0700)
committerKhalid Elmously <khalid.elmously@canonical.com>
Wed, 29 Jan 2020 04:47:27 +0000 (23:47 -0500)
BugLink: https://bugs.launchpad.net/bugs/1860602
[ Upstream commit 9ff6aa027dbb98755f0265695354f2dd07c0d1ce ]

debug_dma_dump_mappings() can take a lot of cpu cycles :

lpk43:/# time wc -l /sys/kernel/debug/dma-api/dump
163435 /sys/kernel/debug/dma-api/dump

real 0m0.463s
user 0m0.003s
sys 0m0.459s

Let's add a cond_resched() to avoid holding cpu for too long.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Corentin Labbe <clabbe@baylibre.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
lib/dma-debug.c

index 1b34d210452c5aba703aea04e648dd6ed56fd576..35f843d1123099134215ba4aa5deab2614d37d1d 100644 (file)
@@ -437,6 +437,7 @@ void debug_dma_dump_mappings(struct device *dev)
                }
 
                spin_unlock_irqrestore(&bucket->lock, flags);
+               cond_resched();
        }
 }
 EXPORT_SYMBOL(debug_dma_dump_mappings);