current->need_resched is checked on return from the handler, but it is
only acted on directly when the CPU is running in user space.
So you have
3) you're in a long code path in the kernel, interrupts arrive, but
the code path doesn't check need_resched
This can be done in two ways:
- Use Linus' trick of a multi threaded UP kernel using
SMP locks (2.5 material), also hated by Larry/Victor.
- Add explicit need_resched checks in long latency paths as
needed (what Ingo's patch does)
The second one is probably the only feasible in 2.4 timeframe.
Do you have any data which long code paths are the problem ?
If you have maybe you should post a list weekly to linux-kernel ;)
Also BTW there seem to be some scheduler bugs related to SCHED_FIFO
that are only fixed by Dimitris Michailidis' scheduler patch kit.
If you care about that it probably needs to be included too.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/