Re: [PATCH 0/9] Improve I/O priority support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> Il giorno 28 mag 2021, alle ore 04:05, Wang Jianchao <jianchao.wan9@xxxxxxxxx> ha scritto:
> 
> 
> 
> On 2021/5/28 2:40 AM, Bart Van Assche wrote:
>> On 5/27/21 1:05 AM, Wang Jianchao wrote:
>>> On 2021/5/27 2:25 PM, Wang Jianchao wrote:
>>>> On 2021/5/27 9:01 AM, Bart Van Assche wrote:
>>>>> A feature that is missing from the Linux kernel for storage devices that
>>>>> support I/O priorities is to set the I/O priority in requests involving page
>>>>> cache writeback. Since the identity of the process that triggers page cache
>>>>> writeback is not known in the writeback code, the priority set by ioprio_set()
>>>>> is ignored. However, an I/O cgroup is associated with writeback requests
>>>>> by certain filesystems. Hence this patch series that implements the following
>>>>> changes for the mq-deadline scheduler:
>>>> 
>>>> How about implement this feature based on the rq-qos framework ?
>>>> Maybe it is better to make mq-deadline a pure io-scheduler.
>>> 
>>> In addition, it is more flexible to combine different io-scheduler and rq-qos policy
>>> if we take io priority as a new policy ;)
>> 
>> Hi Jianchao,
>> 
>> That's an interesting question. I'm in favor of flexibility. However,
>> I'm not sure whether it would be possible to combine an rq-qos policy
>> that submits high priority requests first with an I/O scheduler that
>> ignores I/O priorities. Since a typical I/O scheduler reorders requests,
>> such a combination would lead to requests being submitted in the wrong
>> order to storage devices. In other words, when using an I/O scheduler,> proper support for I/O priority in the I/O scheduler is essential. The
> 
> Hi Bart,
> 
> Does it really matter that issue IO request by the order of io priority ?
> 
> Given a device with a 32 depth queue and doesn't support io priority, even if
> we issue the request by the order of io priority, will the fw of device handle
> them by the same order ? Or in the other word, we always issue 32 io requests
> to device one time and then the fw of device decides how to handle them.
> The order of dispatching request from queue may only work when the device's
> queue is full and we have a deeper queue in io scheduler. And at this moment,
> maybe the user needs to check why their application saturates the block device.
> 
> As for the qos policy of io priority, it seems similar with wbt in which read,
> sync write and background write have different priority. Since we always want
> the io with higher priority to be served more by the device, adapting the depth
> of queue of different io priority may work ;)
> 

That's exactly what BFQ does, as this is the only option to truly
control I/O in a device with internal queueing :)

Thanks,
Paolo

> Best regards
> Jianchao
> 
>> BFQ I/O scheduler is still maturing. The purpose of the Kyber I/O
>> scheduler is to control latency by reducing the queue depth without
>> differentiating between requests of the same type. The mq-deadline
>> scheduler is already being used in combination with storage devices that
>> support I/O priorities in their controller. Hence the choice for the
>> mq-deadline scheduler.
>> 
>> Thanks,
>> 
>> Bart.





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux