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

Aaron Tomlin
2014-09-19T15:46:23Z

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