Re: livelock in __writeback_inodes_wb ?

From: Simon Jeons
Date: Tue Dec 11 2012 - 21:32:08 EST


On Tue, 2012-12-11 at 09:29 -0500, Dave Jones wrote:
> On Tue, Dec 11, 2012 at 04:23:27PM +0800, Fengguang Wu wrote:
> > On Wed, Nov 28, 2012 at 09:55:15AM -0500, Dave Jones wrote:
> > > We had a user report the soft lockup detector kicked after 22
> > > seconds of no progress, with this trace..
> >
> > Where is the original report? The reporter may help provide some clues
> > on the workload that triggered the bug.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=880949
>
> > The bug reporter should know best whether there are heavy IO.
> >
> > However I suspect it's not directly caused by heavy IO: we will
> > release &wb->list_lock before each __writeback_single_inode() call,
> > which starts writeback IO for each inode.
> >
> > > Should there be something in this loop periodically poking
> > > the watchdog perhaps ?
> >
> > It seems we failed to release &wb->list_lock in wb_writeback() for
> > long time (dozens of seconds). That is, the inode_sleep_on_writeback()
> > is somehow not called. However it's not obvious to me how come this
> > can happen..
>
> Right, it seems that we only drop the lock when there is more work to do.
> And if there is no work to do, then we would have bailed from the loop.

If no work to do, lock will be dropped after for loop.

>
> mysterious.
>
> Dave
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


--
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/