[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5bafff4a-e3f8-82eb-f8e8-486c877518ad@kernel.dk>
Date: Tue, 29 Mar 2022 19:20:35 -0600
From: Jens Axboe <axboe@...nel.dk>
To: "yukuai (C)" <yukuai3@...wei.com>,
andriy.shevchenko@...ux.intel.com, john.garry@...wei.com,
ming.lei@...hat.com
Cc: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
yi.zhang@...wei.com
Subject: Re: [PATCH -next RFC 1/6] blk-mq: add a new flag
'BLK_MQ_F_NO_TAG_PREEMPTION'
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
Powered by blists - more mailing lists