2003-03-26 00:21:47

by Keith Owens

[permalink] [raw]
Subject: 2.4.20 sched.c never resets cpus_runnable for UP

kernel/sched.c uses task_set_cpu() and task_release_cpu() to modify the
cpus_runnable flag. On UP, task_set_cpu() is called but
task_release_cpu() is not, it is wrapped in #ifdef CONFIG_SMP. The
result is that all tasks have cpus_runnable=1 and task_has_cpu()
reports true for all tasks.

How to confuse a debugger in one easy lesson :(