diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-05-02 14:08:52 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-05-15 09:32:45 -0400 |
commit | 2d02494f5a90f2e4b3c4c6acc85ec94674cdc431 (patch) | |
tree | 8032438de5b55282976583b111d02d9379ff3966 /kernel/sched.c | |
parent | dce48a84adf1806676319f6f480e30a6daa012f9 (diff) |
sched, timers: cleanup avenrun users
avenrun is an rough estimate so we don't have to worry about
consistency of the three avenrun values. Remove the xtime lock
dependency and provide a function to scale the values. Cleanup the
users.
[ Impact: cleanup ]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index f4eb88153bd1..497c09ba61e7 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -2868,6 +2868,21 @@ static unsigned long calc_load_update; | |||
2868 | unsigned long avenrun[3]; | 2868 | unsigned long avenrun[3]; |
2869 | EXPORT_SYMBOL(avenrun); | 2869 | EXPORT_SYMBOL(avenrun); |
2870 | 2870 | ||
2871 | /** | ||
2872 | * get_avenrun - get the load average array | ||
2873 | * @loads: pointer to dest load array | ||
2874 | * @offset: offset to add | ||
2875 | * @shift: shift count to shift the result left | ||
2876 | * | ||
2877 | * These values are estimates at best, so no need for locking. | ||
2878 | */ | ||
2879 | void get_avenrun(unsigned long *loads, unsigned long offset, int shift) | ||
2880 | { | ||
2881 | loads[0] = (avenrun[0] + offset) << shift; | ||
2882 | loads[1] = (avenrun[1] + offset) << shift; | ||
2883 | loads[2] = (avenrun[2] + offset) << shift; | ||
2884 | } | ||
2885 | |||
2871 | static unsigned long | 2886 | static unsigned long |
2872 | calc_load(unsigned long load, unsigned long exp, unsigned long active) | 2887 | calc_load(unsigned long load, unsigned long exp, unsigned long active) |
2873 | { | 2888 | { |