linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
@ 2017-04-06  0:16 Long Li
  2017-04-06  0:32 ` Bart Van Assche
  0 siblings, 1 reply; 10+ messages in thread
From: Long Li @ 2017-04-06  0:16 UTC (permalink / raw)
  To: Jens Axboe, linux-block, linux-kernel
  Cc: K. Y. Srinivasan, Stephen Hemminger, Long Li

From: Long Li <longli@microsoft.com>

Under heavy I/O, one hardware queue may be unable to dispatch any I/O to the 
device layer. This poses a problem with restarting this hardware queue on I/O
finish in blk_mq_sched_restart_queues(), becaue there is nothing pending that
will finish in future on this hardware qeueu. This will result in deadlock.

With this patch, we check for all possible stalled hardware queues when I/O
finishes on any hardware queues. This prevents this deadlock.

Signed-off-by: Long Li <longli@microsoft.com>
---
 block/blk-mq-sched.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
index 09af8ff..f7f3d44 100644
--- a/block/blk-mq-sched.c
+++ b/block/blk-mq-sched.c
@@ -202,7 +202,7 @@ void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx)
 	 * needing a restart in that case.
 	 */
 	if (!list_empty(&rq_list)) {
-		blk_mq_sched_mark_restart_hctx(hctx);
+		blk_mq_sched_mark_restart_queue(hctx);
 		did_work = blk_mq_dispatch_rq_list(hctx, &rq_list);
 	} else if (!has_sched_dispatch) {
 		blk_mq_flush_busy_ctxs(hctx, &rq_list);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  0:16 [PATCH] block-mq: set both block queue and hardware queue restart bit for restart Long Li
@ 2017-04-06  0:32 ` Bart Van Assche
  2017-04-06  3:38   ` Long Li
  0 siblings, 1 reply; 10+ messages in thread
From: Bart Van Assche @ 2017-04-06  0:32 UTC (permalink / raw)
  To: linux-kernel, linux-block, longli, axboe; +Cc: sthemmin, kys, longli

On Wed, 2017-04-05 at 17:16 -0700, Long Li wrote:
> Under heavy I/O, one hardware queue may be unable to dispatch any I/O to =
the=20
> device layer. This poses a problem with restarting this hardware queue on=
 I/O
> finish in blk_mq_sched_restart_queues(), becaue there is nothing pending =
that
> will finish in future on this hardware qeueu. This will result in deadloc=
k.
>=20
> With this patch, we check for all possible stalled hardware queues when I=
/O
> finishes on any hardware queues. This prevents this deadlock.
>=20
> Signed-off-by: Long Li <longli@microsoft.com>
> ---
>  block/blk-mq-sched.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c
> index 09af8ff..f7f3d44 100644
> --- a/block/blk-mq-sched.c
> +++ b/block/blk-mq-sched.c
> @@ -202,7 +202,7 @@ void blk_mq_sched_dispatch_requests(struct blk_mq_hw_=
ctx *hctx)
>  	 * needing a restart in that case.
>  	 */
>  	if (!list_empty(&rq_list)) {
> -		blk_mq_sched_mark_restart_hctx(hctx);
> +		blk_mq_sched_mark_restart_queue(hctx);
>  		did_work =3D blk_mq_dispatch_rq_list(hctx, &rq_list);
>  	} else if (!has_sched_dispatch) {
>  		blk_mq_flush_busy_ctxs(hctx, &rq_list);

Please drop this patch. I'm working on a better solution.

Thanks,

Bart.=

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  0:32 ` Bart Van Assche
@ 2017-04-06  3:38   ` Long Li
  2017-04-06  3:45     ` Bart Van Assche
  0 siblings, 1 reply; 10+ messages in thread
From: Long Li @ 2017-04-06  3:38 UTC (permalink / raw)
  To: Bart Van Assche, linux-kernel, linux-block, axboe
  Cc: Stephen Hemminger, KY Srinivasan



