Re: [patch] voluntary-preempt-2.6.8.1-P0

Ingo Molnar
2004-08-16T02:51:35Z

* Lee Revell <rlrevell@joe-job.com> wrote:

> I believe the constant-time behavior that I reported was an artifact
> of ALSA xrun debugging. Now it seems like the latency produced *does*
> correspond directly to the amount of memory being mlockall'ed. If
> ./mlockall-test 1500 triggers an xrun at all it's ~0.2ms. 3000
> triggers a ~1ms xrun, and 10000 a ~3 ms xrun.

ah ...

could this be some DMA starvation effect? Or is this xrun calculated
from arrival of the audio interrupt (hence DMA completion) to the actual
running of jackd?

> > could you try another thing: modify mlockall-test.cc to use mlock() on
> > the freshly allocated anonymous pages? Does this produce the same
> > latencies? mlockall() prefaults _all_ pages the process currently has.
> > Maybe mlockall() touches some page that is mapped both by jackd and
> > mlockall-test and thus somehow interacts with jackd's scheduling.
>
> I don't know C++, Florian wrote this program. Can you provide a
> pseudo-patch?

your above observation wrt. linearity of the xrun makes it less likely
that the issue is caused by page sharing between jackd and
mlockall-test. (if then they share a constant amount of pages.)

but it would be nice to test it anyway, i've attached mlock-test.cc.

Ingo