Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Ming Lei
On Tue, Jan 30, 2018 at 03:37:38AM +, Bart Van Assche wrote: > On Tue, 2018-01-30 at 11:31 +0800, Ming Lei wrote: > > Please take a look at drivers, when BLK_STS_RESOURCE is returned, who > > will call blk_mq_delay_run_hw_queue() for drivers? > > As you know the SCSI and dm drivers in kernel

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Bart Van Assche
On Tue, 2018-01-30 at 11:31 +0800, Ming Lei wrote: > Please take a look at drivers, when BLK_STS_RESOURCE is returned, who > will call blk_mq_delay_run_hw_queue() for drivers? As you know the SCSI and dm drivers in kernel v4.15 already call that function whenever necessary. > > > > > [ ... ]

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Ming Lei
On Tue, Jan 30, 2018 at 01:11:22AM +, Bart Van Assche wrote: > On Tue, 2018-01-30 at 09:07 +0800, Ming Lei wrote: > > On Mon, Jan 29, 2018 at 04:48:31PM +, Bart Van Assche wrote: > > > - It is easy to fix this race inside the block layer, namely by using > > > call_rcu() inside the

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Bart Van Assche
On Tue, 2018-01-30 at 09:07 +0800, Ming Lei wrote: > On Mon, Jan 29, 2018 at 04:48:31PM +, Bart Van Assche wrote: > > - It is easy to fix this race inside the block layer, namely by using > > call_rcu() inside the blk_mq_delay_run_hw_queue() implementation to > > postpone the queue

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Ming Lei
On Mon, Jan 29, 2018 at 04:48:31PM +, Bart Van Assche wrote: > On Sun, 2018-01-28 at 07:41 +0800, Ming Lei wrote: > > Not mention, the request isn't added to dispatch list yet in .queue_rq(), > > strictly speaking, it is not correct to call blk_mq_delay_run_hw_queue() in > > .queue_rq(), so

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-29 Thread Bart Van Assche
On Sun, 2018-01-28 at 07:41 +0800, Ming Lei wrote: > Not mention, the request isn't added to dispatch list yet in .queue_rq(), > strictly speaking, it is not correct to call blk_mq_delay_run_hw_queue() in > .queue_rq(), so the current block layer API can't handle it well enough. I disagree that

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-28 Thread Ming Lei
On Sun, Jan 28, 2018 at 05:03:49PM +, Bart Van Assche wrote: > On Sat, 2018-01-27 at 19:23 -0500, Mike Snitzer wrote: > > On Sat, Jan 27 2018 at 5:12pm -0500, > > Bart Van Assche wrote: > > > - The patch at the start of this thread introduces a regression in the > > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-28 Thread Laurence Oberman
On Sun, 2018-01-28 at 16:57 +, Bart Van Assche wrote: > On Sat, 2018-01-27 at 23:58 -0500, Mike Snitzer wrote: > > On Sat, Jan 27 2018 at 10:00pm -0500, > > Bart Van Assche wrote: > > > > > On Sat, 2018-01-27 at 21:03 -0500, Mike Snitzer wrote: > > > > You cannot even

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-28 Thread Bart Van Assche
On Sat, 2018-01-27 at 19:23 -0500, Mike Snitzer wrote: > On Sat, Jan 27 2018 at 5:12pm -0500, > Bart Van Assche wrote: > > - The patch at the start of this thread introduces a regression in the > > SCSI core, namely a queue stall if a request completion occurs > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-28 Thread Bart Van Assche
On Sat, 2018-01-27 at 23:58 -0500, Mike Snitzer wrote: > On Sat, Jan 27 2018 at 10:00pm -0500, > Bart Van Assche wrote: > > > On Sat, 2018-01-27 at 21:03 -0500, Mike Snitzer wrote: > > > You cannot even be forthcoming about the technical merit of a change you > > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-28 Thread Ming Lei
On Sun, Jan 28, 2018 at 12:54:38AM +, Bart Van Assche wrote: > On Sat, 2018-01-27 at 19:23 -0500, Mike Snitzer wrote: > > Your contributions do _not_ make up for your inability to work well with > > others. Tiresome doesn't begin to describe these interactions. > > > > Life is too short to

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Mike Snitzer
On Sat, Jan 27 2018 at 10:00pm -0500, Bart Van Assche wrote: > On Sat, 2018-01-27 at 21:03 -0500, Mike Snitzer wrote: > > You cannot even be forthcoming about the technical merit of a change you > > authored (commit 6077c2d70) that I'm left to clean up in the face of > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Bart Van Assche
On Sat, 2018-01-27 at 21:03 -0500, Mike Snitzer wrote: > You cannot even be forthcoming about the technical merit of a change you > authored (commit 6077c2d70) that I'm left to clean up in the face of > performance bottlenecks it unwittingly introduced? If you were being > honest: you'd grant

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Mike Snitzer
On Sat, Jan 27 2018 at 7:54pm -0500, Bart Van Assche wrote: > On Sat, 2018-01-27 at 19:23 -0500, Mike Snitzer wrote: > > Your contributions do _not_ make up for your inability to work well with > > others. Tiresome doesn't begin to describe these interactions. > > > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Bart Van Assche
On Sat, 2018-01-27 at 19:23 -0500, Mike Snitzer wrote: > Your contributions do _not_ make up for your inability to work well with > others. Tiresome doesn't begin to describe these interactions. > > Life is too short to continue enduring your bullshit. > > But do let us know when you have

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Mike Snitzer
On Sat, Jan 27 2018 at 5:12pm -0500, Bart Van Assche wrote: > On Sat, 2018-01-27 at 14:09 -0500, Mike Snitzer wrote: > > Ming let me know that he successfully tested this V3 patch using both > > your test (fio to both mpath and underlying path) and Bart's (02-mq with > >

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Ming Lei
On Sat, Jan 27, 2018 at 10:12:43PM +, Bart Van Assche wrote: > On Sat, 2018-01-27 at 14:09 -0500, Mike Snitzer wrote: > > Ming let me know that he successfully tested this V3 patch using both > > your test (fio to both mpath and underlying path) and Bart's (02-mq with > > can_queue in guest).

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Bart Van Assche
On Sat, 2018-01-27 at 14:09 -0500, Mike Snitzer wrote: > Ming let me know that he successfully tested this V3 patch using both > your test (fio to both mpath and underlying path) and Bart's (02-mq with > can_queue in guest). > > Would be great if you'd review and verify this fix works for you

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-27 Thread Mike Snitzer
On Tue, Jan 23 2018 at 10:31pm -0500, Ming Lei wrote: > On Tue, Jan 23, 2018 at 04:57:34PM +, Bart Van Assche wrote: > > On Wed, 2018-01-24 at 00:37 +0800, Ming Lei wrote: > > > On Tue, Jan 23, 2018 at 04:24:20PM +, Bart Van Assche wrote: > > > > My opinion about

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Ming Lei
On Tue, Jan 23, 2018 at 04:57:34PM +, Bart Van Assche wrote: > On Wed, 2018-01-24 at 00:37 +0800, Ming Lei wrote: > > On Tue, Jan 23, 2018 at 04:24:20PM +, Bart Van Assche wrote: > > > My opinion about this patch is as follows: > > > * Changing a blk_mq_delay_run_hw_queue() call followed

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Bart Van Assche
On Wed, 2018-01-24 at 00:37 +0800, Ming Lei wrote: > On Tue, Jan 23, 2018 at 04:24:20PM +, Bart Van Assche wrote: > > My opinion about this patch is as follows: > > * Changing a blk_mq_delay_run_hw_queue() call followed by return > > BLK_STS_DEV_RESOURCE into return BLK_STS_RESOURCE is wrong

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Ming Lei
On Tue, Jan 23, 2018 at 04:24:20PM +, Bart Van Assche wrote: > On Wed, 2018-01-24 at 00:16 +0800, Ming Lei wrote: > > @@ -1280,10 +1282,18 @@ bool blk_mq_dispatch_rq_list(struct request_queue > > *q, struct list_head *list, > > * - Some but not all block drivers stop a queue

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Bart Van Assche
On Wed, 2018-01-24 at 00:16 +0800, Ming Lei wrote: > @@ -1280,10 +1282,18 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, > struct list_head *list, >* - Some but not all block drivers stop a queue before >* returning BLK_STS_RESOURCE. Two exceptions are

Re: [PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Mike Snitzer
On Tue, Jan 23 2018 at 11:16am -0500, Ming Lei wrote: > This status is returned from driver to block layer if device related > resource is run out of, but driver can guarantee that IO dispatch will > be triggered in future when the resource is available. > > This patch

[PATCH V3] blk-mq: introduce BLK_STS_DEV_RESOURCE

2018-01-23 Thread Ming Lei
This status is returned from driver to block layer if device related resource is run out of, but driver can guarantee that IO dispatch will be triggered in future when the resource is available. This patch converts some drivers to use this return value. Meantime if driver returns BLK_STS_RESOURCE