Home
last modified time | relevance | path

Searched hist:"9672 b0d43782047b1825a96bafee1b6aefa35bc2" (Results 1 – 2 of 2) sorted by relevance

/linux/include/linux/
H A Dsbitmap.hdiff 9672b0d43782047b1825a96bafee1b6aefa35bc2 Sat Oct 09 21:02:23 CEST 2021 Jens Axboe <axboe@kernel.dk> sbitmap: add __sbitmap_queue_get_batch()

The block layer tag allocation batching still calls into sbitmap to get
each tag, but we can improve on that. Add __sbitmap_queue_get_batch(),
which returns a mask of tags all at once, along with an offset for
those tags.

An example return would be 0xff, where bits 0..7 are set, with
tag_offset == 128. The valid tags in this case would be 128..135.

A batch is specific to an individual sbitmap_map, hence it cannot be
larger than that. The requested number of tags is automatically reduced
to the max that can be satisfied with a single map.

On failure, 0 is returned. Caller should fall back to single tag
allocation at that point/

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/linux/lib/
H A Dsbitmap.cdiff 9672b0d43782047b1825a96bafee1b6aefa35bc2 Sat Oct 09 21:02:23 CEST 2021 Jens Axboe <axboe@kernel.dk> sbitmap: add __sbitmap_queue_get_batch()

The block layer tag allocation batching still calls into sbitmap to get
each tag, but we can improve on that. Add __sbitmap_queue_get_batch(),
which returns a mask of tags all at once, along with an offset for
those tags.

An example return would be 0xff, where bits 0..7 are set, with
tag_offset == 128. The valid tags in this case would be 128..135.

A batch is specific to an individual sbitmap_map, hence it cannot be
larger than that. The requested number of tags is automatically reduced
to the max that can be satisfied with a single map.

On failure, 0 is returned. Caller should fall back to single tag
allocation at that point/

Signed-off-by: Jens Axboe <axboe@kernel.dk>