linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] blk-mq: introduce new queue attribute asyc_dpeth
@ 2025-08-14  3:35 Yu Kuai
  2025-08-14  3:35 ` [PATCH 01/16] blk-mq-sched: add new parameter nr_requests in blk_mq_alloc_sched_tags() Yu Kuai
                   ` (16 more replies)
  0 siblings, 17 replies; 30+ messages in thread
From: Yu Kuai @ 2025-08-14  3:35 UTC (permalink / raw)
  To: axboe, yukuai3, bvanassche, nilay, hare, ming.lei
  Cc: linux-block, linux-kernel, yukuai1, yi.zhang, yangerkun,
	johnny.chenyi

From: Yu Kuai <yukuai3@huawei.com>

Backgroud and motivation:

At first, we test a performance regression from 5.10 to 6.6 in
downstream kernel(described in patch 13), the regression is related to
async_depth in mq-dealine.

While trying to fix this regression, Bart suggests add a new attribute
to request_queue, and I think this is a good idea because all elevators
have similar logical, however only mq-deadline allow user to configure
async_depth. And this is patch 9-16, where the performance problem is
fixed in patch 13;

Because async_depth is related to nr_requests, while reviewing related
code, patch 2-7 are cleanups and fixes to nr_reqeusts.

I was planning to send this set for the next merge window, however,
during test I found the last block pr(6.17-rc1) introduce a regression
if nr_reqeusts grows, exit elevator will panic, and I fix this by
patch 1,8.

So I send this set for now, and hope we can consider it for this merge
window. If not, I'll have to rework the whole set and send the second
kernel panic regression first.

Yu Kuai (16):
  blk-mq-sched: add new parameter nr_requests in
    blk_mq_alloc_sched_tags()
  blk-mq: remove useless checking from queue_requests_store()
  blk-mq: remove useless checkings from blk_mq_update_nr_requests()
  blk-mq: check invalid nr_requests in queue_requests_store()
  blk-mq: fix elevator depth_updated method
  blk-mq: cleanup shared tags case in blk_mq_update_nr_requests()
  blk-mq: split bitmap grow and resize case in
    blk_mq_update_nr_requests()
  blk-mq: fix blk_mq_tags double free while nr_requests grown
  block: convert nr_requests to unsigned int
  blk-mq-sched: unify elevators checking for async requests
  blk-mq: add a new queue sysfs attribute async_depth
  kyber: covert to use request_queue->async_depth
  mq-deadline: covert to use request_queue->async_depth
  block, bfq: convert to use request_queue->async_depth
  blk-mq: fix stale nr_requests documentation
  blk-mq: add documentation for new queue attribute async_dpeth

 Documentation/ABI/stable/sysfs-block | 24 ++++---
 block/bfq-iosched.c                  | 64 +++++++------------
 block/blk-core.c                     |  1 +
 block/blk-mq-sched.c                 | 14 +++--
 block/blk-mq-sched.h                 | 18 +++++-
 block/blk-mq-tag.c                   | 23 +------
 block/blk-mq.c                       | 93 +++++++++++++++++-----------
 block/blk-mq.h                       |  2 +-
 block/blk-sysfs.c                    | 63 ++++++++++++++++++-
 block/elevator.c                     |  3 +-
 block/elevator.h                     |  2 +-
 block/kyber-iosched.c                | 40 ++----------
 block/mq-deadline.c                  | 55 ++--------------
 include/linux/blkdev.h               |  3 +-
 14 files changed, 194 insertions(+), 211 deletions(-)

-- 
2.39.2


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

end of thread, other threads:[~2025-08-15 13:36 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-14  3:35 [PATCH 00/16] blk-mq: introduce new queue attribute asyc_dpeth Yu Kuai
2025-08-14  3:35 ` [PATCH 01/16] blk-mq-sched: add new parameter nr_requests in blk_mq_alloc_sched_tags() Yu Kuai
2025-08-14  8:16   ` Ming Lei
2025-08-14  8:55     ` Yu Kuai
2025-08-14  3:35 ` [PATCH 02/16] blk-mq: remove useless checking from queue_requests_store() Yu Kuai
2025-08-14  3:35 ` [PATCH 03/16] blk-mq: remove useless checkings from blk_mq_update_nr_requests() Yu Kuai
2025-08-14 12:23   ` Nilay Shroff
2025-08-15  1:32     ` Yu Kuai
2025-08-15 11:59       ` Nilay Shroff
2025-08-15 13:35         ` Ming Lei
2025-08-14  3:35 ` [PATCH 04/16] blk-mq: check invalid nr_requests in queue_requests_store() Yu Kuai
2025-08-14  3:35 ` [PATCH 05/16] blk-mq: fix elevator depth_updated method Yu Kuai
2025-08-14  3:35 ` [PATCH 06/16] blk-mq: cleanup shared tags case in blk_mq_update_nr_requests() Yu Kuai
2025-08-14  3:35 ` [PATCH 07/16] blk-mq: split bitmap grow and resize " Yu Kuai
2025-08-14  3:35 ` [PATCH 08/16] blk-mq: fix blk_mq_tags double free while nr_requests grown Yu Kuai
2025-08-14  8:20   ` Ming Lei
2025-08-14 12:15   ` Nilay Shroff
2025-08-15  1:54     ` Yu Kuai
2025-08-14  3:35 ` [PATCH 09/16] block: convert nr_requests to unsigned int Yu Kuai
2025-08-14  3:35 ` [PATCH 10/16] blk-mq-sched: unify elevators checking for async requests Yu Kuai
2025-08-14  3:35 ` [PATCH 11/16] blk-mq: add a new queue sysfs attribute async_depth Yu Kuai
2025-08-14  3:35 ` [PATCH 12/16] kyber: covert to use request_queue->async_depth Yu Kuai
2025-08-14  3:35 ` [PATCH 13/16] mq-deadline: " Yu Kuai
2025-08-14  3:35 ` [PATCH 14/16] block, bfq: convert " Yu Kuai
2025-08-14  3:35 ` [PATCH 15/16] blk-mq: fix stale nr_requests documentation Yu Kuai
2025-08-14  3:35 ` [PATCH 16/16] blk-mq: add documentation for new queue attribute async_dpeth Yu Kuai
2025-08-14  7:54 ` [PATCH 00/16] blk-mq: introduce new queue attribute asyc_dpeth Ming Lei
2025-08-14  8:22   ` Yu Kuai
2025-08-14  8:27     ` Ming Lei
2025-08-14  8:57       ` Yu Kuai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).