From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755752Ab1EBBUD (ORCPT ); Sun, 1 May 2011 21:20:03 -0400 Received: from smtp-out.google.com ([74.125.121.67]:46866 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754521Ab1EBBTs (ORCPT ); Sun, 1 May 2011 21:19:48 -0400 DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=fLECXY7ZOsJTr1Aq3A7Po8yQuUWnf52dBmFMC1K+Vy+oaWJ/05/YIOsGKemONLsWu LC5nIJ/AGVrl3OOO2P9Yw== From: Nikhil Rao To: Ingo Molnar , Peter Zijlstra , Mike Galbraith Cc: linux-kernel@vger.kernel.org, "Nikunj A. Dadhania" , Srivatsa Vaddagiri , Stephan Barwolf , Nikhil Rao Subject: [PATCH v1 04/19] sched: update cpu_load to be u64 Date: Sun, 1 May 2011 18:19:02 -0700 Message-Id: <1304299157-25769-5-git-send-email-ncrao@google.com> X-Mailer: git-send-email 1.7.3.1 In-Reply-To: <1304299157-25769-1-git-send-email-ncrao@google.com> References: <1304299157-25769-1-git-send-email-ncrao@google.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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