From: Bart Van Assche <Bart.VanAssche@wdc.com>
To: "ming.lei@redhat.com" <ming.lei@redhat.com>,
"snitzer@redhat.com" <snitzer@redhat.com>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"hch@infradead.org" <hch@infradead.org>,
"sagi@grimberg.me" <sagi@grimberg.me>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"axboe@fb.com" <axboe@fb.com>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"jejb@linux.vnet.ibm.com" <jejb@linux.vnet.ibm.com>,
"loberman@redhat.com" <loberman@redhat.com>,
"dm-devel@redhat.com" <dm-devel@redhat.com>
Subject: Re: [PATCH 1/5] block: don't call blk_mq_delay_run_hw_queue() in case of BLK_STS_RESOURCE
Date: Tue, 19 Sep 2017 16:49:15 +0000 [thread overview]
Message-ID: <1505839754.2671.42.camel@wdc.com> (raw)
In-Reply-To: <20170919160401.GC19830@ming.t460p>
On Wed, 2017-09-20 at 00:04 +0800, Ming Lei wrote:
> Run queue at end_io is definitely wrong, because blk-mq has SCHED_RESTART
> to do that already.
Sorry but I disagree. If SCHED_RESTART is set that causes the blk-mq core to
reexamine the software queues and the hctx dispatch list but not the requeue
list. If a block driver returns BLK_STS_RESOURCE then requests end up on the
requeue list. Hence the following code in scsi_end_request():
if (scsi_target(sdev)->single_lun || !list_empty(&sdev->host->starved_list))
kblockd_schedule_work(&sdev->requeue_work);
else
blk_mq_run_hw_queues(q, true);
Bart.
WARNING: multiple messages have this Message-ID (diff)
From: Bart Van Assche <Bart.VanAssche@wdc.com>
To: "ming.lei@redhat.com" <ming.lei@redhat.com>,
"snitzer@redhat.com" <snitzer@redhat.com>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
"hch@infradead.org" <hch@infradead.org>,
"sagi@grimberg.me" <sagi@grimberg.me>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"axboe@fb.com" <axboe@fb.com>,
"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
"jejb@linux.vnet.ibm.com" <jejb@linux.vnet.ibm.com>,
"loberman@redhat.com" <loberman@redhat.com>,
"dm-devel@redhat.com" <dm-devel@redhat.com>
Subject: Re: [PATCH 1/5] block: don't call blk_mq_delay_run_hw_queue() in case of BLK_STS_RESOURCE
Date: Tue, 19 Sep 2017 16:49:15 +0000 [thread overview]
Message-ID: <1505839754.2671.42.camel@wdc.com> (raw)
In-Reply-To: <20170919160401.GC19830@ming.t460p>
T24gV2VkLCAyMDE3LTA5LTIwIGF0IDAwOjA0ICswODAwLCBNaW5nIExlaSB3cm90ZToNCj4gUnVu
IHF1ZXVlIGF0IGVuZF9pbyBpcyBkZWZpbml0ZWx5IHdyb25nLCBiZWNhdXNlIGJsay1tcSBoYXMg
U0NIRURfUkVTVEFSVA0KPiB0byBkbyB0aGF0IGFscmVhZHkuDQoNClNvcnJ5IGJ1dCBJIGRpc2Fn
cmVlLiBJZiBTQ0hFRF9SRVNUQVJUIGlzIHNldCB0aGF0IGNhdXNlcyB0aGUgYmxrLW1xIGNvcmUg
dG8NCnJlZXhhbWluZSB0aGUgc29mdHdhcmUgcXVldWVzIGFuZCB0aGUgaGN0eCBkaXNwYXRjaCBs
aXN0IGJ1dCBub3QgdGhlIHJlcXVldWUNCmxpc3QuIElmIGEgYmxvY2sgZHJpdmVyIHJldHVybnMg
QkxLX1NUU19SRVNPVVJDRSB0aGVuIHJlcXVlc3RzIGVuZCB1cCBvbiB0aGUNCnJlcXVldWUgbGlz
dC4gSGVuY2UgdGhlIGZvbGxvd2luZyBjb2RlIGluIHNjc2lfZW5kX3JlcXVlc3QoKToNCg0KCWlm
IChzY3NpX3RhcmdldChzZGV2KS0+c2luZ2xlX2x1biB8fCAhbGlzdF9lbXB0eSgmc2Rldi0+aG9z
dC0+c3RhcnZlZF9saXN0KSkNCgkJa2Jsb2NrZF9zY2hlZHVsZV93b3JrKCZzZGV2LT5yZXF1ZXVl
X3dvcmspOw0KCWVsc2UNCgkJYmxrX21xX3J1bl9od19xdWV1ZXMocSwgdHJ1ZSk7DQoNCkJhcnQu
WARNING: multiple messages have this Message-ID (diff)
From: Bart.VanAssche@wdc.com (Bart Van Assche)
Subject: [PATCH 1/5] block: don't call blk_mq_delay_run_hw_queue() in case of BLK_STS_RESOURCE
Date: Tue, 19 Sep 2017 16:49:15 +0000 [thread overview]
Message-ID: <1505839754.2671.42.camel@wdc.com> (raw)
In-Reply-To: <20170919160401.GC19830@ming.t460p>
On Wed, 2017-09-20@00:04 +0800, Ming Lei wrote:
> Run queue at end_io is definitely wrong, because blk-mq has SCHED_RESTART
> to do that already.
Sorry but I disagree. If SCHED_RESTART is set that causes the blk-mq core to
reexamine the software queues and the hctx dispatch list but not the requeue
list. If a block driver returns BLK_STS_RESOURCE then requests end up on the
requeue list. Hence the following code in scsi_end_request():
if (scsi_target(sdev)->single_lun || !list_empty(&sdev->host->starved_list))
kblockd_schedule_work(&sdev->requeue_work);
else
blk_mq_run_hw_queues(q, true);
Bart.
next prev parent reply other threads:[~2017-09-19 16:49 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-15 16:44 [PATCH 0/5] dm-mpath: improve I/O schedule Ming Lei
2017-09-15 16:44 ` Ming Lei
2017-09-15 16:44 ` [PATCH 1/5] block: don't call blk_mq_delay_run_hw_queue() in case of BLK_STS_RESOURCE Ming Lei
2017-09-15 16:44 ` Ming Lei
2017-09-15 17:57 ` Bart Van Assche
2017-09-15 17:57 ` Bart Van Assche
2017-09-15 17:57 ` Bart Van Assche
2017-09-17 12:40 ` Ming Lei
2017-09-17 12:40 ` Ming Lei
2017-09-18 15:18 ` Bart Van Assche
2017-09-18 15:18 ` Bart Van Assche
2017-09-18 15:18 ` Bart Van Assche
2017-09-19 5:43 ` Ming Lei
2017-09-19 5:43 ` Ming Lei
2017-09-19 15:36 ` Bart Van Assche
2017-09-19 15:36 ` Bart Van Assche
2017-09-19 15:36 ` Bart Van Assche
2017-09-19 15:56 ` Mike Snitzer
2017-09-19 15:56 ` Mike Snitzer
2017-09-19 16:04 ` Ming Lei
2017-09-19 16:04 ` Ming Lei
2017-09-19 16:49 ` Bart Van Assche [this message]
2017-09-19 16:49 ` Bart Van Assche
2017-09-19 16:49 ` Bart Van Assche
2017-09-19 16:55 ` Ming Lei
2017-09-19 16:55 ` Ming Lei
2017-09-19 18:42 ` Bart Van Assche
2017-09-19 18:42 ` Bart Van Assche
2017-09-19 18:42 ` Bart Van Assche
2017-09-19 22:44 ` Ming Lei
2017-09-19 22:44 ` Ming Lei
2017-09-19 23:25 ` Bart Van Assche
2017-09-19 23:25 ` Bart Van Assche
2017-09-19 23:25 ` Bart Van Assche
2017-09-19 23:50 ` Mike Snitzer
2017-09-19 23:50 ` Mike Snitzer
2017-09-20 1:13 ` Ming Lei
2017-09-20 1:13 ` Ming Lei
2017-09-20 1:19 ` Ming Lei
2017-09-20 1:19 ` Ming Lei
2017-09-19 15:48 ` Mike Snitzer
2017-09-19 15:48 ` Mike Snitzer
2017-09-19 15:52 ` Bart Van Assche
2017-09-19 15:52 ` Bart Van Assche
2017-09-19 15:52 ` Bart Van Assche
2017-09-19 16:03 ` Mike Snitzer
2017-09-19 16:03 ` Mike Snitzer
2017-09-19 16:07 ` Ming Lei
2017-09-19 16:07 ` Ming Lei
2017-09-15 16:44 ` [PATCH 2/5] dm-mpath: return DM_MAPIO_REQUEUE in case of rq allocation failure Ming Lei
2017-09-15 17:29 ` Bart Van Assche
2017-09-15 17:29 ` Bart Van Assche
2017-09-15 20:06 ` Mike Snitzer
2017-09-15 20:48 ` Bart Van Assche
2017-09-15 20:48 ` Bart Van Assche
2017-09-17 13:23 ` Ming Lei
2017-09-19 14:41 ` Mike Snitzer
2017-09-19 15:56 ` Ming Lei
2017-09-17 12:51 ` Ming Lei
2017-09-15 16:44 ` [PATCH 3/5] dm-mpath: remove annoying message of 'blk_get_request() returned -11' Ming Lei
2017-09-15 16:44 ` [PATCH 4/5] block: export blk_update_nr_requests Ming Lei
2017-09-15 16:44 ` [PATCH 5/5] dm-mpath: improve I/O schedule Ming Lei
2017-09-15 20:10 ` Mike Snitzer
2017-09-15 20:56 ` Bart Van Assche
2017-09-15 20:56 ` Bart Van Assche
2017-09-15 21:06 ` Bart Van Assche
2017-09-15 21:06 ` Bart Van Assche
2017-09-15 21:42 ` Bart Van Assche
2017-09-15 21:42 ` Bart Van Assche
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=1505839754.2671.42.camel@wdc.com \
--to=bart.vanassche@wdc.com \
--cc=axboe@fb.com \
--cc=dm-devel@redhat.com \
--cc=hch@infradead.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=loberman@redhat.com \
--cc=martin.petersen@oracle.com \
--cc=ming.lei@redhat.com \
--cc=sagi@grimberg.me \
--cc=snitzer@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.