bio: add allocation cache abstraction
authorJens Axboe <axboe@kernel.dk>
Mon, 8 Mar 2021 18:37:47 +0000 (11:37 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 10 Aug 2021 19:56:35 +0000 (13:56 -0600)
commitb3879316c882acb786d45831745b697aa66a5885
treed400d0ef56951651fd881932560530dcc74941b3
parent111671659c966c39500440b8a0a6bbc2fb2e4a91
bio: add allocation cache abstraction

Add a set of helpers that can encapsulate bio allocations, reusing them
as needed. Caller must provide the necessary locking, if any is needed.
The primary intended use case is polled IO from io_uring, which will not
need any external locking.

Very simple - keeps a count of bio's in the cache, and maintains a max
of 512 with a slack of 64. If we get above max + slack, we drop slack
number of bio's.

The cache is intended to be per-task, and the user will need to supply
the storage for it. As io_uring will be the only user right now, provide
a hook that returns the cache there. Stub it out as NULL initially.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio.c
include/linux/bio.h