lkml.org 
[lkml]   [2010]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v2 4/8] sched: Fold updating of the last_update_time_info into update_ts_time_stats()
    From: Arjan van de Ven <arjan@linux.intel.com>

    This patch folds the updating of the last_update_time into the
    update_ts_time_stats() function, and updates the callers.

    This allows for further cleanups that are done in the next patch.

    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    ---

    kernel/time/tick-sched.c | 22 +++++++++++-----------
    1 file changed, 11 insertions(+), 11 deletions(-)

    diff -puN kernel/time/tick-sched.c~sched-fold-updating-of-the-last-update-time-into-update_ts_time_stats kernel/time/tick-sched.c
    --- a/kernel/time/tick-sched.c~sched-fold-updating-of-the-last-update-time-into-update_ts_time_stats
    +++ a/kernel/time/tick-sched.c
    @@ -153,7 +153,8 @@ static void tick_nohz_update_jiffies(kti
    /*
    * Updates the per cpu time idle statistics counters
    */
    -static void update_ts_time_stats(struct tick_sched *ts, ktime_t now)
    +static void
    +update_ts_time_stats(struct tick_sched *ts, ktime_t now, u64 *last_update_time)
    {
    ktime_t delta;

    @@ -163,13 +164,19 @@ static void update_ts_time_stats(struct
    ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
    ts->idle_entrytime = now;
    }
    +
    + if (ts->idle_active && last_update_time)
    + *last_update_time = ktime_to_us(ts->idle_lastupdate);
    + else
    + *last_update_time = ktime_to_us(now);
    +
    }

    static void tick_nohz_stop_idle(int cpu, ktime_t now)
    {
    struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);

    - update_ts_time_stats(ts, now);
    + update_ts_time_stats(ts, now, NULL);
    ts->idle_active = 0;

    sched_clock_idle_wakeup_event(0);
    @@ -181,7 +188,7 @@ static ktime_t tick_nohz_start_idle(stru

    now = ktime_get();

    - update_ts_time_stats(ts, now);
    + update_ts_time_stats(ts, now, NULL);

    ts->idle_entrytime = now;
    ts->idle_active = 1;
    @@ -206,18 +213,11 @@ static ktime_t tick_nohz_start_idle(stru
    u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time)
    {
    struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
    - ktime_t now;

    if (!tick_nohz_enabled)
    return -1;

    - now = ktime_get();
    - update_ts_time_stats(ts, now);
    -
    - if (ts->idle_active)
    - *last_update_time = ktime_to_us(ts->idle_lastupdate);
    - else
    - *last_update_time = ktime_to_us(now);
    + update_ts_time_stats(ts, ktime_get(), last_update_time);

    return ktime_to_us(ts->idle_sleeptime);
    }
    _

    \
     
     \ /
      Last update: 2010-05-09 17:27    [W:0.024 / U:89.624 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site