Re: [patch] 2.4.21-pre5 correct scheduling of idle tasks [ all arch ]

From: mikpe@csd.uu.se
Date: Fri Mar 28 2003 - 05:10:28 EST


Keith Owens writes:
> On Thu, 27 Mar 2003 16:54:47 +0100,
> mikpe@csd.uu.se wrote:
> >Keith Owens writes:
> > > There are several inconsistencies in the scheduling of idle tasks and,
> > > for UP, tracking which task is on the cpu. This patch standardizes
> > > idle task scheduling across all architectures and corrects the UP
> > > error, it is just a bug fix.
> >...
> > > To make it worse, on UP a task is assigned to a cpu but never released.
> > > Very quickly, all tasks are marked as currently running on cpu 0 :(.
> >
> >->cpus_runnable and task_has_cpu() are SMP-only, as a quick grep
> >through 2.4.20 will tell you. There is no UP bug here to fix.
>
> cpus_runnable has task_has_cpu are not guarded by CONFIG_SMP.
> task_set_cpu() is called for UP as well as SMP. UP is missing the
> corresponding call to task_release_cpu().

No generic kernel code _uses_ ->cpus_runnable on UP.
arch/s390{,x}/kernel/traps.c appears to use task_has_cpu() on UP,
but that's their bug and not an argument for slowing down UP kernels.

Hence, kernel/sched.c not calling task_release_cpu() to reset
->cpus_runnable to ~0 is not a bug.

The only bug (apart from s390's trap.c) is that task_set_cpu() performs
an unnecessary assignment to ->cpus_runnable on UP.

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



This archive was generated by hypermail 2b29 : Mon Mar 31 2003 - 22:00:31 EST