Re: [PATCH 12/16] freezer: clean up freeze_processes() failure path

From: Rafael J. Wysocki
Date: Mon Aug 29 2011 - 03:38:55 EST


On Monday, August 29, 2011, Tejun Heo wrote:
> Hello,
>
> On Sun, Aug 28, 2011 at 08:09:01PM +0200, Oleg Nesterov wrote:
> > This was copied from cancel_, yes. but what this
> > recalc_sigpending_and_wake() can or should do?
> >
> > It looks simply pointless. It can't clear TIF_SIGPENDING,
> > it can only do the unneeded/spurious wake_up(INTERRUPTIBLE).
>
> Yeah, I just copied it over. It seems it got confused between
> recalc_sigpending() and recalc_sigpending_and_wake() where the latter
> can't clear TIF_SIGPENDING. The signallable freezable kthread seems
> quite fragile. Once TIF_SIGPENDING is set, the only way for it to be
> cleared for a kthread is going through refrigerator and if freezing
> gets canceled before that happens, the kthread will have stuck
> TIF_SIGPENDING failing interruptible sleeps. We'll probably should
> move recalc_sigpending() to the top of refrigerator.
>
> But that said, I don't see any in-kernel user of
> set_freezable_with_signal(). Rafael, is there scheduled to be some
> new user of this API?

I'm not aware of any.

> It would be awesome if we can drop it.

Indeed.

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/