Commit 97cab050 authored by David S. Miller's avatar David S. Miller

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.
parent 49d1f68b
...@@ -1659,7 +1659,7 @@ static int migration_thread(void * unused) ...@@ -1659,7 +1659,7 @@ static int migration_thread(void * unused)
void __init migration_init(void) void __init migration_init(void)
{ {
unsigned long tmp; unsigned long tmp, orig_cache_decay_ticks;
int cpu; int cpu;
tmp = 0; tmp = 0;
...@@ -1672,6 +1672,9 @@ void __init migration_init(void) ...@@ -1672,6 +1672,9 @@ void __init migration_init(void)
migration_mask = tmp; migration_mask = tmp;
orig_cache_decay_ticks = cache_decay_ticks;
cache_decay_ticks = 0;
for (cpu = 0; cpu < smp_num_cpus; cpu++) { for (cpu = 0; cpu < smp_num_cpus; cpu++) {
int logical = cpu_logical_map(cpu); int logical = cpu_logical_map(cpu);
...@@ -1680,5 +1683,7 @@ void __init migration_init(void) ...@@ -1680,5 +1683,7 @@ void __init migration_init(void)
} }
if (migration_mask) if (migration_mask)
BUG(); BUG();
cache_decay_ticks = orig_cache_decay_ticks;
} }
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment