When applying patch from https://bugs.launchpad.net/bugs/1902795 - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1902795/+attachment/5431335/+files/0001-drm-radeon-make-all-PCI-GPUs-use-32bits-DMA-bit-mask.patch which reduces the breakage (but not fix completely) the issues faced with PCI GPUs on K8 and K10 hosts by setting DMA bit mask to 32-bits for all PCI GPUs, we can see those this that is fixed on PCI GPUs is not fixed on AGP-as-PCI GPUs (and there is even more errores before that): ``` [ 5.242322] [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD) ``` Things even go that wrong we even don't see those other errors that are expected to be seen after that: ``` [ 5.242359] radeon 0000:01:00.0: disabling GPU acceleration ``` ``` [ 34.558889] trying to bind memory to uninitialized GART ! ``` Instead, the kernel loops before reaching those errors, trying desperately to pass this r600_ring_test step. But before r600_ring_test failure message is printed, more and newer issues about ring 0 being stalled and GU lockup occurs with AGP-as-PCI GPUs that are never seen with PCI-native GPUs, especially when taken in account PCI GPUs can at least pass the r600_ring_test with the patch. Also, after the r600_ring_test failure message, instead of getting the message telling GPU acceleration is disabled, we get a message about r600 startup failing on resume which is new. This is why it is believed that fixing PCI GPUs may not be enough to fix AGP GPUs running as PCI ones when AGP is disabled at kernel build time. Here are the issues that is only seen with AGP-as-PCI GPUs, occurring before and after the r600_ring_test failure message: ``` [ 45.763336] radeon 0000:01:00.0: ring 0 stalled for more than 10256msec [ 45.763349] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 46.275324] radeon 0000:01:00.0: ring 0 stalled for more than 10768msec [ 46.275335] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 46.787322] radeon 0000:01:00.0: ring 0 stalled for more than 11280msec [ 46.787332] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 47.299336] radeon 0000:01:00.0: ring 0 stalled for more than 11792msec [ 47.299346] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 47.811320] radeon 0000:01:00.0: ring 0 stalled for more than 12304msec [ 47.811332] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 48.323331] radeon 0000:01:00.0: ring 0 stalled for more than 12816msec [ 48.323344] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 48.835307] radeon 0000:01:00.0: ring 0 stalled for more than 13328msec [ 48.835318] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 49.347328] radeon 0000:01:00.0: ring 0 stalled for more than 13840msec [ 49.347341] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 49.859316] radeon 0000:01:00.0: ring 0 stalled for more than 14352msec [ 49.859326] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 50.371471] radeon 0000:01:00.0: ring 0 stalled for more than 14864msec [ 50.371483] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 50.883318] radeon 0000:01:00.0: ring 0 stalled for more than 15376msec [ 50.883328] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 51.395315] radeon 0000:01:00.0: ring 0 stalled for more than 15888msec [ 51.395327] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 51.907325] radeon 0000:01:00.0: ring 0 stalled for more than 16400msec [ 51.907338] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 52.419319] radeon 0000:01:00.0: ring 0 stalled for more than 16912msec [ 52.419330] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 52.931321] radeon 0000:01:00.0: ring 0 stalled for more than 17424msec [ 52.931331] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 53.443321] radeon 0000:01:00.0: ring 0 stalled for more than 17936msec [ 53.443333] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 53.955335] radeon 0000:01:00.0: ring 0 stalled for more than 18448msec [ 53.955346] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 54.467324] radeon 0000:01:00.0: ring 0 stalled for more than 18960msec [ 54.467333] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 54.979306] radeon 0000:01:00.0: ring 0 stalled for more than 19472msec [ 54.979316] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 55.491309] radeon 0000:01:00.0: ring 0 stalled for more than 19984msec [ 55.491318] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 56.003337] radeon 0000:01:00.0: ring 0 stalled for more than 20496msec [ 56.003347] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 56.515327] radeon 0000:01:00.0: ring 0 stalled for more than 21008msec [ 56.515337] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 57.027325] radeon 0000:01:00.0: ring 0 stalled for more than 21520msec [ 57.027335] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 57.539315] radeon 0000:01:00.0: ring 0 stalled for more than 22032msec [ 57.539327] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 58.051318] radeon 0000:01:00.0: ring 0 stalled for more than 22544msec [ 58.051328] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 58.563304] radeon 0000:01:00.0: ring 0 stalled for more than 23056msec [ 58.563314] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 59.075306] radeon 0000:01:00.0: ring 0 stalled for more than 23568msec [ 59.075315] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 59.587308] radeon 0000:01:00.0: ring 0 stalled for more than 24080msec [ 59.587317] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 60.099321] radeon 0000:01:00.0: ring 0 stalled for more than 24592msec [ 60.099331] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 60.611309] radeon 0000:01:00.0: ring 0 stalled for more than 25104msec [ 60.611318] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 61.123314] radeon 0000:01:00.0: ring 0 stalled for more than 25616msec [ 61.123324] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 61.635321] radeon 0000:01:00.0: ring 0 stalled for more than 26128msec [ 61.635331] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 62.147328] radeon 0000:01:00.0: ring 0 stalled for more than 26640msec [ 62.147338] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 62.659314] radeon 0000:01:00.0: ring 0 stalled for more than 27152msec [ 62.659323] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 63.171313] radeon 0000:01:00.0: ring 0 stalled for more than 27664msec [ 63.171327] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 63.683340] radeon 0000:01:00.0: ring 0 stalled for more than 28176msec [ 63.683352] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 64.195326] radeon 0000:01:00.0: ring 0 stalled for more than 28688msec [ 64.195336] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 64.707316] radeon 0000:01:00.0: ring 0 stalled for more than 29200msec [ 64.707325] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 65.219312] radeon 0000:01:00.0: ring 0 stalled for more than 29712msec [ 65.219321] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 65.731325] radeon 0000:01:00.0: ring 0 stalled for more than 30224msec [ 65.731334] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 66.243296] radeon 0000:01:00.0: ring 0 stalled for more than 30736msec [ 66.243305] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 66.755306] radeon 0000:01:00.0: ring 0 stalled for more than 31248msec [ 66.755317] radeon 0000:01:00.0: GPU lockup (current fence id 0x0000000000000001 last fence id 0x0000000000000002 on ring 0) [ 66.840372] radeon 0000:01:00.0: Saved 25 dwords of commands on ring 0. [ 66.840402] radeon 0000:01:00.0: GPU softreset: 0x00000019 [ 66.840408] radeon 0000:01:00.0: R_008010_GRBM_STATUS = 0xA27034A1 [ 66.840414] radeon 0000:01:00.0: R_008014_GRBM_STATUS2 = 0x00000102 [ 66.840419] radeon 0000:01:00.0: R_000E50_SRBM_STATUS = 0x200028C0 [ 66.840424] radeon 0000:01:00.0: R_008674_CP_STALLED_STAT1 = 0x04000000 [ 66.840429] radeon 0000:01:00.0: R_008678_CP_STALLED_STAT2 = 0x00010100 [ 66.840434] radeon 0000:01:00.0: R_00867C_CP_BUSY_STAT = 0x00008C80 [ 66.840438] radeon 0000:01:00.0: R_008680_CP_STAT = 0x808182E7 [ 66.840443] radeon 0000:01:00.0: R_00D034_DMA_STATUS_REG = 0x44C83D57 [ 67.364934] radeon 0000:01:00.0: Wait for MC idle timedout ! [ 67.364940] radeon 0000:01:00.0: R_008020_GRBM_SOFT_RESET=0x00007F6B [ 67.365005] radeon 0000:01:00.0: SRBM_SOFT_RESET=0x00000100 [ 67.367106] radeon 0000:01:00.0: R_008010_GRBM_STATUS = 0x00003028 [ 67.367110] radeon 0000:01:00.0: R_008014_GRBM_STATUS2 = 0x00000002 [ 67.367114] radeon 0000:01:00.0: R_000E50_SRBM_STATUS = 0x200028C0 [ 67.367118] radeon 0000:01:00.0: R_008674_CP_STALLED_STAT1 = 0x00000000 [ 67.367122] radeon 0000:01:00.0: R_008678_CP_STALLED_STAT2 = 0x00000000 [ 67.367126] radeon 0000:01:00.0: R_00867C_CP_BUSY_STAT = 0x00000000 [ 67.367130] radeon 0000:01:00.0: R_008680_CP_STAT = 0x00000000 [ 67.367134] radeon 0000:01:00.0: R_00D034_DMA_STATUS_REG = 0x44C83D57 [ 67.367152] radeon 0000:01:00.0: GPU reset succeeded, trying to resume [ 67.842179] radeon 0000:01:00.0: Wait for MC idle timedout ! [ 68.068765] radeon 0000:01:00.0: Wait for MC idle timedout ! [ 68.082273] [drm] PCIE GART of 1024M enabled (table at 0x000000000014C000). [ 68.082448] radeon 0000:01:00.0: WB enabled [ 68.082454] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000040000c00 [ 68.082459] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000040000c0c [ 68.088977] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000000005c598 [ 68.374095] [drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD) [ 68.374176] [drm:rv770_resume [radeon]] *ERROR* r600 startup failed on resume ``` See more details in dmesg log attached.