aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 14:02:49 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 14:02:49 -0400
commit10b275ddfd05ccb414cfe0cc56a0f47ff20fe807 (patch)
tree22547c4df78a575194522fc0ecc01b9e54439d09 /kernel
parentadd096909da63ef32d6766f6771c07c9f16c6ee5 (diff)
parent8ea02606681beb41568c62ba060bdf51fc9ba14e (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched: [PATCH] sched: fix up fs/proc/array.c whitespace problems [PATCH] sched: prettify prio_to_wmult[] [PATCH] sched: document prio_to_wmult[] [PATCH] sched: improve weight-array comments [PATCH] sched: remove dead code from task_stime() Fixed up trivial conflict in fs/proc/array.c
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 3332bbb5d5cf..1c8076676eb1 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -736,7 +736,9 @@ static void update_curr_load(struct rq *rq, u64 now)
736 * 736 *
737 * The "10% effect" is relative and cumulative: from _any_ nice level, 737 * The "10% effect" is relative and cumulative: from _any_ nice level,
738 * if you go up 1 level, it's -10% CPU usage, if you go down 1 level 738 * if you go up 1 level, it's -10% CPU usage, if you go down 1 level
739 * it's +10% CPU usage. 739 * it's +10% CPU usage. (to achieve that we use a multiplier of 1.25.
740 * If a task goes up by ~10% and another task goes down by ~10% then
741 * the relative distance between them is ~25%.)
740 */ 742 */
741static const int prio_to_weight[40] = { 743static const int prio_to_weight[40] = {
742/* -20 */ 88818, 71054, 56843, 45475, 36380, 29104, 23283, 18626, 14901, 11921, 744/* -20 */ 88818, 71054, 56843, 45475, 36380, 29104, 23283, 18626, 14901, 11921,
@@ -746,15 +748,22 @@ static const int prio_to_weight[40] = {
746/* 10 */ 110, 87, 70, 56, 45, 36, 29, 23, 18, 15, 748/* 10 */ 110, 87, 70, 56, 45, 36, 29, 23, 18, 15,
747}; 749};
748 750
751/*
752 * Inverse (2^32/x) values of the prio_to_weight[] array, precalculated.
753 *
754 * In cases where the weight does not change often, we can use the
755 * precalculated inverse to speed up arithmetics by turning divisions
756 * into multiplications:
757 */
749static const u32 prio_to_wmult[40] = { 758static const u32 prio_to_wmult[40] = {
750 48356, 60446, 75558, 94446, 118058, 147573, 759/* -20 */ 48356, 60446, 75558, 94446, 118058,
751 184467, 230589, 288233, 360285, 450347, 760/* -15 */ 147573, 184467, 230589, 288233, 360285,
752 562979, 703746, 879575, 1099582, 1374389, 761/* -10 */ 450347, 562979, 703746, 879575, 1099582,
753 1717986, 2147483, 2684354, 3355443, 4194304, 762/* -5 */ 1374389, 1717986, 2147483, 2684354, 3355443,
754 5244160, 6557201, 8196502, 10250518, 12782640, 763/* 0 */ 4194304, 5244160, 6557201, 8196502, 10250518,
755 16025997, 19976592, 24970740, 31350126, 39045157, 764/* 5 */ 12782640, 16025997, 19976592, 24970740, 31350126,
756 49367440, 61356675, 76695844, 95443717, 119304647, 765/* 10 */ 39045157, 49367440, 61356675, 76695844, 95443717,
757 148102320, 186737708, 238609294, 286331153, 766/* 15 */ 119304647, 148102320, 186737708, 238609294, 286331153,
758}; 767};
759 768
760static inline void 769static inline void