Immortals Fenyx Rising causes failure to go into sleep mode with an AMDGPU error
Brief summary of the problem:
I'm unable to enter sleep mode on a Steam Deck LCD if I'm running Immortals Fenyx Rising. If that game is running while being on Desktop Mode if I try to put the device asleep the kernel will freeze up while transitioning into sleep and an AMDGPU error is printed to the console. I've tried three times, each time the same result. The device hard lock up with the last rendered frame on screen and fan going as the previous speed, but if I leave the deviec there for a couple of minutes, the air coming out from the fan grille is cold. This makes me think that part of the APU has gone to sleep but the kernel hasn't transitioned fully into S3.
Hardware description:
- CPU: < TODO >
- GPU: < TODO:
lspci -nn | grep VGA
orlshw -C display -numeric
> - System Memory:
- Display(s):
- Type of Display Connection: <TODO: DP, HDMI, DVI, etc>
System information:
- Distro name and Version: Bazzite Deck Edition: testing version
- Kernel version: Linux DeckDiMarco 6.7.4-201.fsync.fc39.x86_64 #1 (closed) SMP PREEMPT_DYNAMIC Fri Feb 9 00:07:44 UTC 2024 x86_64 GNU/Linux
- Custom kernel: It's almost mainline with a couple of patches for compatibility issues, the sources for the added modifications are here: https://pagure.io/kernel-fsync/blob/6.7/f/SOURCES
- AMD official driver version: N/A
How to reproduce the issue:
- Install Bazzite and switch to bazzite-deck:testing branch.
- Switch to desktop mode
- Launch Immortals Fenyx Rising from Steam.
- Wait to boot it up.
- Play for a while.
- Try to sleep it using the sleep button.
Expected result: The device goes into S3 correctly
Actual result: the device locks up as specified above with an error on AMDGPU as attached in the log section.
Log files (for system lockups / game freezes / crashes)
feb 13 12:23:21 DeckDiMarco kernel: PM: suspend entry (deep)
feb 13 12:23:21 DeckDiMarco kernel: Filesystems sync: 0.085 seconds
feb 13 12:23:22 DeckDiMarco kernel: Freezing user space processes
feb 13 12:23:22 DeckDiMarco kernel: Freezing user space processes completed (elapsed 0.010 seconds)
feb 13 12:23:22 DeckDiMarco kernel: OOM killer disabled.
feb 13 12:23:22 DeckDiMarco kernel: Freezing remaining freezable tasks
feb 13 12:23:22 DeckDiMarco kernel: Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
feb 13 12:23:22 DeckDiMarco kernel: printk: Suspending console(s) (use no_console_suspend to debug)
feb 13 12:23:22 DeckDiMarco kernel: systemd-sleep: page allocation failure: order:0, mode:0x100c02(GFP_NOIO|__GFP_HIGHMEM|__GFP_HARDWALL), nodemask=(null),cpuset=/,mems_allowed=0
feb 13 12:23:22 DeckDiMarco kernel: CPU: 2 PID: 939615 Comm: systemd-sleep Tainted: G B OE 6.7.4-201.fsync.fc39.x86_64 #1
feb 13 12:23:22 DeckDiMarco kernel: Hardware name: Valve Jupiter/Jupiter, BIOS F7A0121 12/14/2023
feb 13 12:23:22 DeckDiMarco kernel: Call Trace:
feb 13 12:23:22 DeckDiMarco kernel: <TASK>
feb 13 12:23:22 DeckDiMarco kernel: dump_stack_lvl+0x47/0x60
feb 13 12:23:22 DeckDiMarco kernel: warn_alloc+0x165/0x1e0
feb 13 12:23:22 DeckDiMarco kernel: __alloc_pages_slowpath.constprop.0+0xd4f/0xdb0
feb 13 12:23:22 DeckDiMarco kernel: __alloc_pages+0x32d/0x350
feb 13 12:23:22 DeckDiMarco kernel: ttm_pool_alloc+0x19f/0x600 [ttm]
feb 13 12:23:22 DeckDiMarco kernel: amdgpu_ttm_tt_populate+0x7c/0xb0 [amdgpu]
feb 13 12:23:22 DeckDiMarco kernel: ttm_tt_populate+0xa1/0x130 [ttm]
feb 13 12:23:22 DeckDiMarco kernel: ttm_bo_handle_move_mem+0x162/0x170 [ttm]
feb 13 12:23:22 DeckDiMarco kernel: ttm_mem_evict_first+0x201/0x530 [ttm]
feb 13 12:23:22 DeckDiMarco kernel: ? srso_return_thunk+0x5/0x5f
feb 13 12:23:22 DeckDiMarco kernel: ? srso_return_thunk+0x5/0x5f
feb 13 12:23:22 DeckDiMarco kernel: ttm_resource_manager_evict_all+0xa7/0x1d0 [ttm]
feb 13 12:23:22 DeckDiMarco kernel: ? __pfx_pci_pm_prepare+0x10/0x10
feb 13 12:23:22 DeckDiMarco kernel: amdgpu_device_prepare+0x4e/0xd0 [amdgpu]
feb 13 12:23:22 DeckDiMarco kernel: pci_pm_prepare+0x34/0x70
feb 13 12:23:22 DeckDiMarco kernel: dpm_prepare+0x269/0x440
feb 13 12:23:22 DeckDiMarco kernel: dpm_suspend_start+0x1e/0x90
feb 13 12:23:22 DeckDiMarco kernel: suspend_devices_and_enter+0x16a/0x970
feb 13 12:23:22 DeckDiMarco kernel: pm_suspend+0x25e/0x590
feb 13 12:23:22 DeckDiMarco kernel: state_store+0x6c/0xd0
feb 13 12:23:22 DeckDiMarco kernel: kernfs_fop_write_iter+0x136/0x1d0
feb 13 12:23:22 DeckDiMarco kernel: vfs_write+0x23d/0x400
feb 13 12:23:22 DeckDiMarco kernel: ksys_write+0x6f/0xf0
feb 13 12:23:22 DeckDiMarco kernel: do_syscall_64+0x64/0xe0
feb 13 12:23:22 DeckDiMarco kernel: ? srso_return_thunk+0x5/0x5f
feb 13 12:23:22 DeckDiMarco kernel: ? syscall_exit_to_user_mode+0x2b/0x40
feb 13 12:23:22 DeckDiMarco kernel: ? srso_return_thunk+0x5/0x5f
feb 13 12:23:22 DeckDiMarco kernel: ? do_syscall_64+0x70/0xe0
feb 13 12:23:22 DeckDiMarco kernel: ? do_syscall_64+0x70/0xe0
feb 13 12:23:22 DeckDiMarco kernel: ? srso_return_thunk+0x5/0x5f
feb 13 12:23:22 DeckDiMarco kernel: ? exc_page_fault+0x7f/0x180
feb 13 12:23:22 DeckDiMarco kernel: entry_SYSCALL_64_after_hwframe+0x6e/0x76
feb 13 12:23:22 DeckDiMarco kernel: RIP: 0033:0x7feef6726c94
feb 13 12:23:22 DeckDiMarco kernel: Code: c7 00 16 00 00 00 b8 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 80 3d d5 76 0d 00 00 74 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 55 48 89 e5 48 83 ec 20 48 89
feb 13 12:23:22 DeckDiMarco kernel: RSP: 002b:00007fff8638d4a8 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
feb 13 12:23:22 DeckDiMarco kernel: RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007feef6726c94
feb 13 12:23:22 DeckDiMarco kernel: RDX: 0000000000000004 RSI: 00007fff8638d5a0 RDI: 0000000000000004
feb 13 12:23:22 DeckDiMarco kernel: RBP: 00007fff8638d4d0 R08: 000056024d7b5010 R09: 0000000000000007
feb 13 12:23:22 DeckDiMarco kernel: R10: 000056024d7b6e20 R11: 0000000000000202 R12: 0000000000000004
feb 13 12:23:22 DeckDiMarco kernel: R13: 00007fff8638d5a0 R14: 000056024d7b52c0 R15: 00007feef67f4f20
feb 13 12:23:22 DeckDiMarco kernel: </TASK>
feb 13 12:23:22 DeckDiMarco kernel: Mem-Info:
feb 13 12:23:22 DeckDiMarco kernel: active_anon:515437 inactive_anon:1138223 isolated_anon:0
active_file:94607 inactive_file:81292 isolated_file:0
unevictable:72 dirty:0 writeback:2
slab_reclaimable:55881 slab_unreclaimable:71538
mapped:129488 shmem:149334 pagetables:20705
sec_pagetables:0 bounce:0
kernel_misc_reclaimable:0
free:32935 free_pcp:2085 free_cma:0
feb 13 12:23:22 DeckDiMarco kernel: Node 0 active_anon:2061748kB inactive_anon:4552892kB active_file:378428kB inactive_file:325168kB unevictable:288kB isolated(anon):0kB isolated(file):0kB mapped:517952kB dirty:0kB writeback:8kB shmem:597336kB shmem_thp:0kB shmem_pmdmapped:0kB anon_thp:6144kB writeback_tmp:0kB kernel_stack:27024kB pagetables:82820kB sec_pagetables:0kB all_unreclaimable? no
feb 13 12:23:22 DeckDiMarco kernel: Node 0 DMA free:13048kB boost:0kB min:68kB low:260kB high:452kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15992kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
feb 13 12:23:22 DeckDiMarco kernel: lowmem_reserve[]: 0 1699 14673 14673 14673
feb 13 12:23:22 DeckDiMarco kernel: Node 0 DMA32 free:59768kB boost:0kB min:8316kB low:31656kB high:54996kB reserved_highatomic:0KB active_anon:235824kB inactive_anon:328280kB active_file:5264kB inactive_file:1384kB unevictable:0kB writepending:0kB present:1935788kB managed:1867480kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
feb 13 12:23:22 DeckDiMarco kernel: lowmem_reserve[]: 0 0 12974 12974 12974
feb 13 12:23:22 DeckDiMarco kernel: Node 0 Normal free:58924kB boost:0kB min:59196kB low:225364kB high:391532kB reserved_highatomic:0KB active_anon:1825924kB inactive_anon:4224612kB active_file:373228kB inactive_file:323816kB unevictable:288kB writepending:0kB present:13618688kB managed:13293696kB mlocked:288kB bounce:0kB free_pcp:8340kB local_pcp:8340kB free_cma:0kB
feb 13 12:23:22 DeckDiMarco kernel: lowmem_reserve[]: 0 0 0 0 0
feb 13 12:23:22 DeckDiMarco kernel: Node 0 DMA: 12*4kB (U) 3*8kB (U) 5*16kB (U) 1*32kB (U) 1*64kB (U) 0*128kB 0*256kB 1*512kB (U) 0*1024kB 2*2048kB (UM) 2*4096kB (M) = 13048kB
feb 13 12:23:22 DeckDiMarco kernel: Node 0 DMA32: 1862*4kB (UM) 2198*8kB (UME) 1661*16kB (UME) 251*32kB (UME) 2*64kB (UM) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 59768kB
feb 13 12:23:22 DeckDiMarco kernel: Node 0 Normal: 14219*4kB (UME) 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 1*2048kB (U) 0*4096kB = 58924kB
feb 13 12:23:22 DeckDiMarco kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
feb 13 12:23:22 DeckDiMarco kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
feb 13 12:23:22 DeckDiMarco kernel: 327009 total pagecache pages
feb 13 12:23:22 DeckDiMarco kernel: 1747 pages in swap cache
feb 13 12:23:22 DeckDiMarco kernel: Free swap = 524kB
feb 13 12:23:22 DeckDiMarco kernel: Total swap = 4194300kB
feb 13 12:23:22 DeckDiMarco kernel: 3892617 pages RAM
feb 13 12:23:22 DeckDiMarco kernel: 0 pages HighMem/MovableOnly
feb 13 12:23:22 DeckDiMarco kernel: 98483 pages reserved
feb 13 12:23:22 DeckDiMarco kernel: 0 pages cma reserved
feb 13 12:23:22 DeckDiMarco kernel: 0 pages hwpoisoned
feb 13 12:23:22 DeckDiMarco kernel: [TTM] Buffer eviction failed
feb 13 12:23:22 DeckDiMarco kernel: [drm] evicting device resources failed
feb 13 12:23:22 DeckDiMarco kernel: amdgpu 0000:04:00.0: PM: device_prepare(): pci_pm_prepare+0x0/0x70 returns -12
feb 13 12:23:22 DeckDiMarco kernel: amdgpu 0000:04:00.0: PM: not prepared for power transition: code -12
feb 13 12:23:22 DeckDiMarco kernel: PM: Some devices failed to suspend, or early wake event detected
feb 13 12:23:22 DeckDiMarco kernel: PM: resume devices took 0.000 seconds
feb 13 12:23:22 DeckDiMarco kernel: OOM killer enabled.
feb 13 12:23:22 DeckDiMarco kernel: Restarting tasks ... done.
feb 13 12:23:22 DeckDiMarco kernel: random: crng reseeded on system resumption
feb 13 12:23:22 DeckDiMarco kernel: PM: suspend exit
feb 13 12:23:22 DeckDiMarco kernel: PM: suspend entry (s2idle)