All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Adam Manzanares <adam.manzanares@hgst.com>,
	Tejun Heo <tj@kernel.org>, Hannes Reinecke <hare@suse.de>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	mchristi@redhat.com, Toshi Kani <toshi.kani@hpe.com>,
	Ming Lei <ming.lei@canonical.com>,
	sathya.prakash@broadcom.com, chaitra.basappa@broadcom.com,
	suganath-prabu.subramani@broadcom.com,
	linux-block@vger.kernel.org,
	IDE/ATA development list <linux-ide@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	MPT-FusionLinux.pdl@broadcom.com,
	linux-scsi <linux-scsi@vger.kernel.org>,
	Adam Manzananares <adam.manzanares@wdc.com>
Subject: Re: [PATCH v4 1/4] block: Add iocontext priority to request
Date: Thu, 13 Oct 2016 15:07:56 -0600	[thread overview]
Message-ID: <89fb830f-d909-b2c3-e577-2fd18208b2ab@kernel.dk> (raw)
In-Reply-To: <CAPcyv4i1ZgPTfewtpsegdvedc4aEwPDvMNjD97UUAEVZUC-jzQ@mail.gmail.com>

On 10/13/2016 02:59 PM, Dan Williams wrote:
> On Thu, Oct 13, 2016 at 1:24 PM, Jens Axboe <axboe@kernel.dk> wrote:
>> On 10/13/2016 02:19 PM, Dan Williams wrote:
>>>
>>> On Thu, Oct 13, 2016 at 1:09 PM, Jens Axboe <axboe@kernel.dk> wrote:
>>>>
>>>> On 10/13/2016 02:06 PM, Dan Williams wrote:
>>>>>
>>>>>
>>>>> On Thu, Oct 13, 2016 at 12:53 PM, Adam Manzanares
>>>>> <adam.manzanares@hgst.com> wrote:
>>>>>>
>>>>>>
>>>>>> Patch adds an association between iocontext ioprio and the ioprio of a
>>>>>> request. This value 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: Adam Manzananares <adam.manzanares@wdc.com>
>>>>>> ---
>>>>>>  block/blk-core.c       |  4 +++-
>>>>>>  include/linux/blkdev.h | 14 ++++++++++++++
>>>>>>  2 files changed, 17 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/block/blk-core.c b/block/blk-core.c
>>>>>> index 14d7c07..361b1b9 100644
>>>>>> --- a/block/blk-core.c
>>>>>> +++ b/block/blk-core.c
>>>>>> @@ -1153,6 +1153,7 @@ static struct request *__get_request(struct
>>>>>> request_list *rl, int op,
>>>>>>
>>>>>>         blk_rq_init(q, rq);
>>>>>>         blk_rq_set_rl(rq, rl);
>>>>>> +       blk_rq_set_prio(rq, ioc);
>>>>>>         req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED);
>>>>>>
>>>>>>         /* init elvpriv */
>>>>>> @@ -1656,7 +1657,8 @@ void init_request_from_bio(struct request *req,
>>>>>> struct bio *bio)
>>>>>>
>>>>>>         req->errors = 0;
>>>>>>         req->__sector = bio->bi_iter.bi_sector;
>>>>>> -       req->ioprio = bio_prio(bio);
>>>>>> +       if (ioprio_valid(bio_prio(bio)))
>>>>>> +               req->ioprio = bio_prio(bio);
>>>>>
>>>>>
>>>>>
>>>>> Should we use ioprio_best() here?  If req->ioprio and bio_prio()
>>>>> disagree one side has explicitly asked for a higher priority.
>>>>
>>>>
>>>>
>>>> It's a good question - but if priority has been set in the bio, it makes
>>>> sense that that would take priority over the general setting for the
>>>> task/io context. So I think the patch is correct as-is.
>>>
>>>
>>> Assuming you always trust the kernel to know the right priority...
>>
>>
>> If it set it in the bio, it better know what it's doing. Besides,
>> there's nothing stopping the caller from checking the task priority when
>> it sets it. If we do ioprio_best(), then we are effectively preventing
>> anyone from submitting a bio with a lower priority than the task has
>> generally set.
>
> Ah, that makes sense.  Move the ioprio_best() decision out to whatever
> code is setting bio_prio() to allow for cases where the kernel knows
> best.

Yes, precisely.

-- 
Jens Axboe

  reply	other threads:[~2016-10-13 21:07 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-13 19:53 [PATCH v4 0/4] Enabling ATA Command Priorities Adam Manzanares
2016-10-13 19:53 ` Adam Manzanares
2016-10-13 19:53 ` Adam Manzanares
2016-10-13 19:53 ` [PATCH v4 1/4] block: Add iocontext priority to request Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 20:06   ` Dan Williams
2016-10-13 20:09     ` Jens Axboe
2016-10-13 20:19       ` Dan Williams
2016-10-13 20:24         ` Jens Axboe
2016-10-13 20:59           ` Dan Williams
2016-10-13 21:07             ` Jens Axboe [this message]
2016-10-13 22:02       ` Adam Manzananares
2016-10-13 22:02         ` Adam Manzananares
2016-10-13 22:02         ` Adam Manzananares
2016-10-14  5:54   ` Hannes Reinecke
2016-10-14  5:54     ` Hannes Reinecke
2016-10-14 18:35     ` Adam Manzananares
2016-10-14 18:35       ` Adam Manzananares
2016-10-14 18:35       ` Adam Manzananares
2016-10-15  8:43       ` Hannes Reinecke
2016-10-13 19:53 ` [PATCH v4 2/4] fusion: remove iopriority handling Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 21:05   ` Sathya Prakash Veerichetty
2016-10-13 22:12     ` Adam Manzanares
2016-10-13 22:12       ` Adam Manzanares
2016-10-13 22:12       ` Adam Manzanares
2016-10-14  5:55   ` Hannes Reinecke
2016-10-14  5:55     ` Hannes Reinecke
2016-10-13 19:53 ` [PATCH v4 3/4] ata: Enabling ATA Command Priorities Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53 ` [PATCH v4 4/4] ata: ATA Command Priority Disabled By Default Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares
2016-10-13 19:53   ` Adam Manzanares

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=89fb830f-d909-b2c3-e577-2fd18208b2ab@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=MPT-FusionLinux.pdl@broadcom.com \
    --cc=adam.manzanares@hgst.com \
    --cc=adam.manzanares@wdc.com \
    --cc=chaitra.basappa@broadcom.com \
    --cc=dan.j.williams@intel.com \
    --cc=hare@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mchristi@redhat.com \
    --cc=ming.lei@canonical.com \
    --cc=sathya.prakash@broadcom.com \
    --cc=suganath-prabu.subramani@broadcom.com \
    --cc=tj@kernel.org \
    --cc=toshi.kani@hpe.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.