[dm-devel] might_sleep warning in multipath_dtr

Christof Schmitt christof.schmitt at de.ibm.com
Wed May 21 12:15:26 UTC 2008


On Wed, May 07, 2008 at 02:28:20PM +0100, Alasdair G Kergon wrote:
> On Wed, May 07, 2008 at 10:37:16AM +0200, Christof Schmitt wrote:
> >     <4> [<000003e00008f79c>] multipath_dtr+0x38/0x50 [dm_multipath]
> >     <4> [<000003e000077e4a>] dm_table_put+0xae/0x134 [dm_mod]
> >     <4> [<000003e000076020>] dm_any_congested+0x50/0x88 [dm_mod]
> 
> > I don't know, if this exact situation is reproducible, but we have a
> > memory dump that should have some more data.
> 
> Well I'm guessing dm_any_congested() ran alongside a table reload, such
> that dm_any_congested() was still referencing the old table after
> dm_swap_table() removed it.
> 
> IOW There needs to be better synchronisation between those two
> functions.

I had a look at the code, but i don't have enough knowledge about the
device-mapper and the block layer to understand what is happening
here. dm_swap_table is probably triggered by multipathd, but i don't
know about the congestion mechanism.

Do you have an idea how to continue with this problem?

Christof




More information about the dm-devel mailing list