From: Nathan Lynch Date: Thu, 11 Jan 2007 07:15:28 +0000 (-0800) Subject: [PATCH] sched: tasks cannot run on cpus onlined after boot X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=e5e5673f828623e58a401862b33173591faaeaff;p=deliverable%2Flinux.git [PATCH] sched: tasks cannot run on cpus onlined after boot Commit 5c1e176781f43bc902a51e5832f789756bff911b ("sched: force /sbin/init off isolated cpus") sets init's cpus_allowed to a subset of cpu_online_map at boot time, which means that tasks won't be scheduled on cpus that are added to the system later. Make init's cpus_allowed a subset of cpu_possible_map instead. This should still preserve the behavior that Nick's change intended. Thanks to Giuliano Pochini for reporting this and testing the fix: http://ozlabs.org/pipermail/linuxppc-dev/2006-December/029397.html Signed-off-by: Nathan Lynch Acked-by: Ingo Molnar Cc: Nick Piggin Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/sched.c b/kernel/sched.c index 3df33da0dafc..cca93cc0dd7d 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6865,7 +6865,7 @@ void __init sched_init_smp(void) lock_cpu_hotplug(); arch_init_sched_domains(&cpu_online_map); - cpus_andnot(non_isolated_cpus, cpu_online_map, cpu_isolated_map); + cpus_andnot(non_isolated_cpus, cpu_possible_map, cpu_isolated_map); if (cpus_empty(non_isolated_cpus)) cpu_set(smp_processor_id(), non_isolated_cpus); unlock_cpu_hotplug();