All of lore.kernel.org
 help / color / mirror / Atom feed
From: "jianchao.wang" <jianchao.w.wang@oracle.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: ming.lei@redhat.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH V6 3/5] blk-mq: ensure hctx to be ran on mapped cpu when issue directly
Date: Wed, 14 Nov 2018 10:15:17 +0800	[thread overview]
Message-ID: <94ec3d97-f75f-645d-94f1-24d3fd476940@oracle.com> (raw)
In-Reply-To: <d8d88eff-e3eb-542d-d4fa-06b6aff97ba0@kernel.dk>

Hi Jens

Thanks for your kindly response.

On 11/13/18 9:44 PM, Jens Axboe wrote:
> On 11/13/18 2:56 AM, Jianchao Wang wrote:
>> When issue request directly and the task is migrated out of the
>> original cpu where it allocates request, hctx could be ran on
>> the cpu where it is not mapped.
>> To fix this,
>>  - insert the request forcibly if BLK_MQ_F_BLOCKING is set.
>>  - check whether the current is mapped to the hctx, if not, insert
>>    forcibly.
>>  - invoke __blk_mq_issue_directly under preemption disabled.
> 
> I'm not too crazy about this one, adding a get/put_cpu() in the hot
> path, and a cpumask test. The fact is that most/no drivers care
> about strict placement. We always try to do so, if convenient,
> since it's faster, but this seems to be doing the opposite.
> 
> I'd be more inclined to have a driver flag if it needs guaranteed
> placement, using one an ops BLK_MQ_F_STRICT_CPU flag or similar.
> 
> What do you think?
> 

I'd inclined blk-mq should comply with a unified rule, no matter the
issuing directly path or inserting one. Then blk-mq would have a simpler
model. And also this guarantee could be a little good for drivers,
especially the case where cpu and hw queue mapping is 1:1.

Regarding with hot path, do you concern about the nvme device ?
If so, how about split a standalone path for it ?

Thanks
Jianchao




  reply	other threads:[~2018-11-14  2:15 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-13  9:56 [PATCH V6 0/5] blk-mq: refactor and fix on issue request directly Jianchao Wang
2018-11-13  9:56 ` [PATCH V6 1/5] blk-mq: refactor the code of " Jianchao Wang
2018-11-13  9:56 ` [PATCH V6 2/5] blk-mq: fix issue directly case when q is stopped or quiesced Jianchao Wang
2018-11-13  9:56 ` [PATCH V6 3/5] blk-mq: ensure hctx to be ran on mapped cpu when issue directly Jianchao Wang
2018-11-13 13:44   ` Jens Axboe
2018-11-14  2:15     ` jianchao.wang [this message]
2018-11-14  3:02       ` Ming Lei
2018-11-14  3:38         ` jianchao.wang
2018-11-13  9:56 ` [PATCH V6 4/5] blk-mq: issue directly with bypass 'false' in blk_mq_sched_insert_requests Jianchao Wang
2018-11-13  9:56 ` [PATCH V6 5/5] blk-mq: replace and kill blk_mq_request_issue_directly Jianchao Wang

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=94ec3d97-f75f-645d-94f1-24d3fd476940@oracle.com \
    --to=jianchao.w.wang@oracle.com \
    --cc=axboe@kernel.dk \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.lei@redhat.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.