Re: [PATCH v2] PM/Memory-hotplug: Avoid task freezing failures

From: Srivatsa S. Bhat
Date: Wed Nov 16 2011 - 14:05:43 EST


On 11/17/2011 12:11 AM, Tejun Heo wrote:
> Hello,
>
> On Wed, Nov 16, 2011 at 11:54:04PM +0530, Srivatsa S. Bhat wrote:
>> Ok, so by "proper solution", are you referring to a totally different
>> method (than grabbing pm_mutex) to implement mutual exclusion between
>> subsystems and suspend/hibernation, something like the suspend blockers
>> stuff and friends?
>> Or are you hinting at just the existing code itself being fixed more
>> properly than what this patch does, to avoid having side effects like
>> you pointed out?
>
> Oh, nothing fancy. Just something w/o busy looping would be fine.
> The stinking thing is we don't have mutex_lock_freezable(). Lack of
> proper freezable interface seems to be a continuing problem and I'm
> not sure what the proper solution should be at this point. Maybe we
> should promote freezable to a proper task state. Maybe freezable
> kthread is a bad idea to begin with. Maybe instead of removing
> freezable_with_signal() we should make that default, that way,
> freezable can hitch on the pending signal handling (this creates
> another set of problems tho - ie. who's responsible for clearing
> TIF_SIGPENDING?). I don't know.
>

Thanks a lot for the explanation! I now get an idea about your thoughts
on the fundamental issues with the freezer that are causing a broad range
of problems... Hmm, definitely something to ponder over...

> Maybe just throw in msleep(10) there with fat ugly comment explaining
> why the hack is necessary?
>

Hehe, that surely sounds like the simplest of all the approaches you
suggested ;-) I'll add this to the while loop in the patch and repost
it, hoping we can solve the fundamental issues effectively at a later time.

Thanks,
Srivatsa S. Bhat

--
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/