https://bugs.freedesktop.org/show_bug.cgi?id=102800
Bug ID: 102800 Summary: DRI_PRIME regression- radeon: Failed to allocate virtual address for buffer Product: DRI Version: XOrg git Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: DRM/Radeon Assignee: dri-devel@lists.freedesktop.org Reporter: higuita@gmx.net
Using a ubuntu 17.04 with a kernel 4.13.2, mesa 1.3-git and libdrm 2.4.83 on a lenovo thinkpad S440 with a intel haswell and a radeon HD8670M/8690M
doing this commands i get a error:
+ xrandr --setprovideroffloadsink 0x3f 0x66 + DRI_PRIME=1 + glxgears radeon: Failed to allocate virtual address for buffer: radeon: size : 65536 bytes radeon: alignment : 4096 bytes radeon: domains : 4 radeon: va : 0x0000000000800000 radeon: Failed to deallocate virtual address for buffer: radeon: size : 65536 bytes radeon: va : 0x800000 radeon: Failed to allocate virtual address for buffer: radeon: size : 65536 bytes radeon: alignment : 4096 bytes radeon: domains : 4 radeon: va : 0x0000000000800000 radeon: Failed to deallocate virtual address for buffer: radeon: size : 65536 bytes radeon: va : 0x800000 radeonsi: Failed to create a context. radeon: Failed to allocate virtual address for buffer: radeon: size : 65536 bytes radeon: alignment : 4096 bytes radeon: domains : 4 radeon: va : 0x0000000000800000 radeon: Failed to deallocate virtual address for buffer: radeon: size : 65536 bytes radeon: va : 0x800000 radeon: Failed to allocate virtual address for buffer: radeon: size : 65536 bytes radeon: alignment : 4096 bytes radeon: domains : 4 radeon: va : 0x0000000000800000 radeon: Failed to deallocate virtual address for buffer: radeon: size : 65536 bytes radeon: va : 0x800000 radeonsi: Failed to create a context. X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 155 (GLX) Minor opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 31 Current serial number in output stream: 33
In the dmesg, i can see this:
[ 1059.004670] [drm:atom_op_jump [radeon]] *ERROR* atombios stuck in loop for more than 5secs aborting [ 1059.004693] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing 746C (len 237, WS 0, PS 4) @ 0x747A [ 1059.004703] [drm:atom_execute_table_locked [radeon]] *ERROR* atombios stuck executing 6E04 (len 74, WS 0, PS 8) @ 0x6E39 [ 1059.012106] [drm] probing gen 2 caps for device 8086:9c18 = 5323c42/0 [ 1059.012110] [drm] PCIE gen 2 link speeds already enabled [ 1059.448659] [UFW ALLOW] IN= OUT=wlan0 SRC=10.42.42.80 DST=140.172.138.79 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=44245 DF PROTO=TCP SPT=50408 DPT=80 WINDOW=30498 RES=0x00 ACK FIN URGP=0 [ 1059.476638] radeon 0000:06:00.0: Wait for MC idle timedout ! [ 1059.708499] radeon 0000:06:00.0: Wait for MC idle timedout ! [ 1059.714600] [drm] PCIE GART of 2048M enabled (table at 0x0000000000040000). [ 1059.714727] radeon 0000:06:00.0: WB enabled [ 1059.714730] radeon 0000:06:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0xffff8c2c59b12c00 [ 1059.714731] radeon 0000:06:00.0: fence driver on ring 1 use gpu addr 0x0000000080000c04 and cpu addr 0xffff8c2c59b12c04 [ 1059.714732] radeon 0000:06:00.0: fence driver on ring 2 use gpu addr 0x0000000080000c08 and cpu addr 0xffff8c2c59b12c08 [ 1059.714732] radeon 0000:06:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0xffff8c2c59b12c0c [ 1059.714733] radeon 0000:06:00.0: fence driver on ring 4 use gpu addr 0x0000000080000c10 and cpu addr 0xffff8c2c59b12c10 [ 1060.424258] [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x850C)=0xCAFEDEAD) [ 1060.424283] [drm:si_resume [radeon]] *ERROR* si startup failed on resume
All this setup worked fine in a previous kernel versions, IIRC, 4.11 and below and started to fail in 4.12 and above
I also notice that the dedicated card switch fron DynOff to DynPwr in /sys/kernel/debug/vgaswitcheroo/switch for a few seconds when trying to run the glxgears
Finally, If i boot the system with radeon.runpm=1, it works
Let me know if you need more logs