Ubuntu

Thread [hd-audio0] consuming excessive amounts of CPU, audio crackling

Reported by Øyvind Stegard on 2010-04-29
52
This bug affects 9 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Invalid
Undecided

Bug Description

Binary package hint: linux-image-2.6.32-22-generic

Sometimes during audio playback, a kernel thread named "[hd-audio0]" will consume excessive amounts of CPU and cause audio crackling. It seems to be more easily triggered when displaying video in fullscreen (or Rhythmbox visualizations) or dragging windows around while playing music, somehow relating it graphics operations (running default radeon driver with KMS and Compiz).

This all started after moving from Ubuntu Karmic to Lucid (never had this problem before).

Setting package to kernel, since it's probably alsa snd_hda_intel kernel module which is to blame.

Ubuntu 10.04 x86, Intel Core Duo 2GHz, 3GB RAM, ATI X1400 Radeon Mobility graphics.
Audio chip: Analog Devices AD1981 [HDA]

WORKAROUND: Disabling radeon KMS makes all the audio crackling go away.

Attaching:
* Screenshot of top running over Rhythmbox w/fullscreen visualizations, showing [hd-audio0] consuming more CPU than everything else at the time (audio crackles).
* Output of "lspci -vvnn"
* Output of "dmesg"
* Contents of /proc/interrupts
* ALSA info, as provided by the alsa-info.sh script.

Related to this: https://bugzilla.kernel.org/show_bug.cgi?id=14935 ???

Øyvind Stegard (oyvinst) wrote :
Øyvind Stegard (oyvinst) wrote :
Øyvind Stegard (oyvinst) wrote :
tags: added: kernel-sound
tags: added: kj-triage
Øyvind Stegard (oyvinst) wrote :

Currently testing if "position_fix=1" option to module snd-hda-intel will help.

Øyvind Stegard (oyvinst) wrote :

So far it looks like the module option "bdl_pos_adj=0" is a work-around for this issue.

Øyvind Stegard (oyvinst) wrote :

I'm currently running snd-hda-intel module with options "position_fix=1 bdl_pos_adj=0". This stops "[hd-audio0]" from showing up in top, but audio still crackles when scrolling in Firefox (for instance) after having used the desktop session for a while (more windows and apps open => more graphical resource usage). So in-kernel audio driver is badly affected by graphical operations, so much that it probably voids any effect of setting higher priority on pulseaudio user-space process...

Øyvind Stegard (oyvinst) wrote :

Tried snd-hda-intel option "enable_msi=1", since I figured it might be some IRQ issue. That didn't help.

So I noticed CPU0 was handling all interrupts occuring on my system (via /proc/interrupts) for radeon and hda-intel modules. I altered the IRQ affinity for hda-intel, so it would be handled on the other CPU, but that did not help on the audio crackling either.

So it seems I'm properly stuck for now, unless someone can come up with some other advice. Try newer kernel, perhaps ? Mainline PPA ?

summary: - Thread [hd-audio0] consuming excessive amounts of CPU during audio
- playback
+ Thread [hd-audio0] consuming excessive amounts of CPU, audio crackling
Øyvind Stegard (oyvinst) wrote :

Mainline 2.6.34-rc6 has audio problems as well. While the radeon KMS performance is a *lot* better than in Lucid 2.6.32-kernel, graphical operations still sometimes cause audio skipping or slight crackling (for instance, fullscreen Flash video playback has a tendency to provoke the crackling). In addition to that there are audio/video sync issues caused by some ALSA updates (https://bugzilla.kernel.org/show_bug.cgi?id=15796), which makes it more difficult to know if the problems are really the same as in standard Lucid kernel.

Øyvind Stegard (oyvinst) wrote :

How to most easily reproducce and verify the audio crackling:
1) Start gstreamer-properties and do a sound test. This produces a sound which very easily reveals crackling.
2) Fire up a web browser and watch a Youtube video in fullscreen with Flash plugin (low volume).
3) Listen to the sound of pop corn popping.

Øyvind Stegard (oyvinst) wrote :

Running Compiz or not does not matter. However, disabling radeon KMS makes all the audio crackling go away.

description: updated
Øyvind Stegard (oyvinst) wrote :

Another confirmed case where disabling KMS also resolves issues with audio crackling: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/578342

Several Launchpad bug reports in process report radeon KMS conflicts with Intel wifi and audio output, causing wireless to hang/drop until power cycle and audio to crackle during any high GPU load. Disabling KMS as a workaround returns normal system operation.

Relevant Launchpad reports:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/564376
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/578342
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/571770
And one on Bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=15912

My own hardware is a Thinkpad T60 with Radeon X1400 and Intel wireless (iwl3945 driver) running vanilla Ubuntu 10.04. Users of Radeon X1250, X1300, and Xpress 200M chipsets have also reported the same behavior, on Lenovo, Dell and LG laptops. Using a mainline kernel does not change the behavior.

This may possibly be due to a difference in PCI configuration between KMS and UMS, they use different IRQs for "Pin A" as detailed in the Bugzilla report linked above.

Thanks for any assistance you can provide! And thanks for all your hard work!

JasonPorter (jasonporter) wrote :

Adding the radeon driver project to this, and linking to upstream bug report on freedesktop.org.

