Skip to content

Various block optimizations

Jens Axboe linux-block 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest posting 2/26 patches 6 repliesIn review
  2. v4 posting 1/21 patch 0 repliesSuperseded
  3. v2 posting 2/211 patches 15 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v2 posting 1/211 patches6 repliesSuperseded
v16 patches16 repliesSuperseded

Changes in v4 from the cover letter

- Remove ->poll_queue() from nvme-fc
- Fold __nvme_rdma_recv_done() and nvme_rdma_recv_done()
- Drop merged patches
- Merge __blk_mq_poll() and blk_mq_poll()
- Add patch to never redirect polled completions

Patches in v4 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6blk-mq: when polling for IO, look for any completionblock/blk-core.c block/blk-mq.c drivers/nvme/host/pci.c +2 more+60 -682 replies
2/6blk-mq: remove 'tag' parameter from mq_ops->poll()block/blk-mq.c drivers/nvme/host/pci.c drivers/nvme/host/rdma.c +1 more+7 -70 replies
3/6nvme: remove opportunistic polling from bdev targetdrivers/nvme/target/io-cmd-bdev.c+0 -21 reply
4/6block: make blk_poll() take a parameter on whether to spin or notblock/blk-core.c block/blk-mq.c drivers/nvme/host/multipath.c +5 more+14 -142 replies
5/6blk-mq: ensure mq_ops ->poll() is entered at least onceblock/blk-mq.c+2 -20 replies
6/6blk-mq: never redirect polled IO completionsblock/blk-mq.c+6 -11 reply

Reviews trailers per patch

4 of 6 patches have a Reviewed-by or Acked-by.

PatchChristoph Hellwig
1/6
2/6R-b
3/6R-b
4/6
5/6R-b
6/6R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCHSET v4 0/6] Various block optimizations

Some of these are optimizations, the latter part is prep work for supporting polling with aio.

Patches against my for-4.21/block branch. These patches can also be found in my mq-perf branch, though there are other patches sitting on top of this series (notably aio polling, as mentioned).

Changes since v3:

- Remove ->poll_queue() from nvme-fc
- Fold __nvme_rdma_recv_done() and nvme_rdma_recv_done()
- Drop merged patches
- Merge __blk_mq_poll() and blk_mq_poll()
- Add patch to never redirect polled completions

Changes since v2:

- Include polled swap IO in the poll optimizations
- Get rid of unnecessary write barrier for DIO wakeup
- Fix a potential stall if need_resched() was set and preempt wasn't enabled
- Provide separate mq_ops for NVMe with poll queues
- Drop q->mq_ops patch
- Rebase on top of for-4.21/block

Changes since v1:

- Improve nvme irq disabling for polled IO
- Fix barriers in the ordered wakeup for polled O_DIRECT
- Add patch to allow polling to find any command that is done
- Add patch to control whether polling spins or not
- Have async O_DIRECT mark a bio as pollable
- Don't plug for polling

Signature · 1 line
Jens Axboe