From: Lee Revell <rlrevell@joe-job.com>
To: linux-kernel <linux-kernel@vger.kernel.org>
Cc: alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Losing interrupts
Date: Wed, 14 Jul 2004 18:19:20 -0400 [thread overview]
Message-ID: <1089843559.22841.8.camel@mindpipe> (raw)
It seems that interrupts are being disabled for long periods, resulting
in the soundcard interrupt being lost. I hacked the ALSA emu10k1 driver
to keep track in the interrupt handler of the number of CPU cycles
elapsed since the last time it ran. I am using a period that
corresponds to 666 microseconds between interrupts, or ~400000 cycles on
my 600Mhz CPU. As you can see the average jitter is *extremely* low -
50-400 CPU cycles of per interrupt. I hardcoded it to printk if the
jitter is more than 15000 (only happens every 5-10 seconds), and error
if it's really big. As you can see, something is disabling interrupts
for a long time. This is a completely different issue from an XRUN,
improving the scheduler latency will not solve this.
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 392256 cycles, jitter = 15387
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 392353 cycles, jitter = 15603
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 391461 cycles, jitter = 16916
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 818180 cycles, jitter = 418547
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 818180 cycles, jitter = 418547 - missed an interrupt?
Jul 14 18:06:08 mindpipe kernel: ALSA /home/rlrevell/cvs/alsa-driver/alsa-kernel/core/pcm_lib.c:199: Unexpected hw_pointer value [1] (stream = 0, delta: -26, max jitter = 32): wrong interrupt
acknowledge?
Jul 14 18:06:08 mindpipe kernel: [dump_stack+23/32] dump_stack+0x17/0x20
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+664125/3558647] snd_pcm_period_elapsed+0x1a7/0x400 [snd_pcm]
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+729917/3558647] snd_emu10k1_interrupt+0x337/0x3c0 [snd_emu10k1]
Jul 14 18:06:08 mindpipe kernel: [handle_IRQ_event+51/96] handle_IRQ_event+0x33/0x60
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+165/368] do_IRQ+0xa5/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel: [do_softirq+53/64] do_softirq+0x35/0x40
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+277/368] do_IRQ+0x115/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel:
Jul 14 18:06:08 mindpipe kernel: ALSA /home/rlrevell/cvs/alsa-driver/alsa-kernel/core/pcm_lib.c:199: Unexpected hw_pointer value [1] (stream = 1, delta: -4, max jitter = 32): wrong interrupt
acknowledge?
Jul 14 18:06:08 mindpipe kernel: [dump_stack+23/32] dump_stack+0x17/0x20
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+664125/3558647] snd_pcm_period_elapsed+0x1a7/0x400 [snd_pcm]
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+729303/3558647] snd_emu10k1_interrupt+0xd1/0x3c0 [snd_emu10k1]
Jul 14 18:06:08 mindpipe kernel: [handle_IRQ_event+51/96] handle_IRQ_event+0x33/0x60
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+165/368] do_IRQ+0xa5/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel: [do_softirq+53/64] do_softirq+0x35/0x40
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+277/368] do_IRQ+0x115/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel:
Jul 14 18:06:08 mindpipe kernel: ALSA /home/rlrevell/cvs/alsa-driver/alsa-kernel/core/pcm_lib.c:169: XRUN: pcmC0D2c
Jul 14 18:06:08 mindpipe kernel: [dump_stack+23/32] dump_stack+0x17/0x20
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+664413/3558647] snd_pcm_period_elapsed+0x2c7/0x400 [snd_pcm]
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+729303/3558647] snd_emu10k1_interrupt+0xd1/0x3c0 [snd_emu10k1]
Jul 14 18:06:08 mindpipe kernel: [handle_IRQ_event+51/96] handle_IRQ_event+0x33/0x60
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+165/368] do_IRQ+0xa5/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel:
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 4964265 cycles, jitter = 4146085
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 4964265 cycles, jitter = 4146085 - missed an interrupt?
Jul 14 18:06:08 mindpipe kernel: ALSA /home/rlrevell/cvs/alsa-driver/alsa-kernel/core/pcm_lib.c:199: Unexpected hw_pointer value [1] (stream = 0, delta: -14, max jitter = 32): wrong interrupt
acknowledge?
Jul 14 18:06:08 mindpipe kernel: [dump_stack+23/32] dump_stack+0x17/0x20
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+664125/3558647] snd_pcm_period_elapsed+0x1a7/0x400 [snd_pcm]
Jul 14 18:06:08 mindpipe kernel: [__crc_totalram_pages+729917/3558647] snd_emu10k1_interrupt+0x337/0x3c0 [snd_emu10k1]
Jul 14 18:06:08 mindpipe kernel: [handle_IRQ_event+51/96] handle_IRQ_event+0x33/0x60
Jul 14 18:06:08 mindpipe kernel: [do_IRQ+165/368] do_IRQ+0xa5/0x170
Jul 14 18:06:08 mindpipe kernel: [common_interrupt+24/32] common_interrupt+0x18/0x20
Jul 14 18:06:08 mindpipe kernel:
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 1055689 cycles, jitter = 3908576
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 1055689 cycles, jitter = 3908576 - missed an interrupt?
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 362752 cycles, jitter = 692937
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 362752 cycles, jitter = 692937 - missed an interrupt?
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 399829 cycles, jitter = 37077
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 413648 cycles, jitter = 15319
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 387686 cycles, jitter = 25962
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 450250 cycles, jitter = 51838
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 349918 cycles, jitter = 100332
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 400891 cycles, jitter = 50973
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 386404 cycles, jitter = 26320
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 453172 cycles, jitter = 54183
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 347573 cycles, jitter = 105599
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 401149 cycles, jitter = 53576
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 386633 cycles, jitter = 26209
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 449097 cycles, jitter = 49093
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 351560 cycles, jitter = 97537
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 397671 cycles, jitter = 46111
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 389595 cycles, jitter = 21606
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 451106 cycles, jitter = 51236
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 350349 cycles, jitter = 100757
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 400588 cycles, jitter = 50239
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 386300 cycles, jitter = 25946
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 448680 cycles, jitter = 49155
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 351876 cycles, jitter = 96804
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 400708 cycles, jitter = 48832
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 385443 cycles, jitter = 28488
Jul 14 18:06:08 mindpipe kernel: IRQ: delay = 400482 cycles, jitter = 15039
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 387947 cycles, jitter = 23589
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391951 cycles, jitter = 16855
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 388987 cycles, jitter = 21825
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 392021 cycles, jitter = 16017
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390522 cycles, jitter = 20142
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391896 cycles, jitter = 17595
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 388017 cycles, jitter = 23648
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391085 cycles, jitter = 18631
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390518 cycles, jitter = 17585
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390227 cycles, jitter = 18928
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 389163 cycles, jitter = 20901
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 389526 cycles, jitter = 19946
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 389876 cycles, jitter = 19494
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391128 cycles, jitter = 17707
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391987 cycles, jitter = 16681
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390271 cycles, jitter = 18691
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 388294 cycles, jitter = 21678
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 389929 cycles, jitter = 19020
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390888 cycles, jitter = 18574
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 387801 cycles, jitter = 22866
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 390384 cycles, jitter = 20683
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391604 cycles, jitter = 17213
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 392076 cycles, jitter = 15074
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 392304 cycles, jitter = 15524
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 388990 cycles, jitter = 20218
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391993 cycles, jitter = 16200
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391055 cycles, jitter = 17245
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391652 cycles, jitter = 15653
Jul 14 18:06:09 mindpipe kernel: IRQ: delay = 391095 cycles, jitter = 17794
Jul 14 18:06:10 mindpipe kernel: IRQ: delay = 392424 cycles, jitter = 15108
next reply other threads:[~2004-07-14 22:19 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-14 22:19 Lee Revell [this message]
2004-07-15 21:36 ` Losing interrupts Lee Revell
2004-07-15 21:04 ` Andrew Morton
2004-07-16 3:24 ` Lee Revell
-- strict thread matches above, loose matches on Subject: below --
2004-07-16 9:16 Remon Sijrier
2004-07-16 21:00 ` Lee Revell
2004-07-17 13:29 ` Remon Sijrier
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=1089843559.22841.8.camel@mindpipe \
--to=rlrevell@joe-job.com \
--cc=alsa-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
/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