Re: [RFC 5/5] pm: remove kernel thread freezing

From: Dave Chinner
Date: Wed Oct 04 2017 - 03:18:15 EST


On Wed, Oct 04, 2017 at 02:47:56AM +0200, Luis R. Rodriguez wrote:
> On Tue, Oct 03, 2017 at 11:15:07PM +0200, Rafael J. Wysocki wrote:
> > On Tuesday, October 3, 2017 8:59:00 PM CEST Rafael J. Wysocki wrote:
> > > On Tuesday, October 3, 2017 8:53:13 PM CEST Luis R. Rodriguez wrote:
> > > > Now that all filesystems which used to rely on kthread
> > > > freezing have been converted to filesystem freeze/thawing
> > > > we can remove the kernel kthread freezer.
> > > >
> > > > Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
> > >
> > > I like this one. :-)
> >
> > However, suspend_freeze/thaw_processes() require some more work.
> >
> > In particular, the freezing of workqueues is being removed here
> > without a replacement.
>
> Hrm, where do you see that? freeze_workqueues_busy() is still called on
> try_to_freeze_tasks(). Likewise thaw_processes() also calls thaw_workqueues().
> I did forget to nuke pm_nosig_freezing though.

static int try_to_freeze_tasks(bool user_only)
{
.....
if (!user_only)
freeze_workqueues_begin();
.....
if (!user_only) {
wq_busy = freeze_workqueues_busy();
.....
}

i.e. only try_to_freeze_tasks(false) will freeze workqueues, and the
only function that calls that - freeze_kernel_threads() - is removed
by this patch.

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx