You are not logged in.

#1 2021-04-21 15:56:21

aoaaceai
Member
Registered: 2021-04-21
Posts: 8

Road to suspending a 4700U laptop

At first the suspending issue happens on Ubuntu, so I switched to another distro with less things to debug with. However, it still occurs every time I try to suspend.
This laptop CAN suspend on the first try, takes a long time to resume (~5 seconds), and if I try to suspend it the second time, it freezes. The backlight isn't on, keyboard not responding, power button doesn't work either. After a couple minutes the fan starts screaming and the battery drops pretty fast. The only thing I could do is to long press the power button.
The following is the journalctl --reverse message after the first suspend:

Apr 21 14:05:36 aoaaptop kernel: [drm:process_one_work] *ERROR* ib ring test failed (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.3.1 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.2.1 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.1.1 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.0.1 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.3.0 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.2.0 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.1.0 (-110).
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: [drm:amdgpu_ib_ring_tests [amdgpu]] *ERROR* IB test failed on comp_1.0.0 (-110).
Apr 21 14:05:36 aoaaptop kernel: [drm] Fence fallback timer expired on ring sdma0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 6 on hub 1
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_enc1 uses VM inv eng 5 on hub 1
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_enc0 uses VM inv eng 4 on hub 1
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_dec uses VM inv eng 1 on hub 1
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 0 on hub 1
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring kiq_2.1.0 uses VM inv eng 11 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
Apr 21 14:05:36 aoaaptop kernel: amdgpu 0000:03:00.0: amdgpu: ring gfx uses VM inv eng 0 on hub 0

Nothing interesting happens at the second attempt. It just shows "Suspend entry (s2idle)" and freezes.

After testing on both distros, with and without xorg, I'm pretty sure it's related to the kernel. I haven't tried downgrading to lts kernel, nor installing any patches.
Instead, I tried blacklisting amdgpu, and the suspending works, without the long pause before resuming. At this point it has to be a problem with amdgpu.
So I wrote a startup script that forces one amdgpu reset.
source: https://unix.stackexchange.com/question … nel-module
The path for restarting may vary, mine is /sys/kernel/debug/dri/0/amdgpu_gpu_recover

So yeah, after 51 unsafe shutdowns (probably more than that number), a couple sleepless nights, here's a 4700U laptop that's able to suspend
zvF0fGk.png

Here's more hardware info if needed:

                   -`                    aoaaceai@aoaaptop 
                  .o+`                   ----------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: HP Laptop 15s-eq1xxx 
               `+oooooo:                 Kernel: 5.11.15-arch1-2 
               -+oooooo+:                Uptime: 19 mins 
             `/:-:++oooo+:               Packages: 672 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.8 
           `/++++++++++++++:             Resolution: 1920x1080 
          `/+++ooooooooooooo/`           DE: Xfce 4.16 
         ./ooosssso++osssssso+`          WM: Xfwm4 
        .oossssso-````/ossssss+`         WM Theme: Nordic-darker 
       -osssssso.      :ssssssso.        Theme: Adwaita-dark [GTK2/3] 
      :osssssss/        osssso+++.       Icons: Arc [GTK2/3] 
     /ossssssss/        +ssssooo/-       Terminal: xfce4-terminal 
   `/ossssso+/:-        -:/+osssso+-     Terminal Font: Fira Code weight 
  `+sso+:-`                 `.-/+oso:    CPU: AMD Ryzen 7 4700U with Radeon Graphics (8) @ 2.000GHz 
 `++:.                           `-/+/   GPU: AMD ATI 03:00.0 Renoir 
 .`                                 `/   Memory: 1448MiB / 15426MiB 

Also, I don't know how to customize the appearance, so any suggestion is much appreciated.

Note: I know it's definitely not the correct solution to this issue, it does work but can raise other problems. Further investigation is recommended but I need some sleep.

Last edited by aoaaceai (2021-04-21 16:04:01)

Offline

#2 2021-04-30 20:47:49

alexryndin
Member
Registered: 2021-04-30
Posts: 1

Re: Road to suspending a 4700U laptop

Hi there! I have the same issue on my lenovo 14are05 with 4800u. I've patched acpi (DSDT) table as suggested in wiki (https://wiki.archlinux.org/index.php/Le … _5_14are05) and that worked for a while (I think from linux 5.8 to linix 5.10) -- suspend worked flawlessly(!). Yet it started to freeze starting with linux 5.11. I didn't found any reason why this happend.

Last edited by alexryndin (2021-04-30 20:48:06)

Offline

Board footer

Powered by FluxBB