Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@nuts.ninka.net>2002-03-10 15:12:17 -0800
committerDavid S. Miller <davem@nuts.ninka.net>2002-03-10 15:12:17 -0800
commit97cab050be714a476a5e516de71de5ca61238e23 (patch)
tree19e416a4ccc800491da5ae67a268fcc419a91426
parent49d1f68bdacb222ee123c4b29c84fe1c28fcae73 (diff)
If cache_decay_ticks is large enough, the migration
thread startup at boot time can fail. Fix this by temporarily setting cache_decay_ticks to zero around migration thread startup.
-rw-r--r--kernel/sched.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 95ae3dd48ab2..73110e6a8abc 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1659,7 +1659,7 @@ repeat:
void __init migration_init(void)
{
- unsigned long tmp;
+ unsigned long tmp, orig_cache_decay_ticks;
int cpu;
tmp = 0;
@@ -1672,6 +1672,9 @@ void __init migration_init(void)
migration_mask = tmp;
+ orig_cache_decay_ticks = cache_decay_ticks;
+ cache_decay_ticks = 0;
+
for (cpu = 0; cpu < smp_num_cpus; cpu++) {
int logical = cpu_logical_map(cpu);
@@ -1680,5 +1683,7 @@ void __init migration_init(void)
}
if (migration_mask)
BUG();
+
+ cache_decay_ticks = orig_cache_decay_ticks;
}
#endif