Unable to use 3D with Radeon 2100 and UI freezes with Firefox
Dear Thomas and other people,
After experiencing problems with many post 2.6.38 kernels with X when I used Firefox to see any webpage that used some of the new HTML5 features (Firefox freeze completely X and I could only log in remotely with SSH), I took some time to see where things went wrong and, to cut a long story short, I bisected the kernel and I found that a commit of yours was the first one that introduced a problem with my system:
,----
| rbrito:~/linux-2.6$ git bisect bad | fa27271bc8d230355c1f24ddea103824fdc12de6 is the first bad commit | commit fa27271bc8d230355c1f24ddea103824fdc12de6 | Author: Thomas Gleixner <[email protected]> | Date: Mon Feb 7 09:10:39 2011 +0100 | | genirq: Fixup poll handling | | try_one_irq() contains redundant code and lots of useless checks for | shared interrupts. Check for shared before setting IRQ_INPROGRESS and | then call handle_IRQ_event() while pending. Shorter version with the | same functionality. | | Signed-off-by: Thomas Gleixner <[email protected]> | | :040000 040000 c95a9924689379c833a9e658222f7c0885f6cef7 96bbb50baa3f05f576c845c0e7c981d1e785cde9 M kernel | rbrito:~/linux-2.6$
`----
Here I have the dmesg output slightly edited with the points that I think that are the most relevant to the problem. Please note that my understanding of devices/hardware is next to nothing and I may have cut important parts.
,----[ dmesg.txt ]
| (...) | [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-2.6.38-rc5+ root=UUID=c1b72bf3-c292-411d-832a-0b92510b158f ro irqpoll | (...) | [ 0.663091] Freeing initrd memory: 2980k freed | [ 0.663981] PCI-DMA: Disabling AGP. | [ 0.664115] PCI-DMA: aperture base @ cc000000 size 65536 KB | [ 0.664153] PCI-DMA: using GART IOMMU. | [ 0.664191] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture | [ 0.668361] HugeTLB registered 2 MB page size, pre-allocated 0 pages | (...) | [ 1.037417] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001 | [ 1.037457] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1 | [ 1.037500] usb usb4: Product: OHCI Host Controller | [ 1.037537] usb usb4: Manufacturer: Linux 2.6.38-rc5+ ohci_hcd | [ 1.037575] usb usb4: SerialNumber: 0000:00:12.1 | [ 1.037705] hub 4-0:1.0: USB hub found | [ 1.037747] hub 4-0:1.0: 3 ports detected | [ 1.037856] ohci_hcd 0000:00:13.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18 | [ 1.037907] ohci_hcd 0000:00:13.0: OHCI Host Controller | [ 1.037948] ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 5 | [ 1.066725] ohci_hcd 0000:00:13.0: irq 18, io mem 0xfe8fc000 | (...) | [ 4.326808] [drm] Initialized drm 1.1.0 20060810 | [ 4.484586] Error: Driver 'pcspkr' is already registered, aborting... | [ 4.583911] HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16 | [ 4.684976] [drm] radeon kernel modesetting enabled. | [ 4.685072] pci 0000:00:01.0: can't derive routing for PCI INT A | [ 4.685110] radeon 0000:01:05.0: PCI INT A: no GSI - using ISA IRQ 10 | [ 4.686557] [drm] initializing kernel modesetting (RS740 0x1002:0x796E). | [ 4.686616] [drm] register mmio base: 0xFEAF0000 | [ 4.686653] [drm] register mmio size: 65536 | [ 4.690479] ATOM BIOS: ATI | [ 4.690525] radeon 0000:01:05.0: VRAM: 128M 0x00000000D8000000 - 0x00000000DFFFFFFF (128M used) | [ 4.690569] radeon 0000:01:05.0: GTT: 512M 0x00000000A0000000 - 0x00000000BFFFFFFF | [ 4.690612] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). | [ 4.690649] [drm] Driver supports precise vblank timestamp query. | [ 4.690698] [drm] radeon: irq initialized. | [ 4.692957] [drm] Detected VRAM RAM=128M, BAR=128M | [ 4.693000] [drm] RAM width 128bits DDR | [ 4.693108] [TTM] Zone kernel: Available graphics memory: 1964188 kiB. | [ 4.693146] [TTM] Initializing pool allocator. | [ 4.693197] [drm] radeon: 128M of VRAM memory ready | [ 4.693234] [drm] radeon: 512M of GTT memory ready. | [ 4.693274] [drm] GART: num cpu pages 131072, num gpu pages 131072 | [ 4.719431] [drm] radeon: 1 quad pipes, 1 z pipes initialized. | [ 4.730617] radeon 0000:01:05.0: WB enabled | [ 4.730694] [drm] Loading RS690/RS740 Microcode | [ 4.739563] hda_codec: ALC662 rev1: BIOS auto-probing. | [ 4.744345] input: HDA ATI SB Headphone as /devices/pci0000:00/0000:00:14.2/sound/card0/input5 | [ 4.891800] [drm] radeon: ring at 0x00000000A0001000 | [ 4.891855] [drm] ring test succeeded in 1 usecs | [ 4.891977] [drm] radeon: ib pool ready. | [ 4.892049] [drm] ib test succeeded in 0 usecs | [ 4.892086] [drm] Enabling audio support | [ 4.892126] failed to evaluate ATIF got AE_BAD_PARAMETER | [ 4.892342] [drm] Radeon Display Connectors | [ 4.892379] [drm] Connector 0: | [ 4.892415] [drm] VGA | [ 4.892451] [drm] DDC: 0x7e50 0x7e40 0x7e54 0x7e44 0x7e58 0x7e48 0x7e5c 0x7e4c | [ 4.892493] [drm] Encoders: | [ 4.892528] [drm] CRT1: INTERNAL_KLDSCP_DAC1 | [ 4.892565] [drm] Connector 1: | [ 4.892600] [drm] DVI-D | [ 4.892636] [drm] HPD2 | [ 4.892672] [drm] DDC: 0x7e40 0x7e60 0x7e44 0x7e64 0x7e48 0x7e68 0x7e4c 0x7e6c | [ 4.892713] [drm] Encoders: | [ 4.892749] [drm] DFP2: INTERNAL_DDI | [ 4.892785] [drm] Connector 2: | [ 4.892820] [drm] DVI-D | [ 4.892856] [drm] DDC: 0x7e40 0x7e50 0x7e44 0x7e54 0x7e48 0x7e58 0x7e4c 0x7e5c | [ 4.892897] [drm] Encoders: | [ 4.892933] [drm] DFP3: INTERNAL_LVTM1 | [ 5.297287] [drm] fb mappable at 0xF0040000 | [ 5.297349] [drm] vram apper at 0xF0000000 | [ 5.297411] [drm] size 8294400 | [ 5.297472] [drm] fb depth is 24 | [ 5.297533] [drm] pitch is 7680 | [ 5.298384] fbcon: radeondrmfb (fb0) is primary device | [ 5.633639] Console: switching to colour frame buffer device 240x67 | [ 5.944521] fb0: radeondrmfb frame buffer device | [ 5.944622] drm: registered panic notifier | [ 5.944746] [drm] Initialized radeon 2.8.0 20080528 for 0000:01:05.0 on minor 0 | [ 6.125400] kvm: Nested Virtualization enabled | [ 6.125541] kvm: Nested Paging enabled | [ 6.668075] Adding 7426044k swap on /dev/sda5. Priority:-1 extents:1 across:7426044k | [ 6.671288] EXT4-fs (sda1): re-mounted. Opts: (null) | [ 6.799172] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro | [ 6.934291] loop: module loaded | [ 7.815455] irq 18: nobody cared (try booting with the "irqpoll" option) | [ 7.815568] Pid: 907, comm: rpcbind Not tainted 2.6.38-rc5+ #14 | [ 7.815663] Call Trace: | [ 7.815704] <IRQ> [<ffffffff81266aeb>] ? __report_bad_irq+0x35/0x9a | [ 7.815819] [<ffffffff8106aaad>] ? note_interrupt+0x103/0x172 | [ 7.815915] [<ffffffff8106b481>] ? handle_fasteoi_irq+0xa3/0xcf | [ 7.816014] [<ffffffff81004606>] ? handle_irq+0x1a/0x1e | [ 7.816102] [<ffffffff81004355>] ? do_IRQ+0x42/0x98 | [ 7.816185] [<ffffffff8126c5d3>] ? ret_from_intr+0x0/0xe | [ 7.816672] <EOI> [<ffffffff810a46b5>] ? virt_to_head_page+0x7/0x2b | [ 7.816672] [<ffffffff81001e17>] ? system_call_after_swapgs+0x17/0x65 | [ 7.816672] [<ffffffff81001e7b>] ? system_call_fastpath+0x16/0x1b | [ 7.816672] handlers: | [ 7.816672] [<ffffffffa002e880>] (usb_hcd_irq+0x0/0x56 [usbcore]) | [ 7.816672] [<ffffffffa002e880>] (usb_hcd_irq+0x0/0x56 [usbcore]) | [ 7.816672] [<ffffffffa002e880>] (usb_hcd_irq+0x0/0x56 [usbcore]) | [ 7.816672] Disabling IRQ #18
`----
I have copious amounts of data that I can send (including a description of my hardware), but to avoid information overload, I will just keep send here the git bisect log:
,----[ git bisect log ]
| git bisect start | # bad: [61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf] Linux 2.6.39 | git bisect bad 61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf | # good: [521cb40b0c44418a4fd36dc633f575813d59a43d] Linux 2.6.38 | git bisect good 521cb40b0c44418a4fd36dc633f575813d59a43d | # bad: [0df0914d414a504b975f3cc66ace0c16ef55b7f3] Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 | git bisect bad 0df0914d414a504b975f3cc66ace0c16ef55b7f3 | # bad: [6445ced8670f37cfc2c5e24a9de9b413dbfc788d] Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 | git bisect bad 6445ced8670f37cfc2c5e24a9de9b413dbfc788d | # bad: [2e270d84223262a38d4755c61d55f5c73ea89e56] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 | git bisect bad 2e270d84223262a38d4755c61d55f5c73ea89e56 | # good: [3904afb41d4316f7a2968c615d689e19149a4f84] Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip | git bisect good 3904afb41d4316f7a2968c615d689e19149a4f84 | # bad: [bd2895eeade5f11f3e5906283c630bbdb4b57454] Merge branch 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq | git bisect bad bd2895eeade5f11f3e5906283c630bbdb4b57454 | # bad: [d5d42399bd7b66bd6b55363b311810504110c967] Merge branch 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip | git bisect bad d5d42399bd7b66bd6b55363b311810504110c967 | # bad: [d4d5e08960844a062da8387ee5f16ca7a33200d0] genirq: Add IRQCHIP_SET_TYPE_MASKED flag | git bisect bad d4d5e08960844a062da8387ee5f16ca7a33200d0 | # bad: [a7ae4de5c8ae8110556f0f9c7241093ef984605c] genirq: Use handle_irq_event() in handle_fasteoi_irq() | git bisect bad a7ae4de5c8ae8110556f0f9c7241093ef984605c | # good: [2b879eaf095878430c38cbd95e5c0fc4ce65ad8e] genirq: Remove redundant thread affinity setting | git bisect good 2b879eaf095878430c38cbd95e5c0fc4ce65ad8e | # bad: [3b56f0585fd4c02d047dc406668cb40159b2d340] genirq: Remove bogus conditional | git bisect bad 3b56f0585fd4c02d047dc406668cb40159b2d340 | # bad: [c7259cd7af757ddcd65701c37099dcddae2054f0] genirq: Do not poll disabled, percpu and timer interrupts | git bisect bad c7259cd7af757ddcd65701c37099dcddae2054f0 | # good: [b738a50a202639614c98b5763b01bf9201779e50] genirq: Warn when handler enables interrupts | git bisect good b738a50a202639614c98b5763b01bf9201779e50 | # bad: [fa27271bc8d230355c1f24ddea103824fdc12de6] genirq: Fixup poll handling | git bisect bad fa27271bc8d230355c1f24ddea103824fdc12de6
`----
I see that the commit in question is one in a long chain of the genirq facelift. Could I help with getting this fixed for this desktop of mine? Apparently, the rewrite/shorter version didn't preserve all the same behaviour...
I hope that I did my homework right bisecting, recompiling, etc. the kernel. If not, please advise.
I am willing to test with whatever you want me to.
Thanks, Rogério Brito.
Signature · 3 lines
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org : Packages for LaTeX : algorithms.berlios.de
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.br2011/7/24 Rogério Brito <[email protected]>:
Quoted 9 lines
Dear Thomas and other people,
After experiencing problems with many post 2.6.38 kernels with X when I used Firefox to see any webpage that used some of the new HTML5 features (Firefox freeze completely X and I could only log in remotely with SSH), I took some time to see where things went wrong and, to cut a long story short, I bisected the kernel and I found that a commit of yours was the first one that introduced a problem with my system:
Quoted 5 lines
`----
Here I have the dmesg output slightly edited with the points that I think that are the most relevant to the problem. Please note that my understanding of devices/hardware is next to nothing and I may have cut important parts.
Can you attach /proc/interrupts as well please.
Dave.
Dear Dave, Thomas and other people,
Quoted 7 lines · Dave Airlie
2011/7/24 Rogério Brito <[email protected]>:
Quoted 4 lines
Here I have the dmesg output slightly edited with the points that I think that are the most relevant to the problem. Please note that my understanding of devices/hardware is next to nothing and I may have cut important parts.
Can you attach
/proc/interruptsas well please.
Sure, I am attaching the contents of /proc/interrupts from both a kernel that works and one that doesn't.
Please, advise if you want more information and how you would prefer me to send them. I will do my best to get those to you.
Thanks,
Signature · 3 lines
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org : Packages for LaTeX : algorithms.berlios.de
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.brCPU0 CPU1 CPU2 CPU3
0: 43 0 0 1 IO-APIC-edge timer
1: 0 0 0 2 IO-APIC-edge i8042
7: 1 0 0 0 IO-APIC-edge parport0
8: 0 0 0 1 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
10: 0 0 0 0 IO-APIC-fasteoi radeon
12: 0 0 0 4 IO-APIC-edge i8042
16: 0 0 25 5260 IO-APIC-fasteoi ohci_hcd:usb3, ohci_hcd:usb4, hda_intel
17: 0 0 0 2 IO-APIC-fasteoi ehci_hcd:usb1
18: 0 1 24 4448 IO-APIC-fasteoi ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7
19: 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb2
22: 0 2 51 13245 IO-APIC-fasteoi ahci
41: 0 1 154 10606 PCI-MSI-edge eth0
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 20027 15490 8861 18882 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
IWI: 0 0 0 0 IRQ work interrupts
RES: 22631 17487 7215 3252 Rescheduling interrupts
CAL: 652 869 1070 485 Function call interrupts
TLB: 2519 1944 1436 2708 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 1 1 1 1 Machine check polls
ERR: 1
MIS: 0
CPU0 CPU1 CPU2 CPU3
0: 41 0 0 1 IO-APIC-edge timer
1: 0 0 0 2 IO-APIC-edge i8042
7: 1 0 0 0 IO-APIC-edge parport0
8: 0 0 0 1 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
10: 0 0 0 0 IO-APIC-fasteoi radeon
12: 0 0 0 4 IO-APIC-edge i8042
16: 0 1 145 1080 IO-APIC-fasteoi ohci_hcd:usb3, ohci_hcd:usb4, hda_intel
17: 0 0 0 2 IO-APIC-fasteoi ehci_hcd:usb1
18: 3 1 109 99890 IO-APIC-fasteoi ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7
19: 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb2
22: 0 4 393 10750 IO-APIC-fasteoi ahci
41: 0 0 0 85 PCI-MSI-edge eth0
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 10001 7584 5251 10844 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
IWI: 0 0 0 0 IRQ work interrupts
RES: 9456 7990 4427 1996 Rescheduling interrupts
CAL: 699 786 924 292 Function call interrupts
TLB: 577 1124 748 447 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 1 1 1 1 Machine check polls
ERR: 1
MIS: 0Dear Thomas, Dave, and other people,
2011/7/25 Rogério Brito <[email protected]>:
Quoted 5 lines · Dave Airlie
Quoted 1 line
Can you attach
/proc/interruptsas well please.Sure, I am attaching the contents of
/proc/interruptsfrom both a kernel that works and one that doesn't.
It's been a week since I sent my first message. Did it get through?
Quoted 2 lines
Please, advise if you want more information and how you would prefer me to send them. I will do my best to get those to you.
Again, if you need any information, please let me know and I will do my best to get them to you.
Thanks,
Signature · 3 lines
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org : Packages for LaTeX : algorithms.berlios.de
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.brHi once again, but things are not good with any kernel past the reworked IRQ stuff.
Quoted 9 lines · Dave Airlie
2011/7/24 Rogério Brito <[email protected]>:
Quoted 6 lines
After experiencing problems with many post 2.6.38 kernels with X when I used Firefox to see any webpage that used some of the new HTML5 features (Firefox freeze completely X and I could only log in remotely with SSH), I took some time to see where things went wrong and, to cut a long story short, I bisected the kernel and I found that a commit of yours was the first one that introduced a problem with my system:
Can you attach
/proc/interruptsas well please.
It seems that the radeon thing is just one of the manifestations of the problem.
Today, I noticed another bad symptom, when I accidentally booted with kernel 3.0 (I have many kernels in GRUB2): I printed a LaTeX document with only 2 pages of pure text. My printer is an inkjet printer connected via USB to my computer and it took about 6 minutes to print those 2 pages. The printer head moved printing something, then it paused a bit, then it printed some more, then it paused some more etc.
I just rebooted with 2.6.38 and the very same document was printed in, like, 15 seconds...
So, is there anything that I could do to rectify this situation? I can give you loads of dumps from here, as long as you tell me what would be useful.
Thanks,
Signature · 3 lines
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org : Packages for LaTeX : algorithms.berlios.de
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.brQuoted 29 lines · Rogério Brito
Hi once again, but things are not good with any kernel past the reworked IRQ stuff.
Quoted 12 lines · Dave Airlie
2011/7/24 Rogério Brito <[email protected]>:
Quoted 10 lines
After experiencing problems with many post 2.6.38 kernels with X when I used
Firefox to see any webpage that used some of the new HTML5 features (Firefox
freeze completely X and I could only log in remotely with SSH), I took some
time to see where things went wrong and, to cut a long story short, I bisected the kernel and I found that a commit of yours was the first one that introduced a problem with my system:Quoted 1 line
Can you attach
/proc/interruptsas well please.It seems that the radeon thing is just one of the manifestations of the problem.
Today, I noticed another bad symptom, when I accidentally booted with kernel 3.0 (I have many kernels in GRUB2): I printed a LaTeX document with only 2 pages of pure text. My printer is an inkjet printer connected via USB to my computer and it took about 6 minutes to print those 2 pages. The printer head moved printing something, then it paused a bit, then it printed some more, then it paused some more etc.
Quoted 6 lines
I just rebooted with 2.6.38 and the very same document was printed in, like, 15 seconds...
So, is there anything that I could do to rectify this situation? I can give you loads of dumps from here, as long as you tell me what would be useful.
Well I was hoping Thomas would help debug this, but he's gone on holidays, I'll try and take a look next week.
but I've no real idea about the irq subsystem.
Dave.
Hi, Dave.
Quoted 8 lines · Dave Airlie
Quoted 7 lines · Rogério Brito
It seems that the radeon thing is just one of the manifestations of the problem.
Today, I noticed another bad symptom, when I accidentally booted with kernel 3.0 (I have many kernels in GRUB2): I printed a LaTeX document with only 2 pages of pure text. My printer is an inkjet printer connected via USB to my computer and it took about 6 minutes to print those 2 pages.
(...)
Quoted 4 lines
Well I was hoping Thomas would help debug this, but he's gone on holidays, I'll try and take a look next week.
but I've no real idea about the irq subsystem.
Thanks for the prompt reply. Should I file it on bugzilla? Just as a reminder, the first problematic commit is fa27271bc8d230355c1f24ddea103824fdc12de6: genirq: Fixup poll handling
As the MAINTAINERS file only lists Thomas as the responsible for the IRQ subsystem, I'm still CC'ing linux-kernel, but I can bring the discussion to any other mailing list, if applicable.
Thanks,
Signature · 3 lines
Rogério Brito : rbrito@{ime.usp.br,gmail.com} : GPG key 4096R/BCFCAAAA
http://rb.doesntexist.org : Packages for LaTeX : algorithms.berlios.de
DebianQA: http://qa.debian.org/developer.php?login=rbrito%40ime.usp.br