Bug 89072

Summary: Radeon Hawaii no acceleration on 32-bit kernel
Product: DRI Reporter: Woody Suwalski <terraluna977>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Woody Suwalski <terraluna977>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 88786    
Bug Blocks:    
Attachments:
Description Flags
dmesg booted with drm.debug
none
lspci -vvnn output
none
possible fix
none
fix for nouveau_fbcon.c printk compilation warning none

Description Woody Suwalski 2015-02-11 00:45:45 UTC
Created attachment 113333 [details]
dmesg booted with drm.debug

On Radeon Hawaii board the GPU acceleration is disabled.
Since the new HSA driver is designed for 64-bit kernels only, the current Radeon accelaration should be fixed for 32-bit systems.

[    0.883020] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.883020] [drm] Driver supports precise vblank timestamp query.
[    0.883036] radeon 0000:01:00.0: radeon: using MSI.
[    0.883053] [drm] radeon: irq initialized.
[    1.026624] [drm:cik_ring_test] *ERROR* radeon: ring 0 test failed (scratch(0x3010C)=0xCAFEDEAD)
[    1.026678] radeon 0000:01:00.0: disabling GPU acceleration
Comment 1 Woody Suwalski 2015-02-11 00:46:58 UTC
Created attachment 113334 [details]
lspci -vvnn output
Comment 2 Alex Deucher 2015-03-04 04:14:32 UTC
I think the problem is ttm uses an unsigned long to store the offsets which is only 32 bits on 32 bit kernels, but the GPU's address space is 64 bit so it gets cut off.
Comment 3 Alex Deucher 2015-03-04 04:56:46 UTC
Created attachment 113971 [details] [review]
possible fix

Does this patch help?
Comment 4 Woody Suwalski 2015-03-06 04:23:50 UTC
Created attachment 114065 [details] [review]
fix for nouveau_fbcon.c printk compilation warning
Comment 5 Woody Suwalski 2015-03-06 04:27:48 UTC
Your idea seems to be correct:

[    0.922337] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    0.922383] [drm] Driver supports precise vblank timestamp query.
[    0.922444] radeon 0000:01:00.0: radeon: using MSI.
[    0.922505] [drm] radeon: irq initialized.
[    0.924622] [drm] ring test on 0 succeeded in 4 usecs
[    0.924743] [drm] ring test on 1 succeeded in 3 usecs
[    0.924799] [drm] ring test on 2 succeeded in 3 usecs
[    0.924945] [drm] ring test on 3 succeeded in 5 usecs
[    0.924997] [drm] ring test on 4 succeeded in 5 usecs
[    0.970689] [drm] ring test on 5 succeeded in 2 usecs
[    0.990579] [drm] UVD initialized successfully.
[    1.099778] [drm] ring test on 6 succeeded in 24 usecs
[    1.099831] [drm] ring test on 7 succeeded in 3 usecs
[    1.099876] [drm] VCE initialized successfully.
[    1.100006] [drm] ib test on ring 0 succeeded in 0 usecs
[    1.599633] [drm] ib test on ring 1 succeeded in 0 usecs
[    1.851505] tsc: Refined TSC clocksource calibration: 3092.973 MHz
[    2.099525] [drm] ib test on ring 2 succeeded in 0 usecs
[    2.099660] [drm] ib test on ring 3 succeeded in 0 usecs
[    2.099758] [drm] ib test on ring 4 succeeded in 0 usecs
[    2.619405] [drm] ib test on ring 5 succeeded
[    2.640200] [drm] ib test on ring 6 succeeded
[    2.640982] [drm] ib test on ring 7 succeeded

glxgears shows much better numbers now.

The side effect is a compilation warning for nouveau driver - patch attached.
Comment 6 Woody Suwalski 2015-03-06 22:53:40 UTC
Also did a sanity test on Nvidia 50 and Radon 635, no new problems noticed.
Alex, if you think that glxgears test is a sufficient proof, we can close this bug.

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.