Confirming this one, Thinkpad Z61m, ATI X1400. However, the IRQ difference does not seem to matter for the audio problems (I've tested with radeon KMS both with and without MSI, which is the difference between the two PCI configs listed in bug at https://bugzilla.kernel.org/show_bug.cgi?id=15912).

Is there an option in your bios to assign different irqs to different pci devices? Some systems set every device to the same irq.

I don't think it is directly an IRQ issue that can be solved in the BIOS.
Because on my girlfriend's laptop which is also hit by this problem the radeon takes IRQ 17 with IO-APIC-fasteoi and hda_intel takes IRQ 24 with PCI-MSI-edge

(In reply to comment #3)
> I don't think it is directly an IRQ issue that can be solved in the BIOS.
> Because on my girlfriend's laptop which is also hit by this problem the radeon
> takes IRQ 17 with IO-APIC-fasteoi and hda_intel takes IRQ 24 with PCI-MSI-edge

Actually, before booting the kernel itself (thus it can not be seen in DMESG) there is the message that starts with:
pci 0000:00:00.0: address space collision [..more stuff here..]
Just like in this mail I believe: http://lkml.org/lkml/2010/3/12/92

I don't know whether this could be relevant.

I have no messages about address space collisions in kernel boot log. I'll add my hardware info to this bug tomorrow (interrupts, PCI, dmesg, Xorg, etc).

This appears to also be causing kernel crashes on some systems when wifi is powered off using the hardware switch. Disabling radeon KMS causes the crash behavior to disappear. I will inform devs in the upstream bug reports on that issue.

Reported in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/555286

(In reply to comment #6)

Oops, nevermind... I'm already upstream. Too many tabs open, sorry.

Is there an option in your bios to assign different irqs to different pci
devices? Some systems set every device to the same irq. If so, please try changing the setting to auto, or select different irqs for each device and see if that helps. Also, please try both with and without msi enabled (boot with pci=nomsi).

(In reply to comment #8)
> Is there an option in your bios to assign different irqs to different pci
> devices? Some systems set every device to the same irq. If so, please try
> changing the setting to auto, or select different irqs for each device and see
> if that helps. Also, please try both with and without msi enabled (boot with
> pci=nomsi).

Yes. However, the list looks very uninformative. It's under PCI config, and basically contains just INTA-> 11, INTB -> 11, INTC -> 11, and so on. Tried setting to Auto-select on all entries (instead of 11). System booted OK, but it didn't help (on KMS+audio problems). Tried assigning sequentially from IRQ 3 and up, but then I got a really loud Thinkpad-style alarm beep, system didn't get past POST, and BIOS informing that network controller was missing IRQ. So obviously I switched back to default settings. The /proc/interrupts list didn't really look any different with BIOS-autoconfig for PCI IRQs (IIRC).

Booting with option pci=nomsi does not help at all, even though it definitely affects IRQ config, since /proc/interrupts contains no MSI-entries when booting with this option.

I will now be attaching some info for system running 2.6.34 kernel on Ubuntu Lucid x86 with ATIX1400 (KMS-mode). System has severe audio glitching with KMS, and no glitching at all in UMS mode.

Created an attachment (id=35734)
Kernel boot log

Audio glitching reproduced immediately after logging in to X session.

Created an attachment (id=35735)
Contents of /proc/interrupts

Created an attachment (id=35736)
Contents of /proc/interrupts with MSI disabled

Does not resolve issue.

Created an attachment (id=35737)
PCI device config

Created an attachment (id=35738)
Xorg startup log

The test setup I use to quickly reproduce and verify that the problem is there:

1) Play a pure sound which easily revelase playback glitches:
$ gst-launch-0.10 audiotestsrc ! pulsesink

2) Play some video (doesn't matter what) with MPlayer, using plain x11 output and no sound:
$ mplayer /path/to/some/movie.avi -vo x11 -zoom -nosound

3) Test audio starts glitching and the glitching becomes worse if I put the video in fullscreen.

And some observations about test:

1) There is not much load on system during test (MPlayer uses around 40% CPU, Xorg floats under 12% CPU, for a 1024x576 video with no sound).

2) There is a lot less audio glitching if I run things in a completely composited environment (e.g. Compiz with no unredirection for fullscreen windows). If I *do* unredirect fullscreen windows with Compiz the glitching becomes worse in fullscreen.

3) There is alomst no glitching at all if using XV for video playback in the test, instead of plain old x11. Obviously that's not going to help for apps that don't use XV, like fullscreen Flash video streaming or any affected non-video app.

4) The glitching is worse when video window is full screen.

5) HDA intel driver typically always reports that IRQ timing work-around has been activated. This doesn't happen in UMS-mode.

And some observations not just related to the specific test setup:
1) Flash fullscreen video playback causes more severe audio glitches if *not* running composited in fullscreen, for instance under Compiz with "Unredirect fullscreen windows" enabled. This is what typically also takes down wireless (just happened now with current setup, as I was testing Flash and writing this).

2) Flash fullscreen video causes glitches even when redirected in composited env.

3) Flash doesn't use XV, seems to correspond well with MPlayer -vo x11 being much worse than when using -vo xv.

4) There are no playback issues with video during any of these tests, the video is smooth, system not overloaded. And besides, the test sound generator requires almost no resources at all.

5) [ 1535.437114] CE: hpet increased min_delta_ns to 7500 nsec
Don't really know the meaning of this one, but it typically appears during problems with wireless and/or audio when running under KMS. Kernel compensating for what is seen as accuracy issues with system timing ?

6) It doesn't have to be MPlayer-vo-x11 or Flash that triggers problem, I just use them because they so easily reproduce it. I have heard audio popping when scrolling Firefox pages or moving windows around, and I've managed to take down wireless when launching Neverball (OpenGL-game).

