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 v2: Added received reviews Applied suggestions from Christoph (removed inlines, use preferred conditional compiling style, minor changes in patch sequence, use kzalloc) Fixed printf formats caught by kernel test robot Added one extra cleanup patch at the end 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 | 371 ++++++++++++++++++++++------------------------ mm/dmapool_test.c | 147 ++++++++++++++++++ 4 files changed, 331 insertions(+), 197 deletions(-) create mode 100644 mm/dmapool_test.c -- 2.30.2