Re: [PATCH 00/11] Improve libaio IO priority support

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

 



On 2021/07/19 23:20, Jens Axboe wrote:
> On 7/18/21 9:24 PM, Damien Le Moal wrote:
>> On 2021/07/06 9:17, Damien Le Moal wrote:
>>> This series improves libaio engine support for IO priority, adding
>>> options to allow for mixed priority workloads to be specified more
>>> easily and to match the kernel supported IO priority features.
>>>
>>> The first 3 patches are small cleanup and fixes in the manpage and
>>> fiograph tool.
>>>
>>> Patch 4 and 5 introduce some helper functions to simplify the code in
>>> the followup patches.
>>>
>>> Patch 6 changes the cmdprio_percentage option to allow specifying
>>> different percentages for reads and writes.
>>>
>>> Patch 7 and 8 introduce the aioprioclass, aioprio and aioprio_bssplit.
>>> These together allow a script to specify different IO priorities for
>>> reads and writes of different sizes with different percentages.
>>>
>>> Patch 9 relaxes restrictions on the cmdprio_percentage option to allow
>>> jobs to execute AIOs using a default priority as set with ioprio_set()
>>> (as the kernel supports this).
>>>
>>> Patch 10 introduces the log_prio option to log each IO priority value,
>>> allowing users to do per-priority level performance analysis with
>>> complex workloads using many jobs.
>>>
>>> Finally, patch 11 adds a couple of example scripts to illustrate the use
>>> of the new options introduced.
>>>
>>> Comments are as always most welcome.
>>
>> Hi Jens,
>>
>> Any comment on this series ? We have been using this for a while now internally
>> and in the field to test ATA NCQ priority with good results. I am also planning
>> to re-use this to add support for the Command Duration Limits feature (ATA &
>> SCSI) using a new priority class (kernel patching cooking, but this will need
>> some more time as the specifications must stabilize first.
>>
>> One thing that can be considered missing with this series is a full set of
>> per-priority level statistics (IOPS, BW, etc). But that is a major change and so
>> this is not talked here.
> 
> I'll give it a look over today. My main object would be to ensure that
> aio and io_uring provide the same kind of interface, there shouldn't be
> any differences there in terms of how to use them and what they do. Even
> naming should be the same. Engine options exist for engine specific
> options. These don't apply to all engines, but to the ones they do, they
> should be interchangable. I should be able to take a job file with
> ioengine=X and change it to =Y and have the priorities still work,
> provided that engine Y supports it.
> 
> As far as I'm concerned, aio is legacy and I have no real interest in
> adding anything that supports that, be it kernel or software.

OK. Let me cook a V2 to include io_uring support for the priority options.


-- 
Damien Le Moal
Western Digital Research




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux