Re: [RFC PATCH] fs: Use a seperate wq for do_sync_work() to avoid a potential deadlock

From: Aaron Tomlin
Date: Fri Sep 19 2014 - 11:46:25 EST


On Thu, Sep 18, 2014 at 07:16:13AM +1000, Dave Chinner wrote:
> > - Both lru_add_drain and do_sync_work work items are added to
> > the same global system_wq
> >
> > - The current work fn on the system_wq is do_sync_work and is
> > blocked waiting to aquire an sb's s_umount for reading
> >
> > - The umount task is the current owner of the s_umount in
> > question but is waiting for do_sync_work to continue.
> > Thus we hit a deadlock situation.
>
> What kernel did you see this deadlock on?

Sorry for the noise. This deadlock was produced under a kernel whereby
the workqueue implementation is significantly less sophisticated.

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