Hi Brad, hi Bill,
On Sun, May 03, 2026 at 07:10:36AM -0400, Brad Barnett wrote:
>
>
>
> Package: src:linux
> Version: 6.1.170-1
> Severity: important
>
>
> After a bookworm upgrade today to:
> Linux hostname 6.1.0-45-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.170-1 (2026-04
> -30) x86_64 GNU/Linux
>
> Suspend to disk breaks. I have:
>
> - tested 'echo disk >/sys/power/state' directly, to bypass all other
> scripts/code
>
> - turned on printk @ 8, as per kernel.org suggestions, with no additional
> output on console
>
> Upon attempting to suspend to disk, the system goes into a semi-locked up
> state. It's clearly on, but eating CPU, and unwakeable.
>
> Note that this laptop has been rock-solid with sleep to disk for 2+
> years, through bullseye, into bookworm, and all related kernel changes.
>
> .170/45 breaks it, .164/44 and prior are flawless.
>
>
> I've looked at console output, and both seem mostly identical, with no
> discernible pattern differences, until the console is suspended, eg:
>
> # echo disk >/sys/power/state
> [ 144.328638] PM: hibernation: hibernation entry
> [ 144.329110] (NULL device *): firmware: direct-loading firmware
> i915/adlp_dmc_ver2_16.bin
> [ 144.329275] (NULL device *): firmware: direct-loading firmware
> i915/adlp_guc_70.bin
> [ 144.329356] (NULL device *): firmware: direct-loading firmware
> iwlwifi-so-a0-gf-a0.pnvm
> [ 144.329372] (NULL device *): firmware: direct-loading firmware
> regulatory.db
> [ 144.329404] (NULL device *): firmware: direct-loading firmware
> regulatory.db.p7s
> [ 144.329421] (NULL device *): firmware: direct-loading firmware
> intel/ibt-0040-0041.ddc
> [ 144.329447] (NULL device *): firmware: direct-loading firmware
> intel/sof-tplg/sof-hda-generic-2ch.tplg
> [ 144.329493] (NULL device *): firmware: direct-loading firmware
> i915/tgl_huc.bin
> [ 144.329936] (NULL device *): firmware: direct-loading firmware
> intel/ibt-0040-0041.sfi
> [ 144.330138] (NULL device *): firmware: direct-loading firmware
> iwlwifi-so-a0-gf-a0-72.ucode
> [ 144.345769] Filesystems sync: 0.015 seconds
> [ 144.347015] Freezing user space processes
> [ 144.348632] Freezing user space processes completed (elapsed 0.001 seconds)
> [ 144.348673] OOM killer disabled.
> [ 144.358776] PM: hibernation: Preallocating image memory
> [ 145.280687] PM: hibernation: Allocated 1770628 pages for snapshot
> [ 145.280698] PM: hibernation: Allocated 7082512 kbytes in 0.92 seconds
> (7698.38 MB/s)
> [ 145.280708] Freezing remaining freezable tasks
> [ 145.282043] Freezing remaining freezable tasks completed (elapsed 0.001
> seconds)
> [ 145.282211] printk: Suspending console(s) (use no_console_suspend to debug)
>
>
> With the new kernel, the laptop display goes blank after
>
> [ 145.282211] printk: Suspending console(s) (use no_console_suspend to debug)
>
> but the the rest of the suspend process does not proceed. It goes into a
> not-awake, not-suspending to disk state.
>
> I wish I could provide more info, but so far I cannot see anything overt,
> except the failure to proceed with suspend to disk and locking up instead.
>
> I notice there were a lot of ACPI changes to this kernel, and they look
> quite... "overhaulish" for a stable branch.
I'm replying to both of you and both bugs in one go as I suspect they
have the same root cause. Any chance you could bisect the changes
between 6.1.164 and 6.1.170 to identify what broke suspend?
If you need instructions, here is how you can proceed (and which will
involve compiling and testing a couple of kernels):
git clone --single-branch -b linux-6.1.y
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout v6.1.164
cp /boot/config-$(uname -r) .config
yes '' | make localmodconfig
make savedefconfig
mv defconfig arch/x86/configs/my_defconfig
# test 6.1.164 to ensure this is "good"
make my_defconfig
make -j $(nproc) bindeb-pkg
... install the resulting .deb package and confirm suspend works.
# test 6.1.170 to ensure this is "bad"
git checkout v6.1.170
make my_defconfig
make -j $(nproc) bindeb-pkg
... install the resulting .deb package and confirm suspend does
not work.
With that confirmed, the bisection can start:
git bisect start
git bisect good v6.1.164
git bisect bad v6.1.170
In each bisection step git checks out a state between the oldest
known-bad and the newest known-good commit. In each step test using:
make my_defconfig
make -j $(nproc) bindeb-pkg
... install, verify is problem persists.
and if the problem is hit run:
git bisect bad
and if the problem doesn't trigger run:
git bisect good
. Please pay attention to always select the just built kernel for
booting, it won't always be the default kernel picked up by grub.
Iterate until git announces to have identified the first bad commit.
Then provide the output of
git bisect log
In the course of the bisection you might have to uninstall previous
kernels again to not exhaust the disk space in /boot. Also in the end
uninstall all self-built kernels again.
I will keep the two bugs though distinct for now as we are not really
sure if they are duplicates.
Regards,
Salvatore