7) No matter what IRQ config or snd-hda-intel options I test, the problems are always there with KMS and disappear with UMS.

To add my own results... booting with pci=nomsi doesn't seem to have an effect on my system (Thinkpad T60). I have the same PCI options in BIOS as Øyvind reports, all are set to "11" by default but changing to Auto seems to have very little effect on actual behavior after boot. I will test further to see if there are any other differences with MSI off, but so far it doesn't seem to have helped.

frankvielma (frankvielma) wrote :

I have a similar problem using a clean installation with Ubuntu 10.04 x86, Intel Pentium D 2.8 GHz, 4GB RAM, Intel 82945G/GZ Integrated Graphics Controller, Intel Corporation N10/ICH 7 Family High Definition Audio Control...

00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
04:08.0 Ethernet controller: Intel Corporation N10/ICH 7 Family LAN Controller (rev 01)

I had used Debian 5.04 without any problems...

I used "powertop" it fixed partially the problem but after of a random time, the problem comes back.

Any suggestions ?

Thanks in advance,

Does booting with radeon.disp_priority=1 help?

Apply the settings with a cold boot.

(In reply to comment #17)
> Does booting with radeon.disp_priority=1 help?

Does not help on my hardware. Tested with kernel 2.6.34, cold boot.

(In reply to comment #17)
> Does booting with radeon.disp_priority=1 help?

For some reason, passing that option at boot seems to disable KMS on my system. I've tried it both without a radeon.modeset declaration, and with radeon.modeset=1, and in both cases Xorg.0.log shows KMS to be disabled when radeon.disp_priority=1 is on.

(In reply to comment #20)
> (In reply to comment #17)
> > Does booting with radeon.disp_priority=1 help?
>
> For some reason, passing that option at boot seems to disable KMS on my system.
> I've tried it both without a radeon.modeset declaration, and with
> radeon.modeset=1, and in both cases Xorg.0.log shows KMS to be disabled when
> radeon.disp_priority=1 is on.

If your kernel is too old, the option is not valid and the module won't load. See modinfo radeon to verify.

I've noticed that the audio glitches become a lot worse when many windows are open and running Compiz (I did an artificial test). I can open lots of windows on one desktop, switch back to an empty desktop, open a single window there and trigger audio drop-outs (simple test sound) just by toggling maximization state of that single window, even though all the other windows are not in view and system load is close to nil. Basically, most Compiz-operations besides simple window movement will cause glitches.

Interestingly, I might have pushed things too far, since Compiz crashed with this message:
drmRadeonCmdBuffer: -12. Kernel failed to parse or rejected command stream. See dmesg for more info.

Kernel log contained this:
[ 543.577306] [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -12!
[ 574.532539] [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -12!
[ 742.437808] [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -12!

* This was all with radeon.disp_priority=1, cannot say whether that mattered or not.
* Don't know the consequences of using the Ubuntu default Xorg-driver/libdrm/DRI-stuff together with 2.6.34 mainline kernel DRM. I haven't noticed any bad things in particular during normal usage (quite the contrary, KMS performance with 2.6.34 seems better), except for the issues at hand of course.
* The version of the radeon module in the default Ubuntu kernel does not have disp_priority option.

(In reply to comment #21)
> If your kernel is too old, the option is not valid and the module won't load.
> See modinfo radeon to verify.

I'm running the standard 2.6.32-22-generic that is current in Ubuntu Lucid.

Has it been considered that this might be due to interrupt latency caused by radeon KMS? E.g. spending too much time in the IRQ handler or unnecessarily running it with other IRQs disabled.

Large blocks of screen updates seems to be most problematic. I can take down wireless by scrolling through a maximized gnome-terminal, for instance.. Same thing will fullscreen Flash and mplayer -fs -vo x11 ..

splogad (giacomo-aceto) wrote :

I have the same problem but I noticed that using vlc it disappears, as soon as I open totem to watch a movie the problem comes back

It seems that problem does not occur in current drm-radeon-testing (9e67e5b1a6fd4bdca48a9c267386afb236d08783). At least sound does not skips.

Øyvind Stegard (oyvinst) wrote :

Problem still there on latest kernel 2.6.32-23-generic #37~pre201006041000 from pre-proposed (Ubuntu kernel-ppa).

(In reply to comment #26)
> It seems that problem does not occur in current drm-radeon-testing
> (9e67e5b1a6fd4bdca48a9c267386afb236d08783). At least sound does not skips.

I myself don't have the possibility to test this at the moment. I will only have access to the laptop involved in about 3 weeks.
But maybe Oyvind could this the drm-radeon-testing branch on his laptop?

And if it does solve the problem, we should bisect to find out what does solve this problem.

(In reply to comment #27)
> (In reply to comment #26)
> > It seems that problem does not occur in current drm-radeon-testing
> > (9e67e5b1a6fd4bdca48a9c267386afb236d08783). At least sound does not skips.
>
> I myself don't have the possibility to test this at the moment. I will only
> have access to the laptop involved in about 3 weeks.
> But maybe Oyvind could this the drm-radeon-testing branch on his laptop?
>
> And if it does solve the problem, we should bisect to find out what does solve
> this problem.

Assuming you mean this branch:
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=refs/heads/drm-radeon-testing

I compiled the branch head and gave it a spin. KMS performance is noticeably better compared to 2.6.32(+drm2.6.33)-kernel in Ubuntu. However I only had to open 20-25 windows and do some jiggly Compiz effects to cause:
1. Severe audio skipping/crackling whenever something was moving, changing, minimizing, maximizing, etc.
2. Wireless was extremely unstable, in fact I add to boot back into Lucid kernel to write this comment, because it kept falling down. Of course, that might just be the kernel itself, I don't know.

Conclusion is that nothing is better on my hardware with this kernel, except the KMS performance (Compiz feels somewhat snappier when window count is high).

So it's back to good old UMS and DFS-corruption for me :) :/ ...

Hi,
I am affected by this bug as well and tried to bisect it. My bisect log:

git bisect start
# good: [60b341b778cc2929df16c0a504c91621b3c6a4ad] Linux 2.6.33
git bisect good 60b341b778cc2929df16c0a504c91621b3c6a4ad
# bad: [57d54889cd00db2752994b389ba714138652e60c] Linux 2.6.34-rc1
git bisect bad 57d54889cd00db2752994b389ba714138652e60c
# good: [47871889c601d8199c51a4086f77eebd77c29b0b] Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
git bisect good 47871889c601d8199c51a4086f77eebd77c29b0b
# bad: [1154fab73ccbab010cfaa272b6987c624cfd63c6] SLUB: Fix per-cpu merge conflict
git bisect bad 1154fab73ccbab010cfaa272b6987c624cfd63c6
# good: [3e9cc2f3b7ddabbbfc9abd043887030c669380aa] firewire: ohci: add module parameter to activate quirk fixes
git bisect good 3e9cc2f3b7ddabbbfc9abd043887030c669380aa
# good: [5619c28061ff9d2559a93eaba492935530f2a513] x86: Convert i8259_lock to raw_spinlock
git bisect good 5619c28061ff9d2559a93eaba492935530f2a513

so there are ~800 commits left and now every kernel will fail to boot due to some SCSI issues, I tried many kernels "by hand" via 'git visualize'. Can anybody track this further down, perhaps someone with no SCSI devices in their machines? ;)
thanks a lot and we should really get this regression, 2.6.35-rc5 is affected as well.
cheers, florian

I have one user report that this was fixed between Debian kernel versions 2.6.32-15 and 2.6.32-18, which have radeon drivers from 2.6.33.5 and 2.6.33.7 respectively. So one of the changes to output handling in there may have fixed this.

(In reply to comment #30)
> I have one user report that this was fixed between Debian kernel versions
> 2.6.32-15 and 2.6.32-18, which have radeon drivers from 2.6.33.5 and 2.6.33.7
> respectively. So one of the changes to output handling in there may have fixed
> this.

Sorry, the latter version is actually 2.6.33.6. There aren't many radeon changes between these:

commit f417b91c30e84e759d395f45d524eeee95250822
Author: Dave Airlie <email address hidden>
Date: Sat May 29 06:50:37 2010 +1000

    drm/radeon: fix the r100/r200 ums block 0 page fix

commit 1a0c0aa4945dfa8ac3adc2818e166b40eb5dc346
Author: Dave Airlie <email address hidden>
Date: Wed Feb 24 17:17:13 2010 +1000

    drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page a
nd beyond

commit 7840726875499c2e4b195776f2a0090935d33f39
Author: Alex Deucher <email address hidden>
Date: Tue May 18 00:23:15 2010 -0400

    drm/radeon/kms/atom: fix typo in LVDS panel info parsing

commit 66ff9ff4525f96b24867f734d99950b5d654f76b
Author: Alex Deucher <email address hidden>
Date: Tue May 18 19:26:46 2010 -0400

    drm/radeon/kms: reset ddc_bus in object header parsing

(In reply to comment #31)
>
> Sorry, the latter version is actually 2.6.33.6. There aren't many radeon
> changes between these:

None of these are really likely to be related to this bug; the first 2 are ums, and the other two were fairly specific bug fixes. I suspect if that kernel update does fix this bug the change is probably in the wifi or sound drivers or possibly something else in the kernel.

I'd like to chime in here: I am on a Thinkpad T60 (core duo -> 32 bit) with a radeon X1300 and switched to KMS + gallium recently and, while everything is working remarkably nice and stable in general (big kudos to the developers), I've got some negative side effects which look like the IRQ issues observed by the others in this thread to me. Symptoms are:

1) SATA is being reconfigured and even reset from time to time. This can be reproduced reliably by switiching VTs which causes

ata1.00: configured for UDMA/133
ata1: EH complete

to appear in dmesg most of the time. Under heavy GPU load, the link will be reset from time to time:

ata1: hard resetting link
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
ata1.00: configured for UDMA/133
ata1.00: configured for UDMA/133
ata1: EH complete

Very occasionally, the controller will lock for some seconds before the reset occurs.

2) Under heavy GPU load, sound (intel HDA) has a tendency to crackle. I am not using a sound daemon, just plain alsa. The "snd-hda-intel timing workaround activated, blablabla..." message appears in dmesg.

3) I get NMIs from time to time (however, I don't see how those might be related):

Uhhuh. NMI received for unknown reason b1 on CPU 0.

I am running gentoo (mostly stable) with kernel 2.6.35 (gentoo patchset), xf86-video-ati 6.13.1, mesa bleeding-edge git (master), xorg 1.7.7 and libdrm git (master again). I've been trying different versions of everything (including vanilla 2.6.36-rc1) as well as different preemtion settings without any effect on those symptoms. As I never had such issues before switching to KMS, I stronly suspect KMS to be the culprit (however, SATA reconfiguration messages _have_ appeared before from time to time, so it might be that KMS is aggrevating a timing glitch already present in the hardware). To me, this looks somewhat like interrupts being masked overly long somewhere in the KMS code.

I might add that disabling MSI has no effect for me either.

Download full text (3.4 KiB)

Also adding lspci

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc M52 [Mobility Radeon X1300]
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
15:00.0 CardBus bridge: Texas Instruments PCI1510 PC card Cardbus Controller

and /proc/interrupts

           CPU0 CPU1
  0: 876624 195 IO-APIC-edge timer
  1: 9878 4 IO-APIC-edge i8042
  3: 2 0 IO-APIC-edge
  9: 4703 0 IO-APIC-fasteoi acpi
 12: 550556 0 IO-APIC-edge i8042
 16: 1 0 IO-APIC-fasteoi yenta, uhci_hcd:usb2
 17: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
 18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
 19: 0 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb5
 45: 24014 1 PCI-MSI-edge ahci
 46: 1644 1 PCI-MSI-edge eth0
 47: 66832 6 PCI-MSI-edge iwl3945
 48: 138 0 PCI-MSI-edge hda_intel
 49: 104672 0 PCI-MSI-edge radeon
NMI: 1 0 Non-maskable interrupts
LOC: 88899 357836 Local timer interrupts
SPU: 0 0 Spurious interrupts
PMI: 0 0 Performance monitoring interrupts
PND: 0 0 Performance pending work
RES: 258412 350544 Rescheduling interrupts
CAL: 19 24 Function call interrupts
TLB: 1029 ...

Read more...

Changed in xserver-xorg-driver-ati:
importance: Unknown → Medium
status: Unknown → Confirmed
filiatra (filiatra-gmail) wrote :

Same problem here, I only noticed it after latest updates...

Changed in xserver-xorg-driver-ati:
importance: Medium → Unknown
Changed in xserver-xorg-driver-ati:
importance: Unknown → Medium
Brad Figg (brad-figg) on 2011-05-04
Changed in linux (Ubuntu):
status: New → Confirmed

Hi, what is the state of this bug?

I'm using the same hardware like Jason does (Thinkpad T60 with Radeon X1400 and Intel wireless) and running Ubuntu 11.04. Kernel Version is 2.6.38 and the problems with audio glitches and wireless drops are still there. From time to time the system isn't going to hibernate or doesn't wake up after.
All this problems are gone without kms (radeon.modeset=0).

But now the Problem has gotten even worse as without kms the radeon driver only works with software rendering and the unity desktop won't load. Same with gnome 3 running Debian unstable/experimental.

If I can anything contribute to solve this bug, please let me know!
Reading all the comments bisecting the kernel appears the most promising way to me. Anyone who wants to explain me how to do that?

Thanks.

(In reply to comment #36)
> Hi, what is the state of this bug?

It's weird, and nobody's had any good ideas what could cause it.

> But now the Problem has gotten even worse as without kms the radeon driver only
> works with software rendering and the unity desktop won't load. Same with gnome
> 3 running Debian unstable/experimental.

That's probably an installation / configuration problem (e.g. firmware not available where the radeon kernel driver initializes) and not directly related to this bug.

An update, since I posted the original bug report... I'm now running Ubuntu 11.04, and still having the same problems that everyone else is experiencing.

I'm running the full xorg-edgers PPA, so I am running radeon 6.14.99+git20110504 and mesa 7.11.0+git20110504, with the latest standard Natty kernel (64-bit).

I'm in a quandry, because without kms I can't run Unity (which no-one seems to be able to explain), and with kms I get glitchy audio and wifi dropouts.

Please help, devs!

Its not a fix, but a little workaround.
open terminal
xrandr
look whats your minimum resolution and tha name of the screen/output
now edit the grub linux line with video=[OUTPUTNAME]-1:[MINIMALRES]
for me its:
video=LVDS-1:320x200
now reboot. KMS/VT will now have a res of 320x200, plymouth and X are normal. sound crickeling is gone (or I just can not notice it anymore)

Taking opportunity of the fact that this ticket is coming back to life: this issue has still been accompanying over all mesa, X, ddx driver and kernel updates. I'm on 2.6.38 now, and sound is still stuttering.

> Its not a fix, but a little workaround.
> open terminal
> xrandr
> look whats your minimum resolution and tha name of the screen/output
> now edit the grub linux line with video=[OUTPUTNAME]-1:[MINIMALRES]
> for me its:
> video=LVDS-1:320x200
> now reboot. KMS/VT will now have a res of 320x200, plymouth and X are normal.
> sound crickeling is gone (or I just can not notice it anymore)

I can confirm that this works for me too; I set the VT framebuffer to 640x480, and the crackling is much better. In addition, my desktop feels significantly faster (I'm using KDE 4.6 with kwin compositing) --- in particular, switching desktops with many open, complex windows like firefox sitting is considerably better now.

To the developers (and don't hesitate to beat me down if this is completely out of question): could it be that the issue is caused by too many transfers from system to video memory and the driver blocking interrupts while waiting for them to complete? As I suppose that changing the framebuffer resolution affects the VRAM layout, the impact of the above trick could be explained this way. This could also explain the fact this issue seems to predominantly affect users of laptops which have hardware relatively low on VRAM (64MB for my x1300 mobility). Speaking of which: the driver reports the following about my hardware:

radeon 0000:01:00.0: VRAM: 128M 0x0000000000000000 - 0x0000000007FFFFFF (64M used)
radeon 0000:01:00.0: GTT: 512M 0x0000000008000000 - 0x0000000027FFFFFF
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] Driver supports precise vblank timestamp query.
radeon 0000:01:00.0: irq 49 for MSI/MSI-X
radeon 0000:01:00.0: radeon: using MSI.
[drm] radeon: irq initialized.
[drm] Detected VRAM RAM=128M, BAR=128M
[drm] RAM width 64bits DDR
[TTM] Zone kernel: Available graphics memory: 440368 kiB.
[TTM] Zone highmem: Available graphics memory: 1295860 kiB.

I never gave it much thought, but thinking about it, this seems suspicious to me as I am pretty sure that this device has only 64MB of VRAM.

(In reply to comment #40)
>
> radeon 0000:01:00.0: VRAM: 128M 0x0000000000000000 - 0x0000000007FFFFFF (64M
> used)
> radeon 0000:01:00.0: GTT: 512M 0x0000000008000000 - 0x0000000027FFFFFF
> [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
> [drm] Driver supports precise vblank timestamp query.
> radeon 0000:01:00.0: irq 49 for MSI/MSI-X
> radeon 0000:01:00.0: radeon: using MSI.
> [drm] radeon: irq initialized.
> [drm] Detected VRAM RAM=128M, BAR=128M
> [drm] RAM width 64bits DDR
> [TTM] Zone kernel: Available graphics memory: 440368 kiB.
> [TTM] Zone highmem: Available graphics memory: 1295860 kiB.
>
> I never gave it much thought, but thinking about it, this seems suspicious to
> me as I am pretty sure that this device has only 64MB of VRAM.

Your device does have 64 MB of vram. The pci aperture is 128 MB, but there is only 64 MB of vram. That's why is says "64M used".

(In reply to comment #40)
> I never gave it much thought, but thinking about it, this seems suspicious to
> me as I am pretty sure that this device has only 64MB of VRAM.

I'm using an X1400 here, with 128MB of vram. I'm not sure if that is helpful or not.

Here's some extra info for the fire, and one that surprised me when I discovered it yesterday: there are a few apps that render fullscreen video that do not exhibit the stuttering at all. This is new behavior, previously ANY video would cause the stuttering when fullscreened. This change that I'm seeing may not be the same on your systems, but it's worth testing.

A good example is the Hulu Desktop for Linux application, which streams high quality video fullscreen without any stutter. This uses the video card, the wifi connection, and the sound card at the same time, which is exactly the situation that causes problems for most people. The app specifies that it requires Flash 10.0.32 or higher, which suggests that it uses Flash for the video transport in some fashion. The application can be downloaded from http://www.hulu.com/labs/hulu-desktop-linux

Also, on my system, switching into HTML5 video mode on Youtube (using Google Chrome) allows fullscreen 720p streaming without audio stutter. The same video played in standard Flash video mode (in Chrome or in Firefox) stutters heavily when maximized, in both 480p and 720p formats. In fact, any Flash-based web-embedded video stutters when maximized, on any site that I've tried (Vimeo, CBS, etc), including even Hulu's own web-based player.

I'm not sure what the story is on this, it's confusing. Maybe on my particular hardware the radeon driver is able to cope differently with the particular video rendering method used by Hulu Desktop and the browser HTML5 video implementations. If the Hulu Desktop application is using Flash, it's doing it differently than viewing the same video on Hulu.com in a browser, because the web-embedded player stutters and the Hulu Desktop application doesn't, and both are (theoretically) streaming from the same source.

I'm running very current versions of Mesa, Gallium and the radeon driver, so the particular combination of behaviors that I'm seeing may be a recent change. I also have a relatively fast system (Core 2 Duo with an SSD) and as always, system load seems to have a big impact on this issue appearing or not. So your results may not be the same as mine.

possibly relevant information from glxinfo:
  direct rendering: Yes
  OpenGL vendor string: X.Org R300 Project
  OpenGL renderer string: Gallium 0.4 on ATI RV515
  OpenGL version string: 2.1 Mesa 7.11-devel

Anything new on this?
I've got a Thinkpad T60 with Radeon X1400, IWL3945 and Intel HDA (AD198x) with Linux 2.6.39, mesa 7.11-devel, xserver 1.10.1-devel, xf86-video-ati 6.14.1-devel and suffer from the already mentioned stuttering/choopy audio and frequent iwlwifi-crashes, too!

Regards
denk

Created attachment 47928
Kernel log while loading the radeon driver

With kernel 2.6.39 I get the NMI message (see attachment) on every boot while the radeon driver is loaded. With earlier versions this happened only while i switched the console.

Maybe it would help to investigate the module loading?
If anyone can tell me how to do that, i can submit more detailled informations.

Thanks,
jan.

(In reply to comment #44)
> Created an attachment (id=47928) [details]
> Kernel log while loading the radeon driver
>
> With kernel 2.6.39 I get the NMI message (see attachment) on every boot while
> the radeon driver is loaded. With earlier versions this happened only while i
> switched the console.
>
> Maybe it would help to investigate the module loading?
> If anyone can tell me how to do that, i can submit more detailled informations.
>
> Thanks,
> jan.

This might shed some light:
http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2011-February/049418.html

Created attachment 48007
dmesg from Ubuntu 11.04 - unaffected

Created attachment 48008
dmesg from Fedora 15 - affected

I've added dmesg output from Ubuntu 11.04 which is not affected with the bug (at least on my laptop - Thinkpad T60, 2623P2U, X1300) and Fedora 15 which does have the problem. Unless I missed something, the only relevant difference is DRM version reported, which is 2.8 for Ubuntu and 2.10 for Fedora (how come that's possible is another question).
So far, the following does not help:
- disp_priority=1
- agpmode=1
- gartsize=64
- dynclks=0

(In reply to comment #45)

Dynamic Powermanagement is disabled here (powermanagement profile is fixed to "default", what means, that all pcie lines stay allways enabled).

I played a bit with power_profile settings and it turns our that whenever profile is set to high, mid, sound stuttering is pronounced. Yet, once set to low, stuttering is gone (or unnoticeable).
If anyone wants to try (adjust path to suit your hardware):
echo low > /sys/class/drm/card0/device/power_profile
Then the actual frequency can be verified by:
cat /sys/kernel/debug/dri/0/radeon_pm_info

Also dynpm power_method does not really work, there was another bug report recenty that the frequency is never lowered if dynpm is used.

Additionally, given the recent fuss about pcie_aspm=force (and possible effect on PCIe), sound stuttering is present regardless of the setting.

(In reply to comment #50)
> I played a bit with power_profile settings and it turns our that whenever
> profile is set to high, mid, sound stuttering is pronounced. Yet, once set to
> low, stuttering is gone (or unnoticeable).
> If anyone wants to try (adjust path to suit your hardware):
> echo low > /sys/class/drm/card0/device/power_profile
> Then the actual frequency can be verified by:
> cat /sys/kernel/debug/dri/0/radeon_pm_info

Confirming this on ATI X1400 mobile, Ubuntu 11.04 x86. When using the "low" power profile, audio stuttering/crackling is much less prevalent (or maybe not even noticable) in Youtube fullscreen vids. Using the "high" setting results in definite audio crackling when switching to fullscreen. This is with the very latest Flashplayer 11 beta for Linux released today.

On my card, low setting results in:
# cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 392000 kHz
current engine clock: 128250 kHz
default memory clock: 350000 kHz
current memory clock: 135000 kHz
PCIE lanes: 1

High setting gives:
# cat /sys/kernel/debug/dri/0/radeon_pm_info
default engine clock: 392000 kHz
current engine clock: 391500 kHz
default memory clock: 350000 kHz
current memory clock: 342000 kHz
PCIE lanes: 0

There's a difference not only in board frequencies, but also the PCIE lanes number (0 means full throttle, or is "more performant" than 1 I guess ??).

(In reply to comment #51)
> There's a difference not only in board frequencies, but also the PCIE lanes
> number (0 means full throttle, or is "more performant" than 1 I guess ??).

The PCIe lanes information seems to be read from the card itself (at least that's for RV515), look here:
http://lxr.linux.no/#linux+v2.6.39/drivers/gpu/drm/radeon/r300.c#L553
While 1 is understandable (PCIe x1), 0 value is confusing and I can't tell if that'x x16 or not. Maybe one of the driver authorsa can provide some input.

I've failed to locate any docs that contain information on the registers exposed on the PCI.

Does adding noapic to the kernel commandline in grub help? See the last few comments in bug 37679.

(In reply to comment #53)
> Does adding noapic to the kernel commandline in grub help? See the last few
> comments in bug 37679.
No, it seems to have no effect on the problem, at least on my setup.

I'd like the importance of this bug being corrected to 'major' because disabling KMS in fact means a major loss of functionality. I'm now on kernel 2.6.40 and sadly this heavy bug still is there.

I skipped form Windows to Linux, mainly because the ATI Driver for the x1400 in my Thinkpad T60 (with iwl3945 od course) is crap.Now having tried many different distributions and kernels, i can confirm the bug still is there, and is making the notebook unusable. There's no 3D acceleration available at all on this GPU with KMS disabled. When playing a flash video it needs about 30 seconds fpr reaction if I clock some control with the mouse. Compiz or DirectX in Wine aren't working at all, and make the display crash. The GPU is wasting much energy and the notebook is running very hot, and overall just sluggish and not enjoyable in any fashion, I'd rather use my old Pentium M notebook, if it wasn't defective.

Please consider creating a solution fot this problem, as there's no single alternative for many Notebook owners, of expecially good notebooks (Thinkpad, Dell and more).

Problems with KMS enabled remain as before:
-iwl3945 WLAN gets slower and slower, until disconnect.
-heavy video (especially fullscreen) make the sound stutter in a fashion that makes it impossible to understand spoken word

Thanks,

Changed in xserver-xorg-driver-ati:
importance: Medium → High

Seems worse than ever on Ubuntu 11.10 just released (kernel 3.0, libdrm 2.4.26, xserver 1.10.4, using the new Unity-interface-thing). Just moving the mouse pointer is enough to disturb audio now, apparently. And moving windows around turns audio into bubbling porridge.

Unity is sluggish on the X1400. Guess it's too old to cope now, with the latest desktop tech. Anyways, audio interruption is more or less constant after a while. Don't even need to move anything. Got these:

[ 931.698537] CE: hpet increased min_delta_ns to 515452 nsec
[ 1019.733804] CE: hpet increased min_delta_ns to 773178 nsec
[ 1023.203405] hrtimer: interrupt took 7398146 ns
[ 1171.028962] CE: hpet increased min_delta_ns to 1159767 nsec

(In reply to comment #57)
> Unity is sluggish on the X1400. Guess it's too old to cope now, with the latest
> desktop tech.
Not really. Worked great with UMS. Compiz with way more advanced effects than fade in/out was smooth, same for ioquake running at decent framerate.

I get this on my Thinkpad T60, Radeon X1300 running debian sid.

As well as crackle on the internal intel audio, I get even worse crackle and popping when using my Logitech V20 USB speakers.

The only thing that resolves the problem for me is:

echo mid > /sys/class/drm/card0/device/power_profile

But then gnome-shell and all 3d apps are really slow.

Same problem on openSUSE 12.1 with lenovo T60, Radeon Mobility X1400

Hi

Jan Kouba put me on track to this bug-page. I don't know if "official" developers use this channel as a information or judgment source of bugs. As far as I know Ubuntu works on launchpad to administrate bugs.

For this problem I created https://bugs.launchpad.net/ubuntu/+bug/879790 in order to make Ubuntu know that problem. It may be an idea to "make some noise" there in form of clicking on the button "This bug affects...". And - if you feel like - to reproduce some of your statements from this bug-report-page. Hopefully they will take notice finally.

keep fingers crossed
Quesst

Looks like this will never get solved ;(

If anyone has ideas on how to debug this issue, I have a t60 that I can use.

(In reply to comment #62)
> Looks like this will never get solved ;(
>
> If anyone has ideas on how to debug this issue, I have a t60 that I can use.

I tried enabling msi on alsa and its alot better. Still fulscreen is not good, but much sounds like 11.04

Add: options snd-hda-intel enable_msi=1" to the bottom of your /etc/modprobe.d/alsa-base file.

I think radeon is somehow not playing nice with msi. If we could disable it it might fix the problem...I tried doing it with echo 0 > msi_bus in the radeon bridge but it wasnt working

With a new enough kernel, you can disable MSIs on radeon by setting radeon.msi=0 on the kernel command line in grub or when you load the module. You can disable MSIs globally by setting pci=nomsi on the kernel command line in grub.

(In reply to comment #65)
> You might also try this patch:
> http://cgit.freedesktop.org/~airlied/linux/commit/?h=drm-fixes&id=b7f5b7dec3d539a84734f2bcb7e53fbb1532a40b

I tried to git the 11.10 package from ubuntu and recompile with the change you mentioned in rs600.c file and r100.c . It didnt seem to help. I noticed someone tried disabling MSI so this might not be related to MSI at all...

I was thinking of trying the latest radeon src?

Has anyone tried messing with the audio or wifi drivers? It's possible the issue is on that side. How about messing with the cpufreq governors? Is it still an issue if you force the cpu power state to performance, etc.?

Øyvind Stegard, thank you for reporting this bug and helping make Ubuntu better. This bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, please execute the following command, as it will automatically gather debugging information, in a terminal:
apport-collect 571770

As well, since you noted this started moving from Karmic to Lucid, a bisect needs to be conducted to find the offending commit. Could you please perform this following https://wiki.ubuntu.com/Kernel/KernelBisection ?

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: i386 lucid
Øyvind Stegard (oyvinst) wrote :

This has been an issue ever since Radeon KMS was introduced, and it is still very much an issue in the most recent Ubuntu versions. I marked is as duplicate of https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/879790

tags: added: regression-release
description: updated

Øyvind Stegard, this bug was reported a while ago and there hasn't been any activity in it recently. We were wondering if this is still an issue? If so, could you please test for this with the latest development release of Ubuntu? ISO images are available from http://cdimage.ubuntu.com/daily-live/current/ .

If it remains an issue, could you please run the following command in the development release from a terminal, as it will automatically gather and attach updated debug information to this report:

apport-collect -p linux 571770

If reproducible, could you also please test the latest upstream kernel available (not the daily folder) following https://wiki.ubuntu.com/KernelMainlineBuilds ? It will allow additional upstream developers to examine the issue. Once you've tested the upstream kernel, please comment on which kernel version specifically you tested. If this bug is fixed in the mainline kernel, please add the following tags:
kernel-fixed-upstream
kernel-fixed-upstream-VERSION-NUMBER

where VERSION-NUMBER is the version number of the kernel you tested. For example:
kernel-fixed-upstream-3.14-rc4

This can be done by clicking on the yellow circle with a black pencil icon next to the word Tags located at the bottom of the bug description. As well, please remove the tag:
needs-upstream-testing

If the mainline kernel does not fix this bug, please add the following tags:
kernel-bug-exists-upstream
kernel-bug-exists-upstream-VERSION-NUMBER

As well, please remove the tag:
needs-upstream-testing

Once testing of the upstream kernel is complete, please mark this bug's Status as Confirmed. Please let us know your results. Thank you for your understanding.

Changed in linux (Ubuntu):
importance: Undecided → Low
tags: added: needs-kernel-logs needs-upstream-testing

This bug is really just bug 879790, set status to duplicate or close.
Either way I will not be able to test, as I gave up on using Linux on
the machine due this problem. And now it is obsolete and dusty.

Øyvind Stegard, this bug report is being closed due to your last comment https://bugs.launchpad.net/ubuntu/+source/linux/+bug/571770/comments/90 regarding you are not using Ubuntu with the hardware. For future reference you can manage the status of your own bugs by clicking on the current status in the yellow line and then choosing a new status in the revealed drop down box. You can learn more about bug statuses at https://wiki.ubuntu.com/Bugs/Status. Thank you again for taking the time to report this bug and helping to make Ubuntu better. Please submit any future bugs you may find.

no longer affects: linux (Ubuntu)
affects: xserver-xorg-driver-ati → linux (Ubuntu)
Changed in linux (Ubuntu):
importance: High → Undecided
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.