> -----Original Message-----
> From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> Sent: Wednesday, April 5, 2017 5:32 PM
> To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org; Long Li
> <longli@microsoft.com>; axboe@kernel.dk
> Cc: Stephen Hemminger <sthemmin@microsoft.com>; KY Srinivasan
> <kys@microsoft.com>; Long Li <longli@microsoft.com>
> Subject: Re: [PATCH] block-mq: set both block queue and hardware queue
> restart bit for restart
>=20
> On Wed, 2017-04-05 at 17:16 -0700, Long Li wrote:
> > Under heavy I/O, one hardware queue may be unable to dispatch any I/O
> > to the device layer. This poses a problem with restarting this
> > hardware queue on I/O finish in blk_mq_sched_restart_queues(), becaue
> > there is nothing pending that will finish in future on this hardware qe=
ueu.
> This will result in deadlock.
> >
> > With this patch, we check for all possible stalled hardware queues
> > when I/O finishes on any hardware queues. This prevents this deadlock.
> >
> > Signed-off-by: Long Li <longli@microsoft.com>
> > ---
> >  block/blk-mq-sched.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/block/blk-mq-sched.c b/block/blk-mq-sched.c index
> > 09af8ff..f7f3d44 100644
> > --- a/block/blk-mq-sched.c
> > +++ b/block/blk-mq-sched.c
> > @@ -202,7 +202,7 @@ void blk_mq_sched_dispatch_requests(struct
> blk_mq_hw_ctx *hctx)
> >  	 * needing a restart in that case.
> >  	 */
> >  	if (!list_empty(&rq_list)) {
> > -		blk_mq_sched_mark_restart_hctx(hctx);
> > +		blk_mq_sched_mark_restart_queue(hctx);
> >  		did_work =3D blk_mq_dispatch_rq_list(hctx, &rq_list);
> >  	} else if (!has_sched_dispatch) {
> >  		blk_mq_flush_busy_ctxs(hctx, &rq_list);
>=20
> Please drop this patch. I'm working on a better solution.

Thank you. Looking forward to your patch.

>=20
> Thanks,
>=20
> Bart.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  3:38   ` Long Li
@ 2017-04-06  3:45     ` Bart Van Assche
  2017-04-06  4:21       ` KY Srinivasan
  0 siblings, 1 reply; 10+ messages in thread
From: Bart Van Assche @ 2017-04-06  3:45 UTC (permalink / raw)
  To: linux-kernel, linux-block, longli, axboe; +Cc: sthemmin, kys

T24gVGh1LCAyMDE3LTA0LTA2IGF0IDAzOjM4ICswMDAwLCBMb25nIExpIHdyb3RlOg0KPiA+IC0t
LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogQmFydCBWYW4gQXNzY2hlIFttYWls
dG86QmFydC5WYW5Bc3NjaGVAc2FuZGlzay5jb21dDQo+ID4gDQo+ID4gUGxlYXNlIGRyb3AgdGhp
cyBwYXRjaC4gSSdtIHdvcmtpbmcgb24gYSBiZXR0ZXIgc29sdXRpb24uDQo+IA0KPiBUaGFuayB5
b3UuIExvb2tpbmcgZm9yd2FyZCB0byB5b3VyIHBhdGNoLg0KDQpIZWxsbyBMb25nLA0KDQpJdCB3
b3VsZCBoZWxwIGlmIHlvdSBjb3VsZCBzaGFyZSB0aGUgbmFtZSBvZiB0aGUgYmxvY2sgb3IgU0NT
SSBkcml2ZXIgd2l0aA0Kd2hpY2ggeW91IHJhbiBpbnRvIHRoYXQgbG9ja3VwIGFuZCBhbHNvIGlm
IHlvdSBjb3VsZCBzaGFyZSB0aGUgbmFtZSBvZiB0aGUNCkkvTyBzY2hlZHVsZXIgdXNlZCBpbiB5
b3VyIHRlc3QuDQoNClRoYW5rcywNCg0KQmFydC4=

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  3:45     ` Bart Van Assche
@ 2017-04-06  4:21       ` KY Srinivasan
  2017-04-06  5:38         ` Long Li
  2017-04-10 23:47         ` Bart Van Assche
  0 siblings, 2 replies; 10+ messages in thread
From: KY Srinivasan @ 2017-04-06  4:21 UTC (permalink / raw)
  To: Bart Van Assche, linux-kernel, linux-block, Long Li, axboe
  Cc: Stephen Hemminger

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQmFydCBWYW4gQXNzY2hl
IFttYWlsdG86QmFydC5WYW5Bc3NjaGVAc2FuZGlzay5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwg
QXByaWwgNSwgMjAxNyA4OjQ2IFBNDQo+IFRvOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3Jn
OyBsaW51eC1ibG9ja0B2Z2VyLmtlcm5lbC5vcmc7IExvbmcgTGkNCj4gPGxvbmdsaUBtaWNyb3Nv
ZnQuY29tPjsgYXhib2VAa2VybmVsLmRrDQo+IENjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1t
aW5AbWljcm9zb2Z0LmNvbT47IEtZIFNyaW5pdmFzYW4NCj4gPGt5c0BtaWNyb3NvZnQuY29tPg0K
PiBTdWJqZWN0OiBSZTogW1BBVENIXSBibG9jay1tcTogc2V0IGJvdGggYmxvY2sgcXVldWUgYW5k
IGhhcmR3YXJlIHF1ZXVlDQo+IHJlc3RhcnQgYml0IGZvciByZXN0YXJ0DQo+IA0KPiBPbiBUaHUs
IDIwMTctMDQtMDYgYXQgMDM6MzggKzAwMDAsIExvbmcgTGkgd3JvdGU6DQo+ID4gPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQmFydCBWYW4gQXNzY2hlIFttYWlsdG86
QmFydC5WYW5Bc3NjaGVAc2FuZGlzay5jb21dDQo+ID4gPg0KPiA+ID4gUGxlYXNlIGRyb3AgdGhp
cyBwYXRjaC4gSSdtIHdvcmtpbmcgb24gYSBiZXR0ZXIgc29sdXRpb24uDQo+ID4NCj4gPiBUaGFu
ayB5b3UuIExvb2tpbmcgZm9yd2FyZCB0byB5b3VyIHBhdGNoLg0KPiANCj4gSGVsbG8gTG9uZywN
Cj4gDQo+IEl0IHdvdWxkIGhlbHAgaWYgeW91IGNvdWxkIHNoYXJlIHRoZSBuYW1lIG9mIHRoZSBi
bG9jayBvciBTQ1NJIGRyaXZlciB3aXRoDQo+IHdoaWNoIHlvdSByYW4gaW50byB0aGF0IGxvY2t1
cCBhbmQgYWxzbyBpZiB5b3UgY291bGQgc2hhcmUgdGhlIG5hbWUgb2YgdGhlDQo+IEkvTyBzY2hl
ZHVsZXIgdXNlZCBpbiB5b3VyIHRlc3QuDQoNClRoZSB0ZXN0cyB0aGF0IGluZGljYXRlZCB0aGUg
aXNzdWUgd2VyZSBydW4gSHlwZXItVi4gVGhlIGRyaXZlciBpcyBzdG9ydnNjX2Rydi5jDQpUaGUg
SS9PIHNjaGVkdWxlciB3YXMgSSB0aGluayBub29wLg0KDQpLLiBZDQo+IA0KPiBUaGFua3MsDQo+
IA0KPiBCYXJ0Lg0K

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  4:21       ` KY Srinivasan
@ 2017-04-06  5:38         ` Long Li
  2017-04-10 23:47         ` Bart Van Assche
  1 sibling, 0 replies; 10+ messages in thread
From: Long Li @ 2017-04-06  5:38 UTC (permalink / raw)
  To: KY Srinivasan, Bart Van Assche, linux-kernel, linux-block, axboe
  Cc: Stephen Hemminger

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS1kgU3Jpbml2YXNhbg0K
PiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDUsIDIwMTcgOToyMSBQTQ0KPiBUbzogQmFydCBWYW4g
QXNzY2hlIDxCYXJ0LlZhbkFzc2NoZUBzYW5kaXNrLmNvbT47IGxpbnV4LQ0KPiBrZXJuZWxAdmdl
ci5rZXJuZWwub3JnOyBsaW51eC1ibG9ja0B2Z2VyLmtlcm5lbC5vcmc7IExvbmcgTGkNCj4gPGxv
bmdsaUBtaWNyb3NvZnQuY29tPjsgYXhib2VAa2VybmVsLmRrDQo+IENjOiBTdGVwaGVuIEhlbW1p
bmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSF0gYmxv
Y2stbXE6IHNldCBib3RoIGJsb2NrIHF1ZXVlIGFuZCBoYXJkd2FyZSBxdWV1ZQ0KPiByZXN0YXJ0
IGJpdCBmb3IgcmVzdGFydA0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tDQo+ID4gRnJvbTogQmFydCBWYW4gQXNzY2hlIFttYWlsdG86QmFydC5WYW5Bc3NjaGVAc2Fu
ZGlzay5jb21dDQo+ID4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCA1LCAyMDE3IDg6NDYgUE0NCj4g
PiBUbzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbGludXgtYmxvY2tAdmdlci5rZXJu
ZWwub3JnOyBMb25nIExpDQo+ID4gPGxvbmdsaUBtaWNyb3NvZnQuY29tPjsgYXhib2VAa2VybmVs
LmRrDQo+ID4gQ2M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPjsg
S1kgU3Jpbml2YXNhbg0KPiA+IDxreXNAbWljcm9zb2Z0LmNvbT4NCj4gPiBTdWJqZWN0OiBSZTog
W1BBVENIXSBibG9jay1tcTogc2V0IGJvdGggYmxvY2sgcXVldWUgYW5kIGhhcmR3YXJlIHF1ZXVl
DQo+ID4gcmVzdGFydCBiaXQgZm9yIHJlc3RhcnQNCj4gPg0KPiA+IE9uIFRodSwgMjAxNy0wNC0w
NiBhdCAwMzozOCArMDAwMCwgTG9uZyBMaSB3cm90ZToNCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN
ZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogQmFydCBWYW4gQXNzY2hlIFttYWlsdG86QmFydC5W
YW5Bc3NjaGVAc2FuZGlzay5jb21dDQo+ID4gPiA+DQo+ID4gPiA+IFBsZWFzZSBkcm9wIHRoaXMg
cGF0Y2guIEknbSB3b3JraW5nIG9uIGEgYmV0dGVyIHNvbHV0aW9uLg0KPiA+ID4NCj4gPiA+IFRo
YW5rIHlvdS4gTG9va2luZyBmb3J3YXJkIHRvIHlvdXIgcGF0Y2guDQo+ID4NCj4gPiBIZWxsbyBM
b25nLA0KPiA+DQo+ID4gSXQgd291bGQgaGVscCBpZiB5b3UgY291bGQgc2hhcmUgdGhlIG5hbWUg
b2YgdGhlIGJsb2NrIG9yIFNDU0kgZHJpdmVyDQo+ID4gd2l0aCB3aGljaCB5b3UgcmFuIGludG8g
dGhhdCBsb2NrdXAgYW5kIGFsc28gaWYgeW91IGNvdWxkIHNoYXJlIHRoZQ0KPiA+IG5hbWUgb2Yg
dGhlIEkvTyBzY2hlZHVsZXIgdXNlZCBpbiB5b3VyIHRlc3QuDQo+IA0KPiBUaGUgdGVzdHMgdGhh
dCBpbmRpY2F0ZWQgdGhlIGlzc3VlIHdlcmUgcnVuIEh5cGVyLVYuIFRoZSBkcml2ZXIgaXMNCj4g
c3RvcnZzY19kcnYuYyBUaGUgSS9PIHNjaGVkdWxlciB3YXMgSSB0aGluayBub29wLg0KDQpZZXMs
IHdlIHNlZSBJL08gaHVuZyBvbiBzY2hlZHVsZXIgbm9uZS4gQWxzbyB0cmllZCBvbiBtcS1kZWFk
bGluZSwgc2FtZSBodW5nIHdpdGggdGhlIHNhbWUgY2F1c2UuDQoNCj4gDQo+IEsuIFkNCj4gPg0K
PiA+IFRoYW5rcywNCj4gPg0KPiA+IEJhcnQuDQo=

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-06  4:21       ` KY Srinivasan
  2017-04-06  5:38         ` Long Li
@ 2017-04-10 23:47         ` Bart Van Assche
  2017-04-13 23:12           ` Long Li
  1 sibling, 1 reply; 10+ messages in thread
From: Bart Van Assche @ 2017-04-10 23:47 UTC (permalink / raw)
  To: linux-kernel, linux-block, kys, longli, axboe; +Cc: sthemmin

On Thu, 2017-04-06 at 04:21 +0000, KY Srinivasan wrote:
> > -----Original Message-----
> > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > Sent: Wednesday, April 5, 2017 8:46 PM
> > To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org; Long Li
> > <longli@microsoft.com>; axboe@kernel.dk
> > Cc: Stephen Hemminger <sthemmin@microsoft.com>; KY Srinivasan
> > <kys@microsoft.com>
> > Subject: Re: [PATCH] block-mq: set both block queue and hardware queue
> > restart bit for restart
> >=20
> > On Thu, 2017-04-06 at 03:38 +0000, Long Li wrote:
> > > > -----Original Message-----
> > > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > > >=20
> > > > Please drop this patch. I'm working on a better solution.
> > >=20
> > > Thank you. Looking forward to your patch.
> >=20
> > Hello Long,
> >=20
> > It would help if you could share the name of the block or SCSI driver w=
ith
> > which you ran into that lockup and also if you could share the name of =
the
> > I/O scheduler used in your test.
>=20
> The tests that indicated the issue were run Hyper-V. The driver is storvs=
c_drv.c
> The I/O scheduler was I think noop.

Hello Long and K.Y.,

Thank you for the feedback. Can you repeat your test with kernel v4.11-rc6?=
 The
patches that went into the block layer for v4.11-rc6 should be sufficient t=
o fix
this:

$ PAGER=3D git log --format=3Dshort v4.11-rc5..v4.11-rc6 block include/linu=
x/blk* =A0
commit 6d8c6c0f97ad8a3517c42b179c1dc8e77397d0e2
Author: Bart Van Assche <bart.vanassche@sandisk.com>

=A0=A0=A0=A0blk-mq: Restart a single queue if tag sets are shared

commit 7587a5ae7eef0439f7be31f1b5959af062bbc5ec
Author: Bart Van Assche <bart.vanassche@sandisk.com>

=A0=A0=A0=A0blk-mq: Introduce blk_mq_delay_run_hw_queue()

commit ebe8bddb6e30d7a02775b9972099271fc5910f37
Author: Omar Sandoval <osandov@fb.com>

=A0=A0=A0=A0blk-mq: remap queues when adding/removing hardware queues

commit 54d5329d425650fafaf90660a139c771d2d49cae
Author: Omar Sandoval <osandov@fb.com>

=A0=A0=A0=A0blk-mq-sched: fix crash in switch error path

commit 93252632e828da3e90241a1c0e766556abf71598
Author: Omar Sandoval <osandov@fb.com>

=A0=A0=A0=A0blk-mq-sched: set up scheduler tags when bringing up new queues

commit 6917ff0b5bd4139e08a3f3146529dcb3b95ba7a6
Author: Omar Sandoval <osandov@fb.com>

=A0=A0=A0=A0blk-mq-sched: refactor scheduler initialization

commit 81380ca10778b99dce98940cfc993214712df335
Author: Omar Sandoval <osandov@fb.com>

=A0=A0=A0=A0blk-mq: use the right hctx when getting a driver tag fails

commit ac77a0c463c1d7d659861f7b6d1261970dd3282a
Author: Minchan Kim <minchan@kernel.org>

=A0=A0=A0=A0block: do not put mq context in blk_mq_alloc_request_hctx

Bart.=

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-10 23:47         ` Bart Van Assche
@ 2017-04-13 23:12           ` Long Li
  2017-05-05  8:58             ` Long Li
  0 siblings, 1 reply; 10+ messages in thread
From: Long Li @ 2017-04-13 23:12 UTC (permalink / raw)
  To: Bart Van Assche, linux-kernel, linux-block, KY Srinivasan, axboe
  Cc: Stephen Hemminger



> -----Original Message-----
> From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> Sent: Monday, April 10, 2017 4:48 PM
> To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org; KY Sriniva=
san
> <kys@microsoft.com>; Long Li <longli@microsoft.com>; axboe@kernel.dk
> Cc: Stephen Hemminger <sthemmin@microsoft.com>
> Subject: Re: [PATCH] block-mq: set both block queue and hardware queue
> restart bit for restart
>=20
> On Thu, 2017-04-06 at 04:21 +0000, KY Srinivasan wrote:
> > > -----Original Message-----
> > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > > Sent: Wednesday, April 5, 2017 8:46 PM
> > > To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org; Long
> > > Li <longli@microsoft.com>; axboe@kernel.dk
> > > Cc: Stephen Hemminger <sthemmin@microsoft.com>; KY Srinivasan
> > > <kys@microsoft.com>
> > > Subject: Re: [PATCH] block-mq: set both block queue and hardware
> > > queue restart bit for restart
> > >
> > > On Thu, 2017-04-06 at 03:38 +0000, Long Li wrote:
> > > > > -----Original Message-----
> > > > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > > > >
> > > > > Please drop this patch. I'm working on a better solution.
> > > >
> > > > Thank you. Looking forward to your patch.
> > >
> > > Hello Long,
> > >
> > > It would help if you could share the name of the block or SCSI
> > > driver with which you ran into that lockup and also if you could
> > > share the name of the I/O scheduler used in your test.
> >
> > The tests that indicated the issue were run Hyper-V. The driver is
> > storvsc_drv.c The I/O scheduler was I think noop.
>=20
> Hello Long and K.Y.,
>=20
> Thank you for the feedback. Can you repeat your test with kernel v4.11-rc=
6?
> The patches that went into the block layer for v4.11-rc6 should be suffic=
ient
> to fix
> this:
>=20
> $ PAGER=3D git log --format=3Dshort v4.11-rc5..v4.11-rc6 block include/li=
nux/blk*
> commit 6d8c6c0f97ad8a3517c42b179c1dc8e77397d0e2
> Author: Bart Van Assche <bart.vanassche@sandisk.com>
>=20
> =A0=A0=A0=A0blk-mq: Restart a single queue if tag sets are shared
>=20
> commit 7587a5ae7eef0439f7be31f1b5959af062bbc5ec
> Author: Bart Van Assche <bart.vanassche@sandisk.com>
>=20
> =A0=A0=A0=A0blk-mq: Introduce blk_mq_delay_run_hw_queue()
>=20
> commit ebe8bddb6e30d7a02775b9972099271fc5910f37
> Author: Omar Sandoval <osandov@fb.com>
>=20
> =A0=A0=A0=A0blk-mq: remap queues when adding/removing hardware queues
>=20
> commit 54d5329d425650fafaf90660a139c771d2d49cae
> Author: Omar Sandoval <osandov@fb.com>
>=20
> =A0=A0=A0=A0blk-mq-sched: fix crash in switch error path
>=20
> commit 93252632e828da3e90241a1c0e766556abf71598
> Author: Omar Sandoval <osandov@fb.com>
>=20
> =A0=A0=A0=A0blk-mq-sched: set up scheduler tags when bringing up new queu=
es
>=20
> commit 6917ff0b5bd4139e08a3f3146529dcb3b95ba7a6
> Author: Omar Sandoval <osandov@fb.com>
>=20
> =A0=A0=A0=A0blk-mq-sched: refactor scheduler initialization
>=20
> commit 81380ca10778b99dce98940cfc993214712df335
> Author: Omar Sandoval <osandov@fb.com>
>=20
> =A0=A0=A0=A0blk-mq: use the right hctx when getting a driver tag fails
>=20
> commit ac77a0c463c1d7d659861f7b6d1261970dd3282a
> Author: Minchan Kim <minchan@kernel.org>
>=20
> =A0=A0=A0=A0block: do not put mq context in blk_mq_alloc_request_hctx
>=20
> Bart.

Thank you. We are doing tests. I will update on the results.

Long

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-04-13 23:12           ` Long Li
@ 2017-05-05  8:58             ` Long Li
  2017-05-05 19:52               ` Bart Van Assche
  0 siblings, 1 reply; 10+ messages in thread
From: Long Li @ 2017-05-05  8:58 UTC (permalink / raw)
  To: Long Li, Bart Van Assche, linux-kernel, linux-block,
	KY Srinivasan, axboe
  Cc: Stephen Hemminger



> -----Original Message-----
> From: linux-block-owner@vger.kernel.org [mailto:linux-block-
> owner@vger.kernel.org] On Behalf Of Long Li
> Sent: Friday, April 14, 2017 1:12 AM
> To: Bart Van Assche <Bart.VanAssche@sandisk.com>; linux-
> kernel@vger.kernel.org; linux-block@vger.kernel.org; KY Srinivasan
> <kys@microsoft.com>; axboe@kernel.dk
> Cc: Stephen Hemminger <sthemmin@microsoft.com>
> Subject: RE: [PATCH] block-mq: set both block queue and hardware queue
> restart bit for restart
>=20
>=20
>=20
> > -----Original Message-----
> > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > Sent: Monday, April 10, 2017 4:48 PM
> > To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org; KY
> > Srinivasan <kys@microsoft.com>; Long Li <longli@microsoft.com>;
> > axboe@kernel.dk
> > Cc: Stephen Hemminger <sthemmin@microsoft.com>
> > Subject: Re: [PATCH] block-mq: set both block queue and hardware queue
> > restart bit for restart
> >
> > On Thu, 2017-04-06 at 04:21 +0000, KY Srinivasan wrote:
> > > > -----Original Message-----
> > > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > > > Sent: Wednesday, April 5, 2017 8:46 PM
> > > > To: linux-kernel@vger.kernel.org; linux-block@vger.kernel.org;
> > > > Long Li <longli@microsoft.com>; axboe@kernel.dk
> > > > Cc: Stephen Hemminger <sthemmin@microsoft.com>; KY Srinivasan
> > > > <kys@microsoft.com>
> > > > Subject: Re: [PATCH] block-mq: set both block queue and hardware
> > > > queue restart bit for restart
> > > >
> > > > On Thu, 2017-04-06 at 03:38 +0000, Long Li wrote:
> > > > > > -----Original Message-----
> > > > > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > > > > >
> > > > > > Please drop this patch. I'm working on a better solution.
> > > > >
> > > > > Thank you. Looking forward to your patch.
> > > >
> > > > Hello Long,
> > > >
> > > > It would help if you could share the name of the block or SCSI
> > > > driver with which you ran into that lockup and also if you could
> > > > share the name of the I/O scheduler used in your test.
> > >
> > > The tests that indicated the issue were run Hyper-V. The driver is
> > > storvsc_drv.c The I/O scheduler was I think noop.
> >
> > Hello Long and K.Y.,
> >
> > Thank you for the feedback. Can you repeat your test with kernel v4.11-=
rc6?
> > The patches that went into the block layer for v4.11-rc6 should be
> > sufficient to fix
> > this:
> >
> > $ PAGER=3D git log --format=3Dshort v4.11-rc5..v4.11-rc6 block
> > include/linux/blk* commit 6d8c6c0f97ad8a3517c42b179c1dc8e77397d0e2
> > Author: Bart Van Assche <bart.vanassche@sandisk.com>
> >
> > =A0=A0=A0=A0blk-mq: Restart a single queue if tag sets are shared
> >
> > commit 7587a5ae7eef0439f7be31f1b5959af062bbc5ec
> > Author: Bart Van Assche <bart.vanassche@sandisk.com>
> >
> > =A0=A0=A0=A0blk-mq: Introduce blk_mq_delay_run_hw_queue()
> >
> > commit ebe8bddb6e30d7a02775b9972099271fc5910f37
> > Author: Omar Sandoval <osandov@fb.com>
> >
> > =A0=A0=A0=A0blk-mq: remap queues when adding/removing hardware queues
> >
> > commit 54d5329d425650fafaf90660a139c771d2d49cae
> > Author: Omar Sandoval <osandov@fb.com>
> >
> > =A0=A0=A0=A0blk-mq-sched: fix crash in switch error path
> >
> > commit 93252632e828da3e90241a1c0e766556abf71598
> > Author: Omar Sandoval <osandov@fb.com>
> >
> > =A0=A0=A0=A0blk-mq-sched: set up scheduler tags when bringing up new qu=
eues
> >
> > commit 6917ff0b5bd4139e08a3f3146529dcb3b95ba7a6
> > Author: Omar Sandoval <osandov@fb.com>
> >
> > =A0=A0=A0=A0blk-mq-sched: refactor scheduler initialization
> >
> > commit 81380ca10778b99dce98940cfc993214712df335
> > Author: Omar Sandoval <osandov@fb.com>
> >
> > =A0=A0=A0=A0blk-mq: use the right hctx when getting a driver tag fails
> >
> > commit ac77a0c463c1d7d659861f7b6d1261970dd3282a
> > Author: Minchan Kim <minchan@kernel.org>
> >
> > =A0=A0=A0=A0block: do not put mq context in blk_mq_alloc_request_hctx
> >
> > Bart.
>=20
> Thank you. We are doing tests. I will update on the results.
>=20
> Long

Testing went well. There were no I/O hangs.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] block-mq: set both block queue and hardware queue restart bit for restart
  2017-05-05  8:58             ` Long Li
@ 2017-05-05 19:52               ` Bart Van Assche
  0 siblings, 0 replies; 10+ messages in thread
From: Bart Van Assche @ 2017-05-05 19:52 UTC (permalink / raw)
  To: linux-kernel, linux-block, kys, longli, axboe; +Cc: sthemmin

On Fri, 2017-05-05 at 08:58 +0000, Long Li wrote:
> > > From: Bart Van Assche [mailto:Bart.VanAssche@sandisk.com]
> > >=20
> > > Can you repeat your test with kernel v4.11-rc6?
> > > The patches that went into the block layer for v4.11-rc6 should be
> > > sufficient to fix this: [ ... ]
>=20
> Testing went well. There were no I/O hangs.

Hello Long,

Thanks for having run these tests and thanks for the feedback!

Bart.=

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-05-05 19:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-06  0:16 [PATCH] block-mq: set both block queue and hardware queue restart bit for restart Long Li
2017-04-06  0:32 ` Bart Van Assche
2017-04-06  3:38   ` Long Li
2017-04-06  3:45     ` Bart Van Assche
2017-04-06  4:21       ` KY Srinivasan
2017-04-06  5:38         ` Long Li
2017-04-10 23:47         ` Bart Van Assche
2017-04-13 23:12           ` Long Li
2017-05-05  8:58             ` Long Li
2017-05-05 19:52               ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).