lkml.org 
[lkml]   [2011]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v1 04/19] sched: update cpu_load to be u64
    Date
    cpu_load derives from rq->load.weight and needs to be updated to u64 as it can
    now overflow on 32-bit machines. This patch updates cpu_load in rq struct, and
    all functions that use this field.

    Signed-off-by: Nikhil Rao <ncrao@google.com>
    ---
    kernel/sched.c | 9 ++++-----
    1 files changed, 4 insertions(+), 5 deletions(-)

    diff --git a/kernel/sched.c b/kernel/sched.c
    index 05e3fe2..7badde6 100644
    --- a/kernel/sched.c
    +++ b/kernel/sched.c
    @@ -454,7 +454,7 @@ struct rq {
    */
    unsigned long nr_running;
    #define CPU_LOAD_IDX_MAX 5
    - unsigned long cpu_load[CPU_LOAD_IDX_MAX];
    + u64 cpu_load[CPU_LOAD_IDX_MAX];
    unsigned long last_load_update_tick;
    #ifdef CONFIG_NO_HZ
    u64 nohz_stamp;
    @@ -3364,8 +3364,7 @@ static const unsigned char
    * would be when CPU is idle and so we just decay the old load without
    * adding any new load.
    */
    -static unsigned long
    -decay_load_missed(unsigned long load, unsigned long missed_updates, int idx)
    +static u64 decay_load_missed(u64 load, unsigned long missed_updates, int idx)
    {
    int j = 0;

    @@ -3395,7 +3394,7 @@ decay_load_missed(unsigned long load, unsigned long missed_updates, int idx)
    */
    static void update_cpu_load(struct rq *this_rq)
    {
    - unsigned long this_load = this_rq->load.weight;
    + u64 this_load = this_rq->load.weight;
    unsigned long curr_jiffies = jiffies;
    unsigned long pending_updates;
    int i, scale;
    @@ -3412,7 +3411,7 @@ static void update_cpu_load(struct rq *this_rq)
    /* Update our load: */
    this_rq->cpu_load[0] = this_load; /* Fasttrack for idx 0 */
    for (i = 1, scale = 2; i < CPU_LOAD_IDX_MAX; i++, scale += scale) {
    - unsigned long old_load, new_load;
    + u64 old_load, new_load;

    /* scale is effectively 1 << i now, and >> i divides by scale */

    --
    1.7.3.1


    \
     
     \ /
      Last update: 2011-05-02 03:23    [W:0.020 / U:30.656 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site