Re: [GIT PULL] Queue free fix (was Re: [PATCH] block: Free queueresources at blk_release_queue())

From: Mike Snitzer
Date: Mon Nov 07 2011 - 16:45:20 EST


On Mon, Nov 07 2011 at 12:10pm -0500,
Mike Snitzer <snitzer@xxxxxxxxxx> wrote:

> On Mon, Nov 07 2011 at 10:36am -0500,
> Mike Snitzer <snitzer@xxxxxxxxxx> wrote:
> > Could be the block layer's onstack plugging changes are at the heart of
> > this.
> >
> > I voiced onstack plugging concerns relative to DM some time ago
> > (https://lkml.org/lkml/2011/3/9/450) but somehow convinced myself DM was
> > fine to no longer need dm_table_unplug_all() etc. Unfortunately I
> > cannot recall _why_ I felt that was the case.
> >
> > So DM needs further review relative to block's onstack plugging changes
> > and DM IO completion.
>
> dm_suspend is performed as part of the DM table reload that is being
> done my multipathd during path failure. Seems DM no longer insures
> inflight requests have finished during dm_suspend().
>
> Before onstack plugging (< 2.6.39):
> dm_suspend() -> dm_wait_for_completion() -> dm_unplug_all() -> dm_table_unplug_all()
>
> After onstack plugging (>= 2.6.39, commit 7eaceaccab5f40bb):
> dm_suspend's call to dm_wait_for_completion() no longer unplugs IO
> (dm_unplug_all and dm_table_unplug_all were removed without introducing
> a clear equivalent).

If a missing unplug were a concern then dm_wait_for_completion()'s check
for inflight IO would cause dm_suspend() to hang.

So the onstack plugging changes are unlikely to be the reason for this.

Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/