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

From: Jeff Layton
Date: Fri Dec 23 2011 - 08:12:21 EST


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?

--
Jeff Layton <jlayton@xxxxxxxxxx>
--
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/