public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: chengming.zhou@linux.dev
To: axboe@kernel.dk, hch@lst.de, ming.lei@redhat.com, bvanassche@acm.org
Cc: kbusch@kernel.org, mst@redhat.com,
	damien.lemoal@opensource.wdc.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, chengming.zhou@linux.dev,
	Chengming Zhou <zhouchengming@bytedance.com>
Subject: [PATCH v2 0/5] blk-mq: optimize queue_rqs() support
Date: Wed, 13 Sep 2023 15:16:11 +0000	[thread overview]
Message-ID: <20230913151616.3164338-1-chengming.zhou@linux.dev> (raw)

From: Chengming Zhou <zhouchengming@bytedance.com>

Changes in v2:
  - Drop the patch that fixes a potential race in request timeout
    from this series.
  - Rebased on the newest block/for-next branch.

The current queue_rqs() support has limitation that it can't work on
shared tags queue, which is resolved by patch 1-3. We move the account
of active requests to where we really allocate the driver tag.

This is clearer and matched with the unaccount side which now happen
when we put the driver tag. And we can remove RQF_MQ_INFLIGHT, which
was used to avoid double account problem of flush request.

Another problem is that the driver that support queue_rqs() has to
set inflight request table by itself, which is resolved in patch 4.

The last patch add queue_rqs() support for null_blk, which showed
3.6% IOPS improvement in fio/t/io_uring benchmark on my test VM.
And we also use it for testing queue_rqs() on shared tags queue.

Thanks for review!

Chengming Zhou (5):
  blk-mq: account active requests when get driver tag
  blk-mq: remove RQF_MQ_INFLIGHT
  blk-mq: support batched queue_rqs() on shared tags queue
  blk-mq: update driver tags request table when start request
  block/null_blk: add queue_rqs() support

 block/blk-flush.c             | 11 ++-----
 block/blk-mq-debugfs.c        |  1 -
 block/blk-mq.c                | 45 +++++++++------------------
 block/blk-mq.h                | 57 ++++++++++++++++++++++++-----------
 drivers/block/null_blk/main.c | 20 ++++++++++++
 drivers/block/virtio_blk.c    |  2 --
 drivers/nvme/host/pci.c       |  1 -
 include/linux/blk-mq.h        |  2 --
 8 files changed, 76 insertions(+), 63 deletions(-)

-- 
2.40.1


             reply	other threads:[~2023-09-13 15:17 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 15:16 chengming.zhou [this message]
2023-09-13 15:16 ` [PATCH v2 1/5] blk-mq: account active requests when get driver tag chengming.zhou
2023-09-16  9:23   ` Ming Lei
2023-09-16  9:32     ` Chengming Zhou
2023-09-16 12:39   ` Ming Lei
2023-09-13 15:16 ` [PATCH v2 2/5] blk-mq: remove RQF_MQ_INFLIGHT chengming.zhou
2023-09-16 12:40   ` Ming Lei
2023-09-13 15:16 ` [PATCH v2 3/5] blk-mq: support batched queue_rqs() on shared tags queue chengming.zhou
2023-09-22  8:36   ` Ming Lei
2023-09-13 15:16 ` [PATCH v2 4/5] blk-mq: update driver tags request table when start request chengming.zhou
2023-09-22  8:49   ` Ming Lei
2023-09-13 15:16 ` [PATCH v2 5/5] block/null_blk: add queue_rqs() support chengming.zhou
2023-09-22  8:54   ` Ming Lei
2023-09-23  7:01     ` Chengming Zhou
2023-09-22 14:52 ` [PATCH v2 0/5] blk-mq: optimize " Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230913151616.3164338-1-chengming.zhou@linux.dev \
    --to=chengming.zhou@linux.dev \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=mst@redhat.com \
    --cc=zhouchengming@bytedance.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox