Re: Pressing the power button causes the device to freeze completely

From: Rafael J. Wysocki

Date: Wed Apr 22 2026 - 09:35:36 EST


Hi,

On Wed, Apr 22, 2026 at 2:36 PM Evgeny Sagatov <evgeny.sagatov@xxxxxxxxx> wrote:
>
> Hello Rafael,
>
> I applied the patch that you sent.
> The PC isn't responding to the power button press. It doesn't freeze.

As expected, thanks! I'll send you another patch to test (instead of
the one you have tested) in the next message.

> I just want to clarify, did you receive messages where we found the
> first broken commit using git bisect?
>
> > 8c94ccc7cd691472461448f98e2372c75849406c good
> > e37617c8e53a1f7fcba6d5e1041f4fd8a2425c27 good
> > b0d326da462e20285236e11e4cbc32085de9f363 bad

Yes, I did, but I think that reverting the schedutil change hides the problem.

BTW, since reverting the schedutil change makes a difference for you,
I'm wondering about the cpufreq configuration on your system. Can you
please send me the

$ grep -r . /sys/devices/system/cpu/cpufreq/

output from your system?


> > On Tuesday, April 21, 2026 5:11:36 PM CEST Wysocki, Rafael J wrote:
> >
> > Hi,
> >
> > On 4/13/2026 6:46 PM, Evgeny Sagatov wrote:
> > > Hello,
> > > I have a PC with a motherboard GA-EP45T-UD3LR (Rev. 1.0)
> > > <https://www.gigabyte.com/Motherboard/GA-EP45T-UD3LR-rev-10> and
> > > processor Intel Core 2 Quad Q9550.
> > > Previously, I had Debian 12 with kernel 6.1 installed, and pressing
> > > the power button would shut down the PC as usual.
> > > I updated to Debian 13 with kernel 6.12.74, and now pressing the power
> > > button causes the PC to freeze completely.
> > > I see that systemd doesn't even begin to shut down. It freezes
> > > immediately after pressing the button. There's no error message in
> > > console. There's no error message in the logs either. Netconsole
> > > doesn't report any errors, and the kernel doesn't panic. It just
> > > freezes completely.
> >
> > It looks like the ACPI button notify handler crashes on your system for
> > some obscure reason.
> >
> > It should be possible to get to the bottom of it, but it will require
> > some investigation if you have the motivation and time to run debug patches.
> >
> >
> > > I checked that Live CD with Debian 12 continue to shut down normally,
> > > but Live CD with Debian 13 freeze.
> > > I tried updating and resetting the BIOS. I tried various kernel
> > > parameters related to ACPI settings. I also tried kernels 6.18 and
> > > 6.19. Nothing fixed the problem.
> > > If I unload the "button" module, the system doesn't freeze, but it
> > > also doesn't shut down.
> >
> > This is a useful data point, thanks!
> >
> >
> > > I built "button" module by rolling back its version to commit 1a20d40
> > > <https://github.com/torvalds/linux/commit/1a20d409c874255086e2f42a729826d490294c91>,
> > > which corresponds to kernel version 6.1. This module does not freeze,
> > > but does not turn off the PC either.
> > > I've found that the freezes have been occurring since commit 0d51157
> > > <https://github.com/torvalds/linux/commit/0d51157dfaac05ea66616d8a250dce04bef49a4f>.
> >
> > The main difference made by it is the fixed events handling and if there
> > is a problem with that, a few debug patches should suffice to find out
> > what's going on. I'll send you one to try shortly.
> >
> >
> > First off, on top of 7.0.0 (since the issue is present in this one, I think
> > it's better to focus the debugging on it), let's first check what happens if
> > the ACPI fixed event handler is not installed for the power button at all.
> >
> > This should be similar to using a 6.1 version of the button driver (that is,
> > no crash, but pressing the power button will have no effect).
> >
> > Please test the patch below and let me know what happens.
> >
> > ---
> > drivers/acpi/button.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > --- a/drivers/acpi/button.c
> > +++ b/drivers/acpi/button.c
> > @@ -628,9 +628,7 @@ static int acpi_button_probe(struct plat
> >
> > switch (device->device_type) {
> > case ACPI_BUS_TYPE_POWER_BUTTON:
> > - status = acpi_install_fixed_event_handler(ACPI_EVENT_POWER_BUTTON,
> > - acpi_button_event,
> > - button);
> > + status = AE_OK;
> > break;
> > case ACPI_BUS_TYPE_SLEEP_BUTTON:
> > status = acpi_install_fixed_event_handler(ACPI_EVENT_SLEEP_BUTTON,
> >
> >
> >
> >
> >
> > -------- Конец пересылаемого сообщения --------