regressions.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [REGRESSION]: drivers/firmware: move x86 Generic System Framebuffers support
@ 2021-11-10 20:02 Ilya Trukhanov
  2021-11-10 22:24 ` Ard Biesheuvel
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Ilya Trukhanov @ 2021-11-10 20:02 UTC (permalink / raw)
  To: stable
  Cc: regressions, linux-efi, linux-pm, javierm, tzimmermann, ardb,
	rafael, len.brown, pavel

Suspend-to-RAM with elogind under Wayland stopped working in 5.15.

This occurs with 5.15, 5.15.1 and latest master at
89d714ab6043bca7356b5c823f5335f5dce1f930. 5.14 and earlier releases work
fine.

git bisect gives d391c58271072d0b0fad93c82018d495b2633448.

To reproduce:
- Use elogind and Linux 5.15.1 with CONFIG_SYSFB_SIMPLEFB=n.
- Start a Wayland session. I tested sway and weston, neither worked.
- In a terminal emulator (I used alacritty) execute `loginctl suspend`.

Normally after the last step the system would suspend, but it no longer
does so after I upgraded to Linux 5.15. After running `loginctl suspend`
in dmesg I get the following:
[  103.098782] elogind-daemon[2357]: Suspending system...
[  103.098794] PM: suspend entry (deep)
[  103.124621] Filesystems sync: 0.025 seconds

But nothing happens afterwards.

Suspend works as expected if I do any of the following:
- Revert d391c58271072d0b0fad93c82018d495b2633448.
- Build with CONFIG_SYSFB_SIMPLEFB=y.
- Suspend from tty, even if a Wayland session is running in parallel.
- Suspend from under an X11 session.
- Suspend with `echo mem > /sys/power/state`.

If I attach strace to the elogind-daemon process after running
`loginctl suspend` then the system immediately suspends. However, if
I attach strace *prior* to running `loginctl suspend` then no suspend,
and the process gets stuck on a write syscall to `/sys/power/state`.

I "traced" a little bit with printk (sorry, I don't know of a better
way) and the call chain is as follows:
state_store -> pm_suspend -> enter_state -> suspend_prepare
-> pm_prepare_console -> vt_move_to_console -> vt_waitactive
-> __vt_event_wait

__vt_event_wait just waits until wait_event_interruptible completes, but
it never does (not until I attach to elogind-daemon with strace, at
least). I did not follow the chain further.

- Linux version 5.15.1 (lahvuun@lahvuun) (gcc (Gentoo 11.2.0 p1) 11.2.0,
  GNU ld (Gentoo 2.37_p1 p0) 2.37) #51 SMP PREEMPT Tue Nov 9 23:39:25
  EET 2021
- Gentoo Linux 2.8
- x86_64 AuthenticAMD
- dmesg: https://pastebin.com/duj33bY8
- .config: https://pastebin.com/7Hew1g0T

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2021-11-11 11:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-10 20:02 [REGRESSION]: drivers/firmware: move x86 Generic System Framebuffers support Ilya Trukhanov
2021-11-10 22:24 ` Ard Biesheuvel
2021-11-10 23:21   ` Ilya Trukhanov
2021-11-10 23:25     ` Ard Biesheuvel
2021-11-11  0:08       ` Ilya Trukhanov
2021-11-10 23:07 ` Javier Martinez Canillas
2021-11-11  0:45   ` Ilya Trukhanov
2021-11-11  7:31     ` Javier Martinez Canillas
2021-11-11  9:24       ` Javier Martinez Canillas
2021-11-11 10:52         ` Ilya Trukhanov
2021-11-11 11:13           ` Javier Martinez Canillas
2021-11-11  6:11 ` Thorsten Leemhuis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).