[lkml]   [2003]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch] 2.4.21-pre5 correct scheduling of idle tasks [ all arch ]
Keith Owens writes:
> On Thu, 27 Mar 2003 16:54:47 +0100,
> 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.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:34    [W:0.044 / U:34.132 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site