Skip to content
  • Colin Cross's avatar
    freezer: convert freezable helpers to freezer_do_not_count() · b0123586
    Colin Cross authored
    
    
    Freezing tasks will wake up almost every userspace task from
    where it is blocking and force it to run until it hits a
    call to try_to_sleep(), generally on the exit path from the syscall
    it is blocking in.  On resume each task will run again, usually
    restarting the syscall and running until it hits the same
    blocking call as it was originally blocked in.
    
    Convert the existing wait_event_freezable* wrappers to use
    freezer_do_not_count().  Combined with a previous patch,
    these tasks will not run during suspend or resume unless they wake
    up for another reason, in which case they will run until they hit
    the try_to_freeze() in freezer_count(), and then continue processing
    the wakeup after tasks are thawed.
    
    This results in a small change in behavior, previously a race
    between freezing and a normal wakeup would be won by the wakeup,
    now the task will freeze and then handle the wakeup after thawing.
    
    Acked-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarColin Cross <ccross@android.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    b0123586