From: Keith Busch <kbusch@xxxxxxxxxx> Time spent in dma_pool alloc/free increases linearly with the number of pages backing the pool. We can reduce this to constant time with minor changes to how free pages are tracked. Changes since v4: Added received reviews Applied comments from Christoph: Combined all debug code in one #ifdef block Fixed some whitespace Keith Busch (8): dmapool: add alloc/free performance test dmapool: move debug code to own functions dmapool: rearrange page alloc failure handling dmapool: consolidate page initialization dmapool: simplify freeing dmapool: don't memset on free twice dmapool: link blocks across pages dmapool: create/destroy cleanup Tony Battersby (4): dmapool: remove checks for dev == NULL dmapool: use sysfs_emit() instead of scnprintf() dmapool: cleanup integer types dmapool: speedup DMAPOOL_DEBUG with init_on_alloc mm/Kconfig | 9 ++ mm/Makefile | 1 + mm/dmapool.c | 402 ++++++++++++++++++++++------------------------ mm/dmapool_test.c | 147 +++++++++++++++++ 4 files changed, 350 insertions(+), 209 deletions(-) create mode 100644 mm/dmapool_test.c -- 2.30.2