From: Keith Busch <kbusch@meta.com>
To: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
Matthew Wilcox <willy@infradead.org>
Cc: Tony Battersby <tonyb@cybernetics.com>,
Kernel Team <kernel-team@meta.com>,
Keith Busch <kbusch@kernel.org>
Subject: [PATCHv2 00/11] dmapool enhancements
Date: Fri, 16 Dec 2022 12:16:14 -0800 [thread overview]
Message-ID: <20221216201625.2362737-1-kbusch@meta.com> (raw)
From: Keith Busch <kbusch@kernel.org>
The time spent in dma_pool alloc/free goes up linearly as the number of
pages backing the pool increases. We can reduce this to constant time
with some minor changes to how free pages are tracked.
Changes since previous version:
Fixed dmapool_test to use appropriate dma_op accessors
Fixed up comment in dmapool about the data structures
Fixed dma pool boundary checks when initializing the pool
And since I mess up the boundary checks for odd alignment, I updated
dmapool_test allow setting arbitrary alignment and boundary to catch
the same case that failed in the previous version, reported here:
https://lore.kernel.org/oe-lkp/202212112301.ad0819f7-oliver.sang@intel.com/
Keith Busch (7):
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
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 | 356 ++++++++++++++++++++++------------------------
mm/dmapool_test.c | 146 +++++++++++++++++++
4 files changed, 324 insertions(+), 188 deletions(-)
create mode 100644 mm/dmapool_test.c
--
2.30.2
next reply other threads:[~2022-12-16 20:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-16 20:16 Keith Busch [this message]
2022-12-16 20:16 ` [PATCHv2 01/11] dmapool: add alloc/free performance test Keith Busch
2022-12-16 20:16 ` [PATCHv2 02/11] dmapool: remove checks for dev == NULL Keith Busch
2022-12-23 16:27 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 03/11] dmapool: use sysfs_emit() instead of scnprintf() Keith Busch
2022-12-23 16:28 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 04/11] dmapool: cleanup integer types Keith Busch
2022-12-23 16:29 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 05/11] dmapool: speedup DMAPOOL_DEBUG with init_on_alloc Keith Busch
2022-12-23 16:29 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 06/11] dmapool: move debug code to own functions Keith Busch
2022-12-23 16:31 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 07/11] dmapool: rearrange page alloc failure handling Keith Busch
2022-12-23 16:31 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 08/11] dmapool: consolidate page initialization Keith Busch
2022-12-23 16:35 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 09/11] dmapool: simplify freeing Keith Busch
2022-12-23 16:38 ` Christoph Hellwig
2022-12-27 20:21 ` Keith Busch
2022-12-16 20:16 ` [PATCHv2 10/11] dmapool: don't memset on free twice Keith Busch
2022-12-23 16:39 ` Christoph Hellwig
2022-12-16 20:16 ` [PATCHv2 11/11] dmapool: link blocks across pages Keith Busch
2022-12-17 2:39 ` kernel test robot
2022-12-17 3:49 ` kernel test robot
2022-12-23 16:58 ` Christoph Hellwig
2022-12-23 17:08 ` Tony Battersby
2022-12-23 17:15 ` Christoph Hellwig
2022-12-24 14:55 ` Keith Busch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221216201625.2362737-1-kbusch@meta.com \
--to=kbusch@meta.com \
--cc=kbusch@kernel.org \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=tonyb@cybernetics.com \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox