Re: [PATCH v2 3/3] PM: hibernate: log the task that initiated the power down
"Rafael J. Wysocki (Intel)" <[email protected]> Thu, 23 Jul 2026 16:55:10 +0200
| Newsgroups | org.infradead.lists.kexec,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <CAJZ5v0g-=5fmRLrJJg=HBvnEew+LhPN4gV1OJJhDLS4tW49Dnw@mail.gmail.com> |
On Thu, Jul 23, 2026 at 4:46 PM Bradley Morgan <[email protected]> wrote: > > On July 23, 2026 2:55:41 PM GMT+01:00, "Rafael J. Wysocki (Intel)" > <[email protected]> wrote: > >On Tue, Jul 21, 2026 at 5:14 PM Bradley Morgan <[email protected]> wrote: > >> > >> Give the hibernation power down the same treatment as the reboot > >> syscall commands. > > > >Why? > > 1: Andrew suggested it [1] > 2: because going down for hibernation is the same as "Wait, who the hell took the box down?!" No, it is not the same unless the system doesn't resume. > > > >> hibernate() runs in the context of the task that > >> asked for it, whether through the reboot syscall or a write to > > > >It doesn't use the reboot syscall. > > Hmmm.... I may embarrass myself here, but it *could* (wink) > > See kernel/reboot.c: > > #ifdef CONFIG_HIBERNATION > case LINUX_REBOOT_CMD_SW_SUSPEND: > ret = hibernate(); > break; > #endif Ah, I'm wondering if anyone actually uses this, but fair enough. > >> /sys/power/disk, > > I'm wrong: /sys/power/state > > so when power_down() runs current is still the > >> initiating task. > >> > >> Log it once the image has been written and the machine is committed > >> to going down: > >> > >> reboot: initiated by systemd-sleep[812] > >> reboot: Power down > >> > >> The line comes from kernel/reboot.c so it keeps the "reboot:" prefix > >> and sits right next to the final "Restarting system", "Power down" > >> or "System halted" line, same as a plain reboot. > >> > >> The one exception is platform mode rolling back on a pending wakeup > >> event after the line has been printed. The existing "Wakeup event > >> detected during hibernation, rolling back." line follows immediately > >> in that case, so the log stays real about what happened. > > > >(a) Why is this information in the log useful? > > when the box just randomly goes down, some people prefer to know > "And what process did this? Or what did this?", say > > "Was it systemd-sleep? Or some random power daemon?? Or some stray > reboot(SW_SUSPEND)??" > > Userspace logging can't really do this... But it doesn't really go down in the case of hibernation. It's more like suspend in that respect. > There is software out there which can do this, but it's not the greatest. > [2] > > Hence, this series! > > >(b) Do you realize that it only appears in the log when hibernation > >fails or it may appear on a serial console or similar? > > yeah. The image is written when the line prints, so after a successful > hibernate and resume dmesg won't have it. > > Thats exactly the > same visibility as the final "Power down" / "Restarting system" line it > sits next to > > Well, if you want it, please say. > > > [1]: > https://lore.kernel.org/all/[email protected]/ > > [2]: https://docs.memfault.com/docs/linux/reboot-reason-tracking > > > (oh and btw, if you don't buy in, it's ok, just say.. any questions, ask) > :) Yeah, I'm not convinced.