lkml.org 
[lkml]   [2001]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [patch] softirq performance fixes, cleanups, 2.4.10.
From
Date
Hello.

Thanks a lot for Your response.

On Fri, Sep 28, 2001 at 04:03:39 +0400, Andrea Arcangeli wrote:
> > @@ -381,26 +380,22 @@
> > #endif
> >
> > current->nice = 19;
> > - schedule();
> > - __set_current_state(TASK_INTERRUPTIBLE);
>
> buggy (check cpus_allowed).

Why? The next three lines is

for (;;) {
schedule();
__set_current_state(TASK_INTERRUPTIBLE);

And if I misunderstand schedule()'s

still_running:
if (!(prev->cpus_allowed & (1UL << this_cpu)))
goto still_running_back;

Ingo's patch was buggy as well.

> you dropped Ingo's optimization (but you resurrected the strictier /proc
> statistics).

Again, I can't understand. The new loop

for (;;) {
schedule();
__set_current_state(TASK_INTERRUPTIBLE);

do {
do_softirq();
if (current->need_resched)
goto preempt;
} while (softirq_pending(cpu));

continue;
preempt:
__set_current_state(TASK_RUNNING);
}

seems to be _equivalent_ to Ingo's ...

What i am missed? I apologize in advance, if it is
something obvious.

Oleg
-
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/

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