2019-10-28 23:39:33

by Eric Dumazet

[permalink] [raw]
Subject: [PATCH] dma-debug: add a schedule point in debug_dma_dump_mappings()

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 <[email protected]>
Cc: Corentin Labbe <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Marek Szyprowski <[email protected]>
---
kernel/dma/debug.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/dma/debug.c b/kernel/dma/debug.c
index 099002d84f466af0a8e421d035ac8eb119e08bd8..4ad74f5987ea9e95f9bb5e2d1592254e367d24fb 100644
--- a/kernel/dma/debug.c
+++ b/kernel/dma/debug.c
@@ -420,6 +420,7 @@ void debug_dma_dump_mappings(struct device *dev)
}

spin_unlock_irqrestore(&bucket->lock, flags);
+ cond_resched();
}
}

--
2.24.0.rc0.303.g954a862665-goog


2019-10-30 19:08:24

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] dma-debug: add a schedule point in debug_dma_dump_mappings()

Thanks,

applied to the dma-mapping for-next tree.