lkml.org 
[lkml]   [2012]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Update][PATCH] PM / Hibernate: Fix s2disk regression related to unlock_system_sleep()
    On Thu, Jan 19, 2012 at 01:59:01AM +0530, Srivatsa S. Bhat wrote:
    > From: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    > Subject: [PATCH] PM / Hibernate: Rewrite unlock_system_sleep() to fix s2disk regression
    >
    > Commit 33e638b, "PM / Sleep: Use the freezer_count() functions in
    > [un]lock_system_sleep() APIs" introduced an undesirable change in the
    > behaviour of unlock_system_sleep() since freezer_count() internally calls
    > try_to_freeze() - which we don't need in unlock_system_sleep().
    >
    > And commit bcda53f, "PM / Sleep: Replace mutex_[un]lock(&pm_mutex) with
    > [un]lock_system_sleep()" made these APIs wide-spread. This caused a
    > regression in suspend-to-disk where snapshot_read() and snapshot_write()
    > were getting frozen due to the try_to_freeze embedded in
    > unlock_system_sleep(), since these functions were invoked when the freezing
    > condition was still in effect.
    >
    > Fix this by rewriting unlock_system_sleep() by open-coding freezer_count()
    > and dropping the try_to_freeze() part. Not only will this fix the
    > regression but this will also ensure that the API only does what it is
    > intended to do, and nothing more, under the hood.
    >
    > While at it, make the code more correct and robust by ensuring that the
    > PF_FREEZER_SKIP flag gets cleared with pm_mutex held, to avoid a race with
    > the freezer.
    >
    > Reported-by: Rafael J. Wysocki <rjw@sisk.pl>
    > Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>

    Acked-by: Tejun Heo <tj@kernel.org>

    Thanks!

    --
    tejun


    \
     
     \ /
      Last update: 2012-01-18 23:07    [W:0.020 / U:118.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site