[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.023 / U:23.380 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site