On Sun, 8 Dec 2002, Paul Davis wrote:
you also haven't addressed kernel scheduling
issues; the context
switch doesn't happen till the kernel has decided what task is going
to run next. if it picks the wrong one, for whatever reason, then
you/we lose. right now, it picks the wrong one too often, even with
SCHED_FIFO+mlockall.
Btw; have you tried the O(1) scheduler? It has a number of interesting
charasteristics from an audio app developer's pov [1]:
- RT-scheduling is, too, O(1) (less cache use, quicker context
switches...)
- RT-scheduling is separated from non-RT scheduling
- perfect SMP-scalability (no shared run-queue lock)
And of course, as O(1) is under active development (in 2.5, in 2.4-ac
and patches for latest 2.4 kernels), a possible bug in SCHED_FIFO
semantics might receive kernel-hacker interest. ;)
Do you have any simple test cases to reproduce the problem... only
with ardour+jackd or perhaps also simpler setups like jackd+capture_client
or some such?
[1]
http://www.uwsg.iu.edu/hypermail/linux/kernel/0201.0/0810.html
--
http://www.eca.cx
Audio software for Linux!