Messages in this thread |  | | Subject | Re: [patch] softirq performance fixes, cleanups, 2.4.10. | From | Oleg Nesterov <> | Date | Fri, 28 Sep 2001 06:50:12 +0400 |
| |
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/
|  |