Messages in this thread | | | From | "Rafael J. Wysocki" <> | Subject | Re: [PATCH 12/16] freezer: clean up freeze_processes() failure path | Date | Mon, 29 Aug 2011 09:40:37 +0200 |
| |
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
| |