Messages in this thread | | | Date | Mon, 7 Nov 2011 16:44:51 -0500 | From | Mike Snitzer <> | Subject | Re: [GIT PULL] Queue free fix (was Re: [PATCH] block: Free queue resources at blk_release_queue()) |
| |
On Mon, Nov 07 2011 at 12:10pm -0500, Mike Snitzer <snitzer@redhat.com> wrote:
> On Mon, Nov 07 2011 at 10:36am -0500, > Mike Snitzer <snitzer@redhat.com> 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
| |