You are not logged in.

#1 2014-02-25 02:08:50

zanny
Member
From: Baltimore
Registered: 2012-10-05
Posts: 84
Website

[FIXED] Radeon GPU (in PRIME) no longer works under kernel 3.13.4-5

Since the kernel upgrade, I'm encountering three problems with my 7870 - the kernel mod segfaults out at boot, running any application through DRI_PRIME=1 segfaults with virtual memory allocation errors, and (this one is an old one) writing any Xorg conf files prevent the "other" gpus driver from ever being loaded (old topic on this issue on these forums, and the resultant bug report) that is still unresolved. I mention this because I'm unsure if its related.

On any boot under kernel 3.13, with any of my plethora of firmware gpu configuration options (none of which mattered under 3.12 except primary display device, and I've tried them all under 3.13) the radeon module will always segfault at initial boot. Here is a dmesg of such a boot. However, post boot, I can rmmod radeon and reload it, and it will work "fine". Here is a dmesg after reloading the module. I've tried moving radeon into and out of the initrd, and it has no effect. As a result, I can't test this next bug with the gpu as the primary display adapter, because I'll never get a video post with it.

After booting, I have to manually start X, I imagine for unrelated issues to this - if I have KDM autostart, it fails and leaves the displays unresponsive to VT switching. I really need to let it fail, boot a usb driver, and recover that log so I can figure out whats up with that. So after modprobing radeon again and manually starting kdm, I can get a working desktop running off the Intel GPU (note that no modelines ever show up in xrandr for my radeon card, no matter what kernel I've used).  Here is an xorg log where both gpu drivers load, but it has some EQ overflowing going on. This doesn't show up if I don't fix the broken radeon kernel mod loading, so this might be related to the bug breaking the driver elsewhere.

So if I don't specify any .conf files in my X configurations, I can get both gpus showing up in my providers:

Providers: number : 2
Provider 0: id: 0x83 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 6 associated providers: 1 name:Intel
Provider 1: id: 0x59 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 4 associated providers: 1 name:radeon

Of note, since the last kernel, the hex id for my hd4600 has changed from x85 to x83, which I only found out when various programs were running slow.

However, running anything after PRIME'ing the radeon card provudes the same "failed to allocate virtual address" errors:

DRI_PRIME=1 glxgears
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
Segmentation fault (core dumped)
DRI_PRIME=1 supertuxkart
Irrlicht Engine version 1.8.0
Linux 3.13.5-1-ARCH #1 SMP PREEMPT Sun Feb 23 00:25:24 CET 2014 x86_64
[info   ] FileManager: Data files will be fetched from: '/usr/share/supertuxkart/'
[info   ] FileManager: User directory is '/home/zanny/.config/supertuxkart/'.
[info   ] FileManager: Addons files will be stored in '/home/zanny/.local/share/supertuxkart/addons/'.
[info   ] FileManager: Screenshots will be stored in '/home/zanny/.cache/supertuxkart/screenshots/'.
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
Segmentation fault (core dumped)
DRI_PRIME=1 glxinfo
name of display: :0
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
radeon: Failed to allocate virtual address for buffer:
radeon:    size      : 4352 bytes
radeon:    alignment : 4096 bytes
radeon:    domains   : 4
radeon:    va        : 0x0000000000800000
Segmentation fault (core dumped)

Note that without using PRIME all these commands work:

glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.0.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.0.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:

I didn't find any bug reports on the Mesa bug tracker and nobody has posted anything pertaining to this configuration and kernel setup about this issue that I could find. But I would like to be able to use my discrete card again. Anyone know whats up? I'm willing to bet there is some major breakage in radeon.ko that I can't find a bug report for.

Update: I reverted my kernel to 3.12.9 and everything works fine again. I guess I'll just wait until 3.13.6 or 3.14 to try upgrading again.

Last edited by zanny (2014-03-27 02:00:43)

Offline

#2 2014-03-27 02:03:33

zanny
Member
From: Baltimore
Registered: 2012-10-05
Posts: 84
Website

Re: [FIXED] Radeon GPU (in PRIME) no longer works under kernel 3.13.4-5

Kernel 3.13.7 contains the patch to fix this bug, from here on the mailing list: https://lkml.org/lkml/2014/3/20/819

So now I don't have to hold back my kernel anymore, and this issue is resolved. Woopee!

Last edited by zanny (2014-03-27 02:03:59)

Offline

Board footer

Powered by FluxBB