Re: Freezable workqueue blocks non-freezable workqueue during the system resume process

From: Peter Chen
Date: Fri Feb 26 2016 - 01:23:56 EST


On Thu, Feb 25, 2016 at 05:01:12PM -0500, Tejun Heo wrote:
> Hello, Peter.
>
> On Wed, Feb 24, 2016 at 03:24:30PM +0800, Peter Chen wrote:
> > > You might want to complain to the block-layer people about this. I
> > > don't know if anything can be done to fix it.
> > >
> > > Or maybe flush_work and flush_delayed_work can be changed to avoid
> > > blocking if the workqueue is frozen. Tejun?
> > >
> >
> > I have a patch to show the root cause of this issue.
> >
> > http://www.spinics.net/lists/linux-usb/msg136815.html
>
> I don't get it. Why would it deadlock? Shouldn't things get rolling
> once the workqueues are thawed?
>

Hi Tejun,

The workqueue writeback can't be thawed due to driver's resume
(dpm_complete) is lock nested, and can't be finished.

--

Best Regards,
Peter Chen