Re: [PATCH] sunrpc/nfs: don't allow TASK_KILLABLE sleeps to block the freezer

From: Rafael J. Wysocki
Date: Fri Dec 23 2011 - 17:34:37 EST


On Friday, December 23, 2011, Jeff Layton wrote:
> On Thu, 1 Dec 2011 22:52:13 +0100
> "Rafael J. Wysocki" <rjw@xxxxxxx> wrote:
>
> > On Thursday, December 01, 2011, Jeff Layton wrote:
> > > Allow the freezer to skip wait_on_bit_killable sleeps in the sunrpc
> > > layer. This should allow suspend and hibernate events to proceed, even
> > > when there are RPC's pending on the wire.
> > >
> > > Also, wrap the TASK_KILLABLE sleeps in NFS layer in freezer_do_not_count
> > > and freezer_count calls. This allows the freezer to skip tasks that are
> > > sleeping while looping on EJUKEBOX or NFS4ERR_DELAY sorts of errors.
> > >
> > > Rafael, I've gone ahead and combined the two patches into one here
> > > and rebased this on top of the pm-freezer branch. Let me know if you'd
> > > prefer to keep it as two patches.
> >
> > One patch is just fine for me, applied to linux-pm/linux-next.
> >
> > Thanks,
> > Rafael
> >
> >
>
> -------------------[snip]----------------
>
> > > +
> > > +/* Like schedule_timeout_killable(), but should not block the freezer. */
> > > +#define freezable_schedule_timeout_killable(timeout) \
> > > +({ \
> > > + freezer_do_not_count(); \
> > > + schedule_timeout_killable(timeout); \
> > > + freezer_count(); \
> > > +})
> > > +
>
>
> Whoops...I just noticed a problem with this patch.
>
> freezable_schedule_timeout_killable does not return the return code
> from schedule_timeout_killable. Would you prefer for me to respin this
> patch, or send a new patch on top of this one that just fixes that bug?

Please send a new fix patch on top of it.

Thanks,
Rafael
--
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/