Messages in this thread | | | Date | Mon, 9 Apr 2001 15:50:52 +0200 | From | Andrea Arcangeli <> | Subject | Re: [PATCH] Re: softirq buggy |
| |
On Sun, Apr 08, 2001 at 11:35:36PM +0200, Manfred Spraul wrote: > I've attached a new patch: > > * cpu_is_idle() moved to <linux/pm.h> > * function uninlined due to header dependencies > * cpu_is_idle() doesn't call do_softirq directly, instead the caller > returns to schedule() > * cpu_is_idle() exported for modules. > * docu updated. > > I'd prefer to inline cpu_is_idle(), but optimizing the idle code path is > probably not that important ;-)
your cpu_is_idle will return 0 in the need_resched != 0 check even if the cpu is idle (because of the -1 trick for avoiding the SMP-IPI to notify the cpu).
The issue you are addressing is quite londstanding and it is not only related to the loop with an idle cpu.
This is the way I prefer to fix it:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/patches/v2.4/2.4.4pre1/ksoftirqd-1
Andrea - 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/
| |