From: Ingo Molnar <mingo@elte.hu>
To: Rui Nuno Capela <rncbc@rncbc.org>
Cc: linux-kernel@vger.kernel.org, Lee Revell <rlrevell@joe-job.com>,
mark_h_johnson@raytheon.com, "K.R. Foley" <kr@cybsft.com>,
Bill Huey <bhuey@lnxw.com>, Adam Heath <doogie@debian.org>,
Florian Schmidt <mista.tapas@gmx.net>,
Thomas Gleixner <tglx@linutronix.de>,
Michal Schmidt <xschmi00@stud.feec.vutbr.cz>,
Fernando Pablo Lopez-Lezcano <nando@ccrma.stanford.edu>,
Karsten Wiese <annabellesgarden@yahoo.de>,
Gunther Persoons <gunther_persoons@spymac.com>,
emann@mrv.com, Shane Shrybman <shrybman@aei.ca>,
Amit Shah <amit.shah@codito.com>,
Esben Nielsen <simlo@phys.au.dk>
Subject: Re: Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-7
Date: Mon, 29 Nov 2004 12:24:23 +0100 [thread overview]
Message-ID: <20041129112423.GA10386@elte.hu> (raw)
In-Reply-To: <20041129111634.GB10123@elte.hu>
* Ingo Molnar <mingo@elte.hu> wrote:
> --- ./drivers/alsa/alsa_driver.c.orig 2004-11-26 14:11:26.000000000 +0100
> +++ ./drivers/alsa/alsa_driver.c 2004-11-26 14:24:41.000000000 +0100
i think the one below is a better approach - it will only trace events
that the ALSA driver has reported to be an xrun. I.e. the full latency
path from the point where poll() is called, up to the point where jackd
[after the latency has occured] considers it an xrun worth
counting/reporting. The tracing restarts at every poll(), so only the
latency is captured. If you up your tracebuffer to 40K+ entries then i'd
suggest to use the following trace settings:
echo 0 > /proc/asound/card0/pcm0p/xrun_debug
echo 1 > /proc/sys/kernel/trace_user_triggered
echo 0 > /proc/sys/kernel/trace_freerunning
echo 0 > /proc/sys/kernel/preempt_max_latency
echo 0 > /proc/sys/kernel/preempt_thresh
echo 0 > /proc/sys/kernel/preempt_wakeup_timing
i.e. dont use trace_freerunning - this will give much easier to parse
traces.
a suggestion wrt. the format of the .trc files: it would be nice if you
could dump the PIDs of all relevant tasks into it too, to make it easier
to identify who causes what latency. Ideally it would be useful to
have a more symbolic trace - i.e. instead of:
3570 00000000 254981.991ms (+0.000ms): up (ext3_orphan_del)
it would be:
jackd-3570 00000000 254981.991ms (+0.000ms): up (ext3_orphan_del)
but this is easier done in the kernel - some of the tasks involved in a
latency might be long gone by the time you detect the xrun.
Ingo
--- ./drivers/alsa/alsa_driver.c.orig 2004-11-26 14:11:26.000000000 +0100
+++ ./drivers/alsa/alsa_driver.c 2004-11-26 15:31:37.000000000 +0100
@@ -1077,13 +1077,16 @@ alsa_driver_xrun_recovery (alsa_driver_t
&& driver->process_count > XRUN_REPORT_DELAY) {
struct timeval now, diff, tstamp;
driver->xrun_count++;
+ gettimeofday(0,0);
gettimeofday(&now, 0);
snd_pcm_status_get_trigger_tstamp(status, &tstamp);
timersub(&now, &tstamp, &diff);
*delayed_usecs = diff.tv_sec * 1000000.0 + diff.tv_usec;
+#if 0
fprintf(stderr, "\n\n**** alsa_pcm: xrun of at least %.3f "
"msecs\n\n",
*delayed_usecs / 1000.0);
+#endif
}
if (alsa_driver_stop (driver) ||
@@ -1185,6 +1188,7 @@ alsa_driver_wait (alsa_driver_t *driver,
nfds++;
}
+ gettimeofday(0,1);
poll_enter = jack_get_microseconds ();
if (poll (driver->pfd, nfds, driver->poll_timeout) < 0) {
next prev parent reply other threads:[~2004-11-29 11:26 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-26 12:12 Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-7 Rui Nuno Capela
2004-11-29 11:05 ` Ingo Molnar
2004-11-29 11:16 ` Ingo Molnar
2004-11-29 11:24 ` Ingo Molnar [this message]
2004-11-29 15:42 ` Ingo Molnar
2004-11-29 13:13 ` Rui Nuno Capela
2004-11-29 14:33 ` Ingo Molnar
2004-11-29 15:23 ` Ingo Molnar
2004-11-29 23:16 ` Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-13 Gene Heskett
2004-11-30 1:50 ` K.R. Foley
2004-11-30 3:19 ` Gene Heskett
2004-11-30 4:54 ` Gene Heskett
2004-11-30 15:26 ` K.R. Foley
2004-11-30 16:24 ` Gene Heskett
2004-11-30 16:52 ` Zwane Mwaikambo
2004-12-01 7:16 ` Gene Heskett
2004-11-30 16:57 ` K.R. Foley
2004-11-30 10:29 ` Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-7 Rui Nuno Capela
2004-11-30 13:19 ` Ingo Molnar
2004-11-30 15:39 ` Rui Nuno Capela
2004-11-30 16:42 ` Ingo Molnar
2004-12-01 10:32 ` Ingo Molnar
2004-12-01 11:25 ` Ingo Molnar
2004-12-01 12:49 ` Rui Nuno Capela
2004-12-01 12:47 ` Rui Nuno Capela
2004-12-01 15:40 ` Ingo Molnar
2004-12-01 16:06 ` Ingo Molnar
2004-12-01 16:20 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-19 Ingo Molnar
2004-12-01 16:31 ` Ingo Molnar
2004-12-01 18:59 ` Rui Nuno Capela
2004-12-01 21:29 ` Ingo Molnar
2004-12-01 21:30 ` Ingo Molnar
[not found] ` <32788.192.168.1.8.1101938057.squirrel@192.168.1.8>
2004-12-01 21:58 ` Ingo Molnar
2004-12-01 22:04 ` Rui Nuno Capela
2004-12-01 22:09 ` Ingo Molnar
2004-12-01 22:31 ` Rui Nuno Capela
2004-12-02 9:12 ` Rui Nuno Capela
2004-12-02 12:59 ` Rui Nuno Capela
2004-12-02 16:38 ` Fernando Lopez-Lezcano
2004-12-01 22:43 ` Florian Schmidt
2004-12-02 8:40 ` Ingo Molnar
2004-12-02 12:22 ` Florian Schmidt
2004-12-02 12:29 ` Ingo Molnar
2004-12-02 13:06 ` Florian Schmidt
2004-12-02 13:10 ` Ingo Molnar
2004-12-02 13:40 ` Florian Schmidt
2004-12-02 13:49 ` Ingo Molnar
2004-12-02 16:08 ` Florian Schmidt
2004-12-02 17:44 ` Florian Schmidt
2004-12-02 21:12 ` Florian Schmidt
2004-12-02 13:18 ` Rui Nuno Capela
2004-12-03 1:41 ` Fernando Lopez-Lezcano
2004-12-03 2:23 ` Fernando Lopez-Lezcano
2004-11-30 18:13 ` Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.31-7 Remi Colinet
2004-11-30 8:15 ` Ingo Molnar
2004-12-01 8:30 ` Eran Mann
2004-12-01 8:53 ` Ingo Molnar
2004-12-01 18:19 ` Adam Heath
-- strict thread matches above, loose matches on Subject: below --
2004-11-28 19:42 Eran Mann
2004-11-30 8:58 ` Ingo Molnar
2004-11-30 16:20 ` Gene Heskett
2004-11-30 14:33 Mark_H_Johnson
2004-12-01 9:02 ` Ingo Molnar
2004-12-01 14:57 Mark_H_Johnson
2004-12-01 21:20 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041129112423.GA10386@elte.hu \
--to=mingo@elte.hu \
--cc=amit.shah@codito.com \
--cc=annabellesgarden@yahoo.de \
--cc=bhuey@lnxw.com \
--cc=doogie@debian.org \
--cc=emann@mrv.com \
--cc=gunther_persoons@spymac.com \
--cc=kr@cybsft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark_h_johnson@raytheon.com \
--cc=mista.tapas@gmx.net \
--cc=nando@ccrma.stanford.edu \
--cc=rlrevell@joe-job.com \
--cc=rncbc@rncbc.org \
--cc=shrybman@aei.ca \
--cc=simlo@phys.au.dk \
--cc=tglx@linutronix.de \
--cc=xschmi00@stud.feec.vutbr.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox