• Adam Manzanares's avatar
    block: Add iocontext priority to request · 5dc8b362
    Adam Manzanares authored
    Patch adds an association between iocontext ioprio and the ioprio of a
    request. This is done to enable request based drivers the ability to
    act on priority information stored in the request. An example being
    ATA devices that support command priorities. If the ATA driver discovers
    that the device supports command priorities and the request has valid
    priority information indicating the request is high priority, then a high
    priority command can be sent to the device. This should improve tail
    latencies for high priority IO on any device that queues requests
    internally and can make use of the priority information stored in the
    request.
    
    The ioprio of the request is set in blk_rq_set_prio which takes the
    request and the ioc as arguments. If the ioc is valid in blk_rq_set_prio
    then the iopriority of the request is set as the iopriority of the ioc.
    In init_request_from_bio a check is made to see if the ioprio of the bio
    is valid and if so then the request prio comes from the bio.
    Signed-off-by: default avatarAdam Manzananares <adam.manzanares@wdc.com>
    Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    5dc8b362
blk-core.c 93.3 KB