Re: boot-time slowdown for measure_migration_cost

From: Ingo Molnar
Date: Mon Jan 30 2006 - 14:22:24 EST



* Luck, Tony <tony.luck@xxxxxxxxx> wrote:

> Doing this drops the time to compute the value from 15.58s to 10.39s,
> while the value of migration_cost changes from 10112 to 9909.
>
> > - in kernel/sched.c, change this line:
> > size = size * 20 / 19;
> > to:
> > size = size * 10 / 9;
>
> Doing this instead of changing ITERATIONS makes the computation take
> 7.79s and the computed migration_cost is 9987.
>
> Doing both gets the time down to 5.20s, and the migration_cost=9990.

ok, that's good enough i think - we could certainly do the patch below
in v2.6.16.

> On the plus side Prarit's results show that this time isn't scaling
> with NR_CPUS ... apparently just cache size and number of domains are
> significant in the time to compute.

yes, this comes from the algorithm, it only computes once per distance
(and uses the cached value from then on), independently of the number of
CPUs.

Ingo

---
reduce the amount of time the migration cost calculations cost during
bootup.

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>

--- linux/kernel/sched.c.orig
+++ linux/kernel/sched.c
@@ -5141,7 +5141,7 @@ static void init_sched_build_groups(stru
#define SEARCH_SCOPE 2
#define MIN_CACHE_SIZE (64*1024U)
#define DEFAULT_CACHE_SIZE (5*1024*1024U)
-#define ITERATIONS 2
+#define ITERATIONS 1
#define SIZE_THRESH 130
#define COST_THRESH 130

@@ -5480,9 +5480,9 @@ static unsigned long long measure_migrat
break;
}
/*
- * Increase the cachesize in 5% steps:
+ * Increase the cachesize in 10% steps:
*/
- size = size * 20 / 19;
+ size = size * 10 / 9;
}

if (migration_debug)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/