Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-30 Thread Akinobu Mita
2015-09-30 6:50 GMT+09:00 Tejun Heo : > Hello, > > On Tue, Sep 29, 2015 at 11:03:46AM -0400, Tejun Heo wrote: >> On Tue, Sep 29, 2015 at 09:01:31AM -0600, Jens Axboe wrote: >> > I think that would be very useful, it seems sort of half-assed if the >> > caller >> > side has to provide serialization

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-29 Thread Tejun Heo
Hello, On Tue, Sep 29, 2015 at 11:03:46AM -0400, Tejun Heo wrote: > On Tue, Sep 29, 2015 at 09:01:31AM -0600, Jens Axboe wrote: > > I think that would be very useful, it seems sort of half-assed if the caller > > side has to provide serialization for that. > > Yeah, the thing is init/exit are usu

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-29 Thread Tejun Heo
Hello, On Tue, Sep 29, 2015 at 09:01:31AM -0600, Jens Axboe wrote: > I think that would be very useful, it seems sort of half-assed if the caller > side has to provide serialization for that. Yeah, the thing is init/exit are usually caller synchronized but percpu_rwsem's kill/reinit are more of m

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-29 Thread Jens Axboe
On 09/28/2015 08:48 AM, Tejun Heo wrote: Hello, On Sun, Sep 27, 2015 at 10:06:05PM +0900, Akinobu Mita wrote: void blk_mq_finish_init(struct request_queue *q) { + mutex_lock(&q->mq_freeze_lock); percpu_ref_switch_to_percpu(&q->mq_usage_counter); + mutex_unlock(&q->mq_freeze_l

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-28 Thread Christoph Hellwig
On Mon, Sep 28, 2015 at 10:48:39AM -0400, Tejun Heo wrote: > Ah, you're right. I was thinking that percpu_ref_switch_to_percpu() > being called after blk_mq_freeze_queue_start() would be buggy and thus > the above can't be enough but that is safe as long as the calls are > properly synchronized.

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-28 Thread Tejun Heo
Hello, On Sun, Sep 27, 2015 at 10:06:05PM +0900, Akinobu Mita wrote: > >> void blk_mq_finish_init(struct request_queue *q) > >> { > >> + mutex_lock(&q->mq_freeze_lock); > >> percpu_ref_switch_to_percpu(&q->mq_usage_counter); > >> + mutex_unlock(&q->mq_freeze_lock); > > > > This loo

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-27 Thread Akinobu Mita
Hi Tejun, 2015-09-27 2:32 GMT+09:00 Tejun Heo : > Hello, > > On Sun, Sep 27, 2015 at 02:09:24AM +0900, Akinobu Mita wrote: >> @@ -420,7 +420,9 @@ static void blk_mq_sysfs_init(struct request_queue *q) >> /* see blk_register_queue() */ >> void blk_mq_finish_init(struct request_queue *q) >> { >>

Re: [PATCH v4 6/7] blk-mq: fix freeze queue race

2015-09-26 Thread Tejun Heo
Hello, On Sun, Sep 27, 2015 at 02:09:24AM +0900, Akinobu Mita wrote: > @@ -420,7 +420,9 @@ static void blk_mq_sysfs_init(struct request_queue *q) > /* see blk_register_queue() */ > void blk_mq_finish_init(struct request_queue *q) > { > + mutex_lock(&q->mq_freeze_lock); > percpu_ref_sw