All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHSET v2 0/9] Batched completions
@ 2021-10-13 16:54 Jens Axboe
  2021-10-13 16:54 ` [PATCH 1/9] block: define io_batch structure Jens Axboe
                   ` (8 more replies)
  0 siblings, 9 replies; 34+ messages in thread
From: Jens Axboe @ 2021-10-13 16:54 UTC (permalink / raw)
  To: linux-block

Hi,

We now do decent batching of allocations for submit, but we still
complete requests individually. This costs a lot of CPU cycles.

This patchset adds support for collecting requests for completion,
and then completing them as a batch. This includes things like freeing
a batch of tags.

A few rough edges in this patchset, but sending it out for comments
so I can whip it into an upstreamable thing. As per patch 8, the
wins here are pretty massive - 8-10% improvement in the peak IOPS.

Changes since v1:
- Rename ib -> iob for the batch
- Add rq_list helpers
- Change array -> tags_array naming
- Drop nvme disposition patch
- Rework the batched completion on the nvme side to be a lot cleaner
- Add DEFINE_IO_BATCH helper
- Move batch into blkdev.h instead of in fs.h

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2021-10-16 14:34 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 16:54 [PATCHSET v2 0/9] Batched completions Jens Axboe
2021-10-13 16:54 ` [PATCH 1/9] block: define io_batch structure Jens Axboe
2021-10-14  5:45   ` Christoph Hellwig
2021-10-14 15:50     ` Jens Axboe
2021-10-14 16:06       ` Christoph Hellwig
2021-10-14 18:14         ` Jens Axboe
2021-10-13 16:54 ` [PATCH 2/9] block: add a struct io_batch argument to fops->iopoll() Jens Axboe
2021-10-13 16:54 ` [PATCH 3/9] sbitmap: add helper to clear a batch of tags Jens Axboe
2021-10-13 16:54 ` [PATCH 4/9] sbitmap: test bit before calling test_and_set_bit() Jens Axboe
2021-10-14  7:20   ` Hannes Reinecke
2021-10-14 13:01     ` Jens Axboe
2021-10-14 18:41   ` Bart Van Assche
2021-10-13 16:54 ` [PATCH 5/9] block: add support for blk_mq_end_request_batch() Jens Axboe
2021-10-14  7:32   ` Christoph Hellwig
2021-10-14 15:27     ` Jens Axboe
2021-10-13 16:54 ` [PATCH 6/9] nvme: add support for batched completion of polled IO Jens Axboe
2021-10-14  7:43   ` Christoph Hellwig
2021-10-14 15:30     ` Jens Axboe
2021-10-14 15:34       ` Jens Axboe
2021-10-14 16:07       ` Christoph Hellwig
2021-10-14 16:11         ` Jens Axboe
2021-10-13 16:54 ` [PATCH 7/9] block: assign batch completion handler in blk_poll() Jens Axboe
2021-10-14  7:48   ` Christoph Hellwig
2021-10-14 15:43     ` Jens Axboe
2021-10-13 16:54 ` [PATCH 8/9] io_uring: utilize the io_batch infrastructure for more efficient polled IO Jens Axboe
2021-10-14  8:03   ` Christoph Hellwig
2021-10-14 15:45     ` Jens Axboe
2021-10-14 16:08       ` Christoph Hellwig
2021-10-14 18:14         ` Jens Axboe
2021-10-16  4:29           ` Christoph Hellwig
2021-10-16 14:33             ` Jens Axboe
2021-10-13 16:54 ` [PATCH 9/9] nvme: wire up completion batching for the IRQ path Jens Axboe
2021-10-14  7:53   ` Christoph Hellwig
2021-10-14 15:49     ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.