Messages in this thread | | | Date | Sun, 27 May 2001 19:07:00 +0200 | From | Andrea Arcangeli <> | Subject | Re: [patch] severe softirq handling performance bug, fix, 2.4.5 |
| |
On Sat, May 26, 2001 at 07:59:28PM +0200, Ingo Molnar wrote: > the two error cases are: > > #1 hard-IRQ interrupts user-space code, activates softirq, and returns to > user-space code
Before returning to userspace do_IRQ just runs do_softirq by hand from C code.
> #2 hard-IRQ interrupts the idle task, activates softirq and returns to > the idle task.
The problem only happens when we return to the idle task and a softirq is been marked active again and we cannot keep running it or we risk to soft deadlock.
I think the final fix for those issues (plus the case of a softirq marking itself running all the time) is ksoftirqd, it lets the scheduler to balance the softirq load, you can as well renice it. please try to benchmark after applying it, it should solve all your troubles cleanly, during tux load ksoftirq runs quite a lot btw:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.5aa1/00_ksoftirqd-4
don't forget to apply this scheduler fix first, or your risk to run into troubles:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.5aa1/00_cpus_allowed-1
I also suggest to apply the other scheduler fixes like the sched_yield and parent_timeslice too before running the test.
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/
| |