From: Hannes Reinecke <hare@suse.de>
To: "jianchao.wang" <jianchao.w.wang@oracle.com>, axboe@kernel.dk
Cc: linux-block@vger.kernel.org, jsmart2021@gmail.com,
sagi@grimberg.me, josef@toxicpanda.com,
linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
keith.busch@intel.com, jthumshirn@suse.de, hch@lst.de,
bvanassche@acm.org
Subject: Re: [PATCH V2 8/8] blk-mq: remove blk_mq_tagset_busy_iter
Date: Mon, 25 Mar 2019 09:25:20 +0100 [thread overview]
Message-ID: <15fa9443-776b-bb75-0e20-538609d34eba@suse.de> (raw)
In-Reply-To: <f9d22543-65d1-e473-e3ab-deefa2d6e884@oracle.com>
On 3/25/19 8:37 AM, jianchao.wang wrote:
> Hi Hannes
>
> On 3/25/19 3:18 PM, Hannes Reinecke wrote:
>> On 3/25/19 6:38 AM, Jianchao Wang wrote:
>>> As nobody uses blk_mq_tagset_busy_iter, remove it.
>>>
>>> Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com>
>>> ---
>>> block/blk-mq-tag.c | 95 --------------------------------------------------
>>> include/linux/blk-mq.h | 2 --
>>> 2 files changed, 97 deletions(-)
>>>
>> Please, don't.
>>
>> I'm currently implementing reserved commands for SCSI and reworking the SCSI error handling where I rely on
>> this interface quite heavily.
>
>
> blk_mq_tagset_busy_iter could access some stale requests which maybe freed due to io scheduler switching,
> request_queue cleanup (shared tagset)
> when there is someone submits io and gets driver tag. When io scheduler attached, even quiesce
> request_queue won't work.
>
> If this patchset is accepted, blk_mq_tagset_busy_iter could be replaced with blk_mq_queue_inflight_tag_iter
> which needs to be invoked by every request_queue that shares the tagset.
>
The point is, at that time I do _not_ have a request queue to work with.
Most SCSI drivers have a host-wide shared tagset, which is used by all
request queues on that host.
Iterating over the shared tagset is far more efficient than to traverse
over all devices and the attached request queues.
If I had to traverse all request queues I would need to add additional
locking to ensure this traversal is race-free, making it a really
cumbersome interface to use.
Plus the tagset iter is understood to be used only in cases where I/O is
stopped from the upper layers (ie no new I/O will be submitted).
So here we only need to protect against I/O being completed, which is
not what this patchset is about.
So my objection still stands: Please, don't.
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)
next prev parent reply other threads:[~2019-03-25 8:25 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-25 5:38 [PATCH V2 0/8]: blk-mq: use static_rqs to iterate busy tags Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 1/8] blk-mq: get rid of the synchronize_rcu in __blk_mq_update_nr_hw_queues Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 2/8] blk-mq: use static_rqs instead of rqs to iterate tags Jianchao Wang
2019-03-25 7:12 ` Dongli Zhang
2019-03-25 7:14 ` jianchao.wang
2019-03-25 5:38 ` [PATCH V2 3/8] blk-mq: use blk_mq_queue_tag_inflight_iter in debugfs Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 4/8] mtip32xx: use blk_mq_queue_tag_inflight_iter Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 5/8] nbd: " Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 6/8] skd: " Jianchao Wang
2019-03-25 5:38 ` [PATCH V2 7/8] nvme: " Jianchao Wang
2019-03-25 13:49 ` Keith Busch
2019-03-26 1:17 ` jianchao.wang
2019-03-26 2:41 ` Ming Lei
2019-03-26 3:05 ` jianchao.wang
2019-03-26 23:57 ` Keith Busch
2019-03-27 2:03 ` jianchao.wang
2019-03-27 2:15 ` Keith Busch
2019-03-27 2:27 ` jianchao.wang
2019-03-27 2:33 ` Keith Busch
2019-03-27 2:45 ` jianchao.wang
2019-03-27 6:51 ` Keith Busch
2019-03-27 7:18 ` jianchao.wang
2019-03-25 5:38 ` [PATCH V2 8/8] blk-mq: remove blk_mq_tagset_busy_iter Jianchao Wang
2019-03-25 7:18 ` Hannes Reinecke
2019-03-25 7:37 ` jianchao.wang
2019-03-25 8:25 ` Hannes Reinecke [this message]
2019-03-25 9:12 ` jianchao.wang
2019-03-26 14:17 ` Jens Axboe
-- strict thread matches above, loose matches on Subject: below --
2019-03-25 5:28 [PATCH V2 0/8]: blk-mq: use static_rqs to iterate busy tags Jianchao Wang
2019-03-25 5:28 ` [PATCH V2 8/8] blk-mq: remove blk_mq_tagset_busy_iter 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=15fa9443-776b-bb75-0e20-538609d34eba@suse.de \
--to=hare@suse.de \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hch@lst.de \
--cc=jianchao.w.wang@oracle.com \
--cc=josef@toxicpanda.com \
--cc=jsmart2021@gmail.com \
--cc=jthumshirn@suse.de \
--cc=keith.busch@intel.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®