[dm-devel] [PATCH 8/9] dm: Fix two race conditions related to stopping and starting queues

Mike Snitzer snitzer at redhat.com
Thu Sep 1 19:35:28 UTC 2016


On Thu, Sep 01 2016 at  3:05pm -0400,
Mike Snitzer <snitzer at redhat.com> wrote:

> On Thu, Sep 01 2016 at  1:59pm -0400,
> Bart Van Assche <bart.vanassche at sandisk.com> wrote:
> 
> > * A "if (!blk_queue_stopped(q))" test needs to be added in
> > dm_stop_queue() to avoid the following hang (that test was present
> > in my version of the patch that adds the
> > blk_mq_{freeze,unfreeze}_queue() calls):
> > 
> >     sysrq: SysRq : Show Blocked State
> >       task                        PC stack   pid father
> >     multipathd      D ffff8803c8d37b80     0  3242      1 0x00000000
> >     Call Trace:
> >      [<ffffffff81627087>] schedule+0x37/0x90
> >      [<ffffffff813097e1>] blk_mq_freeze_queue_wait+0x51/0xb0
> >      [<ffffffff8130be05>] blk_mq_freeze_queue+0x15/0x20
> >      [<ffffffffa034d882>] dm_stop_queue+0x62/0xc0 [dm_mod]
> >      [<ffffffffa0342a1b>] dm_swap_table+0x2fb/0x370 [dm_mod]
> >      [<ffffffffa0347875>] dev_suspend+0x95/0x220 [dm_mod]
> >      [<ffffffffa03480fc>] ctl_ioctl+0x1fc/0x550 [dm_mod]
> >      [<ffffffffa034845e>] dm_ctl_ioctl+0xe/0x20 [dm_mod]
> >      [<ffffffff811ee27f>] do_vfs_ioctl+0x8f/0x690
> >      [<ffffffff811ee8bc>] SyS_ioctl+0x3c/0x70
> >      [<ffffffff8162d125>] entry_SYSCALL_64_fastpath+0x18/0xa8
> 
> OK, I've adjusted accordingly and pushed dm-4.8 and dm-4.9 again (with
> force, sorry about that).

I'm testing the result.. needs more time.  I'll let you know once my
mptest-based testing passes.  (I think I'm holding the q->lock too
long in dm_mq_stop_queue()).




More information about the dm-devel mailing list