Bug 37169

Summary: [r280] GL applications crash X (KMS in Ubuntu 11.04)
Product: xorg Reporter: Vlado Plaga <rechner>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: 7.6 (2010.12)   
Hardware: PowerPC   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg output after the X crash
none
Xorg.0.log from after the crash none

Description Vlado Plaga 2011-05-13 03:49:22 UTC
Created attachment 46678 [details]
dmesg output after the X crash

Since UMS does not work properly on my system (see #37166) I experimented with KMS using a current Ubuntu (11.04). UMS on this Ubuntu had different problems, like crashes when switching back to console (on shutdown), and no acceleration at all.

I tried disabling radeonfb and the Openfirmware framebuffer, and then loading radeon manually via ssh from a different system. It first seems to work, but starting a 3D application (i.e. glxgears) immediately leads to a crash.

I tried many different things, and the latest kernel I used was 2.6.39-rc6. I could recompile with debugging, if someone was interested in working on this. But it might take a few days (less than a week) for me to get back to this.

I'm attaching dmesg output and Xorg.0.log from after the crash.
Comment 1 Vlado Plaga 2011-05-13 03:50:19 UTC
Created attachment 46679 [details]
Xorg.0.log from after the crash
Comment 2 Alex Deucher 2011-05-13 09:14:16 UTC
According to benh, due to architectural issues, it doesn't seem likely that AGP will ever work reliably on ppc.  Does using the internal gart rather than AGP help?  Load radeon with agpmode=-1
Comment 3 Vlado Plaga 2011-05-16 12:22:09 UTC
(In reply to comment #2)

I don't know if it's because of "agpmode=-1", or because of some other reason (although I don't think I changed anything): now I can't even load the radeon module without crashing the system (completely). This is what I captured on my notebook, when I was logged in to the mac mini via ssh and tried a "modprobe radeon" from there:

May 17 04:37:11 wombat kernel: [   80.664679] [drm] radeon kernel modesetting enabled.
May 17 04:37:11 wombat kernel: [   80.664804] radeon 0000:00:10.0: enabling device (0006 -> 0007)
May 17 04:37:11 wombat kernel: [   80.670216] [drm] initializing kernel modesetting (RV280 0x1002:0x5962).
May 17 04:37:11 wombat kernel: [   80.670230] [drm] Forcing AGP to PCI mode
May 17 04:37:11 wombat kernel: [   80.670256] [drm] register mmio base: 0x90000000
May 17 04:37:11 wombat kernel: [   80.670260] [drm] register mmio size: 65536
May 17 04:37:11 wombat kernel: [   80.670332] radeon 0000:00:10.0: Invalid ROM contents
May 17 04:37:11 wombat kernel: [   80.670375] radeon 0000:00:10.0: Invalid ROM contents
May 17 04:37:11 wombat kernel: [   80.670392] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM
May 17 04:37:11 wombat kernel: [   80.670422] [drm] Using device-tree clock info
May 17 04:37:11 wombat kernel: [   80.670429] [drm] Generation 2 PCI interface, using max accessible memory
May 17 04:37:11 wombat kernel: [   80.670438] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 - 0x000000009FFFFFFF (32M used)
May 17 04:37:11 wombat kernel: [   80.670446] radeon 0000:00:10.0: GTT: 512M 0x0000000078000000 - 0x0000000097FFFFFF
May 17 04:37:11 wombat kernel: [   80.670465] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
May 17 04:37:11 wombat kernel: [   80.670469] [drm] Driver supports precise vblank timestamp query.
May 17 04:37:11 wombat kernel: [   80.670507] [drm] radeon: irq initialized.
May 17 04:37:11 wombat kernel: [   80.670511] [drm] Detected VRAM RAM=128M, BAR=128M
May 17 04:37:11 wombat kernel: [   80.670515] [drm] RAM width 64bits DDR
May 17 04:37:11 wombat kernel: [   80.673673] [TTM] Zone  kernel: Available graphics memory: 383788 kiB.
May 17 04:37:11 wombat kernel: [   80.673682] [TTM] Zone highmem: Available graphics memory: 514860 kiB.
May 17 04:37:11 wombat kernel: [   80.673687] [TTM] Initializing pool allocator.
May 17 04:37:11 wombat kernel: [   80.673791] [drm] radeon: 32M of VRAM memory ready
May 17 04:37:11 wombat kernel: [   80.673805] [drm] radeon: 512M of GTT memory ready.
May 17 04:37:11 wombat kernel: [   80.673858] [drm] GART: num cpu pages 131072, num gpu pages 31072                                                                                     
May 17 04:37:11 wombat kernel: [   80.683861] radeon 0000:00:10.0: WB enabled
May 17 04:37:11 wombat kernel: [   80.688206] [drm] Loading R200 Microcode

...that's when the system freezes.

Maybe I'd be better off without the microcode?

Alex, from what I remember you are the main developer of the radeon module? Would you be interested in more debug information?

By the way: radeon now works very well on my AMD64 notebook (with an R300 chipset). For the first time in maybe two years I can now properly use Google Earth on that system - and it's the first time this works with a completely free driver (Ubuntu 11.04, KMS). Thanks for the good work!
Comment 4 Alex Deucher 2011-05-16 12:35:14 UTC
(In reply to comment #3)
> ...that's when the system freezes.
> 

you might try no_wb=1 along with agpmode=-1

> Maybe I'd be better off without the microcode?
> 

It's required for acceleration.

> Alex, from what I remember you are the main developer of the radeon module?
> Would you be interested in more debug information?

It's a powerpc specific issue.  Unfortunately, I don't have the hardware or time to debug it extensively.
Comment 5 Vlado Plaga 2011-05-16 14:00:39 UTC
(In reply to comment #4)

> you might try no_wb=1 along with agpmode=-1

Some improvement: the system does not crash anymore. Still no 3D acceleration, though. Some dmesg output:

[  163.303060] [drm] radeon kernel modesetting enabled.
[  163.303184] radeon 0000:00:10.0: enabling device (0006 -> 0007)
[  163.309647] [drm] initializing kernel modesetting (RV280 0x1002:0x5962).
[  163.309662] [drm] Forcing AGP to PCI mode
[  163.309684] [drm] register mmio base: 0x90000000
[  163.309688] [drm] register mmio size: 65536
[  163.309768] radeon 0000:00:10.0: Invalid ROM contents
[  163.309812] radeon 0000:00:10.0: Invalid ROM contents
[  163.309829] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM
[  163.309859] [drm] Using device-tree clock info
[  163.309866] [drm] Generation 2 PCI interface, using max accessible memory
[  163.309875] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 - 0x000000009FFFFFFF (32M used)
[  163.309883] radeon 0000:00:10.0: GTT: 512M 0x0000000078000000 - 0x0000000097FFFFFF
[  163.309903] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[  163.309907] [drm] Driver supports precise vblank timestamp query.
[  163.309944] [drm] radeon: irq initialized.
[  163.309948] [drm] Detected VRAM RAM=128M, BAR=128M
[  163.309953] [drm] RAM width 64bits DDR
[  163.313796] [TTM] Zone  kernel: Available graphics memory: 383788 kiB.
[  163.313805] [TTM] Zone highmem: Available graphics memory: 514860 kiB.
[  163.313810] [TTM] Initializing pool allocator.
[  163.313921] [drm] radeon: 32M of VRAM memory ready
[  163.313927] [drm] radeon: 512M of GTT memory ready.
[  163.313982] [drm] GART: num cpu pages 131072, num gpu pages 131072
[  163.323879] radeon 0000:00:10.0: WB disabled
[  163.326049] [drm] Loading R200 Microcode
[  163.396720] [drm] radeon: ring at 0x0000000078001000
[  163.534044] [drm:r100_ring_test] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD)
[  163.534082] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22).
[  163.534102] radeon 0000:00:10.0: failed initializing CP (-22).
[  163.534117] radeon 0000:00:10.0: Disabling GPU acceleration
[  163.671374] [drm:r100_cp_fini] *ERROR* Wait for CP idle timeout, shutting down CP.
[  163.808651] Failed to wait GUI idle while programming pipes. Bad things might happen.
[  163.815157] [drm] radeon: cp finalized
[  163.827669] [drm] Connector Table: 6 (mini external tmds)
[  163.827686] [drm] No valid Ext TMDS info found in BIOS
[  163.827696] [drm] No TV DAC info found in BIOS
[  163.832754] [drm] Radeon Display Connectors
[...]
[  163.997877] [drm] fb depth is 8
[  163.997880] [drm]    pitch is 1920
[  164.532215] Console: switching to colour frame buffer device 240x67
[  164.572184] fb0: radeondrmfb frame buffer device
[  164.572188] drm: registered panic notifier
[  164.572227] [drm] Initialized radeon 2.9.0 20080528 for 0000:00:10.0 on minor 0

> It's a powerpc specific issue.  Unfortunately, I don't have the hardware or
> time to debug it extensively.

Too bad. Anyway, thanks for helping this far! Maybe someone else has any suggestion?
Comment 6 Vlado Plaga 2011-07-24 10:55:20 UTC
Now with Linux 3.0 (and the little fix from https://bugzilla.kernel.org/show_bug.cgi?id=23222 ) I get working 3D acceleration... working, but not very usable. I'm now loading the radeon module with "radeon.modeset=1 radeon.agpmode=-1" (no more "no_wb=1").

GL programs like the queens screensaver work again, but, probably due to my wide screen (1920 px), they are quite slow in full screen mode. Same goes for glxgears. I had the latter running for a few seconds with "agpmode=2", and it seemed faster, but then the whole system crashed again. So I don't know if this bug should be marked as closed/ resolved now.

Unfortunately "xv" for video playback isn't as good as it used to be with UMS: videos with somewhat higher resolution (like DVD), or stretching a low-resolution video's window to about 600 px width, cause an interesting "stutter" effect (even apparently going backwards a litte) although CPU usage is not at 100% yet.

It is possible to run the Gnome desktop with "desktop effects" (transparent terminal, window shadows) enabled. Under KDE (which I prefer) this first seems to work as well (with compositing type XRender, not with OpenGL), but several times situations occured where xorg (and once kded) caused 100% cpu usage.

I'd still like to see working 3D on my old Mac mini, but probably I'll buy some AMD Fusion system as a replacement in the coming months anyway. There are just too many problems, and some programs are really quite slow on this old machine.
Comment 7 Michel Dänzer 2011-08-03 10:46:34 UTC
(In reply to comment #6)
> GL programs like the queens screensaver work again, but, probably due to my
> wide screen (1920 px), they are quite slow in full screen mode. Same goes for
> glxgears. I had the latter running for a few seconds with "agpmode=2", and it
> seemed faster, but then the whole system crashed again.

Have you tried agpmode=1? -1 is definitely much slower in general with pre-PCIe cards.
Comment 8 Vlado Plaga 2011-08-04 09:47:31 UTC
(In reply to comment #7)

> Have you tried agpmode=1? -1 is definitely much slower in general with pre-PCIe
> cards.

Yes, I tried that too. It's still in my yaboot.conf (the bootloader's config file) as configuration "ub.agp". It was more or less the same result, if I remember correctly.
Comment 9 Christopher M. Penalver 2016-02-25 06:48:30 UTC
Originally scoped issue fixed as per https://bugs.freedesktop.org/show_bug.cgi?id=37169#c5 .

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.