From: Jens Axboe <axboe@kernel.dk>
To: "yukuai (C)" <yukuai3@huawei.com>,
andriy.shevchenko@linux.intel.com, john.garry@huawei.com,
ming.lei@redhat.com
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
yi.zhang@huawei.com
Subject: Re: [PATCH -next RFC 1/6] blk-mq: add a new flag 'BLK_MQ_F_NO_TAG_PREEMPTION'
Date: Tue, 29 Mar 2022 19:20:35 -0600 [thread overview]
Message-ID: <5bafff4a-e3f8-82eb-f8e8-486c877518ad@kernel.dk> (raw)
In-Reply-To: <f83ea9d7-bc89-6855-f9a6-c42f4647d383@huawei.com>
On 3/29/22 7:18 PM, yukuai (C) wrote:
> On 2022/03/29 20:44, Jens Axboe wrote:
>> On 3/29/22 3:40 AM, Yu Kuai wrote:
>>> Tag preemption is the default behaviour, specifically blk_mq_get_tag()
>>> will try to get tag unconditionally, which means a new io can preempt tag
>>> even if there are lots of ios that are waiting for tags.
>>>
>>> This patch introduce a new flag, prepare to disable such behaviour, in
>>> order to optimize io performance for large random io for HHD.
>>
>> Not sure why we need a flag for this behavior. Does it ever make sense
>> to allow preempting waiters, jumping the queue?
>>
>
> Hi,
>
> I was thinking using the flag to control the new behavior, in order to
> reduce the impact on general path.
>
> If wake up path is handled properly, I think it's ok to disable
> preempting tags.
If we hit tag starvation, we are by definition out of the fast path.
That doesn't mean that scalability should drop to the floor, something
that often happened before blk-mq and without the rolling wakeups. But
it does mean that we can throw a bit more smarts at it, if it improves
fairness/performance in that situation.
--
Jens Axboe
next prev parent reply other threads:[~2022-03-30 1:20 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-29 9:40 [PATCH -next RFC 0/6] improve large random io for HDD Yu Kuai
2022-03-29 9:40 ` [PATCH -next RFC 1/6] blk-mq: add a new flag 'BLK_MQ_F_NO_TAG_PREEMPTION' Yu Kuai
2022-03-29 12:44 ` Jens Axboe
2022-03-30 1:18 ` yukuai (C)
2022-03-30 1:20 ` Jens Axboe [this message]
2022-03-29 9:40 ` [PATCH -next RFC 2/6] block: refactor to split bio thoroughly Yu Kuai
2022-03-29 12:46 ` Jens Axboe
2022-03-30 1:35 ` yukuai (C)
2022-03-29 13:32 ` Christoph Hellwig
2022-03-29 14:35 ` Jens Axboe
2022-03-29 14:40 ` Christoph Hellwig
2022-03-29 14:41 ` Jens Axboe
2022-03-29 14:42 ` Christoph Hellwig
2022-03-30 1:54 ` yukuai (C)
2022-03-29 9:40 ` [PATCH -next RFC 3/6] blk-mq: record how many tags are needed for splited bio Yu Kuai
2022-03-29 9:40 ` [PATCH -next RFC 4/6] sbitmap: wake up the number of threads based on required tags Yu Kuai
2022-03-29 9:40 ` [PATCH -next RFC 5/6] blk-mq: don't preempt tag expect for split bios Yu Kuai
2022-03-29 9:40 ` [PATCH -next RFC 6/6] sbitmap: force tag preemption if free tags are sufficient Yu Kuai
2022-03-29 12:53 ` [PATCH -next RFC 0/6] improve large random io for HDD Jens Axboe
2022-03-30 2:05 ` yukuai (C)
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=5bafff4a-e3f8-82eb-f8e8-486c877518ad@kernel.dk \
--to=axboe@kernel.dk \
--cc=andriy.shevchenko@linux.intel.com \
--cc=john.garry@huawei.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.lei@redhat.com \
--cc=yi.zhang@huawei.com \
--cc=yukuai3@huawei.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