lkml.org 
[lkml]   [2012]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/8] PM / Sleep: Do not check wakeup too often in try_to_freeze_tasks()
    Date
    From: Rafael J. Wysocki <rjw@sisk.pl>

    Use the observation that it is more efficient to check the wakeup
    variable once before the loop reporting tasks that were not
    frozen in try_to_freeze_tasks() than to do that in every step of that
    loop.

    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    ---
    kernel/power/process.c | 16 +++++++++-------
    1 file changed, 9 insertions(+), 7 deletions(-)

    Index: linux/kernel/power/process.c
    ===================================================================
    --- linux.orig/kernel/power/process.c
    +++ linux/kernel/power/process.c
    @@ -98,13 +98,15 @@ static int try_to_freeze_tasks(bool user
    elapsed_csecs / 100, elapsed_csecs % 100,
    todo - wq_busy, wq_busy);

    - read_lock(&tasklist_lock);
    - do_each_thread(g, p) {
    - if (!wakeup && !freezer_should_skip(p) &&
    - p != current && freezing(p) && !frozen(p))
    - sched_show_task(p);
    - } while_each_thread(g, p);
    - read_unlock(&tasklist_lock);
    + if (!wakeup) {
    + read_lock(&tasklist_lock);
    + do_each_thread(g, p) {
    + if (p != current && !freezer_should_skip(p)
    + && freezing(p) && !frozen(p))
    + sched_show_task(p);
    + } while_each_thread(g, p);
    + read_unlock(&tasklist_lock);
    + }
    } else {
    printk("(elapsed %d.%02d seconds) ", elapsed_csecs / 100,
    elapsed_csecs % 100);


    \
     
     \ /
      Last update: 2012-02-07 02:11    [W:0.021 / U:0.296 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site