Linux block layer
 help / color / mirror / Atom feed
From: Kaitao Cheng <kaitao.cheng@linux.dev>
To: Bart Van Assche <bvanassche@acm.org>,
	Jens Axboe <axboe@kernel.dk>, Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Randy Dunlap <rdunlap@infradead.org>
Cc: linux-block@vger.kernel.org, Kaitao Cheng <chengkaitao@kylinos.cn>
Subject: Re: [PATCH] blk-mq: add direct dispatch support for mq-deadline
Date: Sun, 18 Oct 2026 17:09:24 +0800	[thread overview]
Message-ID: <a2be62ea-f062-4d68-b16d-8e26ab347adf@linux.dev> (raw)
In-Reply-To: <307b05d7-16dd-493a-a10a-d5ac50ec219b@acm.org>



在 2026/10/17 22:19, Bart Van Assche 写道:
> On 10/17/26 3:54 AM, Kaitao Cheng wrote:
>> Bandwidth in MiB/s:
>>
>>    Workload        none    mq-deadline    my-patch
>>    jobs1-4k        1209           1047        1174
>>    jobs10-4k       2458            946        2349
>>    jobs1-32k       2568           2565        2562
> 
> Can I conclude from the above numbers that "none" performs
> better than "mq-deadline" and hence that it's better not to use
> and I/O scheduler rather than to complicate the mq-deadline source
> code?

During testing, I found that the none scheduler does not outperform
mq-deadline in every scenario. There seems to be a tendency for none
to perform better on faster devices, but this is not always the case.
My guess is that effective request merging in mq-deadline improves
performance by reducing the number of requests dispatched to the driver,
while lock contention among multiple threads reduces its performance.
These competing effects make it difficult for users to choose a suitable
I/O scheduler, or decide whether to use none. This patch could
substantially broaden the range of workloads for which mq-deadline is
suitable.

Some users may need scheduler features such as deadlines or priorities,
or may want to add instrumentation through a scheduler. These requirements
may lead them to choose mq-deadline or another custom scheduler. In such
cases, this patch could provide substantial performance improvements.

This approach could potentially benefit any I/O scheduler. With the
skip_request callback, a scheduler can choose whether to sort all requests
unconditionally or only when the device is congested. I suspect that
adapting BFQ to use this callback could provide similar benefits, and I
can test this if there is interest.

The hardware available to me limits the types of storage devices I can
test. But please still let me know if any additional tests are needed,
and I will do my best to run them.

> I have removed the linux-doc and linux-kernel mailing lists from the
> Cc-list. Block layer patches should be posted on the linux-block mailing
> list only.

Could the changes to Documentation/block/deadline-iosched.rst be why
these mailing lists were added to Cc?

> Thanks,
> 
> Bart.

-- 
Thanks
Kaitao Cheng


      reply	other threads:[~2026-10-18  9:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-17 10:54 [PATCH] blk-mq: add direct dispatch support for mq-deadline Kaitao Cheng
2026-10-17 14:19 ` Bart Van Assche
2026-10-18  9:09   ` Kaitao Cheng [this message]

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=a2be62ea-f062-4d68-b16d-8e26ab347adf@linux.dev \
    --to=kaitao.cheng@linux.dev \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=chengkaitao@kylinos.cn \
    --cc=corbet@lwn.net \
    --cc=linux-block@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=skhan@linuxfoundation.org \
    /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