mempool_alloc_bulk and various mempool improvements

From: Christoph Hellwig

Date: Tue Nov 11 2025 - 08:53:09 EST


Hi all,

this series adds a bulk version of mempool_alloc that makes allocating
multiple objects deadlock safe.

The initial users is the blk-crypto-fallback code:

https://lore.kernel.org/linux-block/20251031093517.1603379-1-hch@xxxxxx/

with which v1 was posted, but I also have a few other users in mind.

Changes since v1:
- fix build for !CONFIG_FAULT_INJECTION
- improve the kerneldoc comments further
- refactor the code so that the mempool_alloc fastpath does not
have to deal with arrays
- don't support !__GFP_DIRECT_RECLAIM for bulk allocations
- do poll allocations even if not all elements are available
- s/elem/elems/
- use a separate failure injection know for the bulk allocator

diffstat:
include/linux/fault-inject.h | 8 -
include/linux/mempool.h | 7
mm/mempool.c | 341 ++++++++++++++++++++++++++++---------------
3 files changed, 240 insertions(+), 116 deletions(-)