Bug 89072 - Radeon Hawaii no acceleration on 32-bit kernel
Summary: Radeon Hawaii no acceleration on 32-bit kernel
Status: RESOLVED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Radeon (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact: Woody Suwalski
URL:
Whiteboard:
Keywords:
Depends on: 88786
Blocks:
  Show dependency treegraph
 
Reported: 2015-02-11 00:45 UTC by Woody Suwalski
Modified: 2015-03-07 16:36 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
dmesg booted with drm.debug (140.50 KB, text/plain)
2015-02-11 00:45 UTC, Woody Suwalski
no flags Details
lspci -vvnn output (8.45 KB, text/plain)
2015-02-11 00:46 UTC, Woody Suwalski
no flags Details
possible fix (2.40 KB, patch)
2015-03-04 04:56 UTC, Alex Deucher
no flags Details | Splinter Review
fix for nouveau_fbcon.c printk compilation warning (502 bytes, patch)
2015-03-06 04:23 UTC, Woody Suwalski
no flags Details | Splinter Review

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.