From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: Tejun Heo <tj@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
Linux PM list <linux-pm@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
horms@verge.net.au, "pavel@ucw.cz" <pavel@ucw.cz>,
Len Brown <lenb@kernel.org>
Subject: Re: [Update][PATCH] PM / Hibernate: Fix s2disk regression related to unlock_system_sleep()
Date: Thu, 19 Jan 2012 01:16:06 +0530 [thread overview]
Message-ID: <4F17217E.5040805@linux.vnet.ibm.com> (raw)
In-Reply-To: <20120118193040.GA28538@google.com>
On 01/19/2012 01:00 AM, Tejun Heo wrote:
> Hello,
>
> On Thu, Jan 19, 2012 at 12:52:32AM +0530, Srivatsa S. Bhat wrote:
>> Somehow I don't think its a hack, based on my perception as described
>> above. But feel free to prove me wrong :-)
>
> Thanks for the explanation. Yeah, I agree and it's much simpler this
> way, which is nice. So, in short, because freezing state can't change
> across lock_system_sleep(), there's no reason to check for freezing
> state on unlock and this nicely resolves the freezer problem together.
>
Absolutely!
> The only thing to be careful is, then, we need to set and clear SKIP
> inside pm_mutex.
>
Not exactly. We need to set SKIP before grabbing pm_mutex and clear it
inside pm_mutex. The reason is that we decided to set SKIP in the first
place just to avoid the freezer from declaring failure when we are
blocked on pm_mutex. If we move it to *after* mutex_lock(&pm_mutex), that
original intention itself is not satisfied, and we will hit freezing
failures - IOW making the set and clear exercise useless!
So, something like this should work perfectly:
lock_system_sleep()
{
freezer_do_not_count();
mutex_lock(&pm_mutex);
current->flags &= ~PF_FREEZER_SKIP;
}
But in the interest of making the code look a bit symmetric, we can do:
lock_system_sleep()
{
freezer_do_not_count();
mutex_lock(&pm_mutex);
}
unlock_system_sleep()
{
current->flags &= ~PF_FREEZER_SKIP;
mutex_unlock(&pm_mutex);
}
Regards,
Srivatsa S. Bhat
IBM Linux Technology Center
next prev parent reply other threads:[~2012-01-18 19:46 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-17 22:45 [PATCH] PM / Hibernate: Fix s2disk regression related to unlock_system_sleep() Rafael J. Wysocki
2012-01-17 23:15 ` [Update][PATCH] " Rafael J. Wysocki
2012-01-18 12:59 ` Srivatsa S. Bhat
2012-01-18 15:42 ` Tejun Heo
2012-01-18 16:54 ` Srivatsa S. Bhat
2012-01-18 16:58 ` Tejun Heo
2012-01-18 17:19 ` Srivatsa S. Bhat
2012-01-18 17:30 ` Tejun Heo
2012-01-18 17:33 ` Tejun Heo
2012-01-19 10:37 ` Pavel Machek
2012-01-19 10:55 ` Srivatsa S. Bhat
2012-01-19 17:40 ` Pavel Machek
2012-01-19 18:10 ` Srivatsa S. Bhat
2012-01-18 19:22 ` Srivatsa S. Bhat
2012-01-18 19:30 ` Tejun Heo
2012-01-18 19:46 ` Srivatsa S. Bhat [this message]
2012-01-18 20:29 ` Srivatsa S. Bhat
2012-01-18 22:04 ` Tejun Heo
2012-01-18 22:22 ` Rafael J. Wysocki
2012-01-19 14:40 ` Srivatsa S. Bhat
2012-01-19 22:35 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F17217E.5040805@linux.vnet.ibm.com \
--to=srivatsa.bhat@linux.vnet.ibm.com \
--cc=horms@verge.net.au \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=rjw@sisk.pl \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.