Re: git: e779891327b1 - main - sys/power: Sleep type reporting by PM backends

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Wed, 17 Sep 2025 08:30:48 UTC
Hello Mark,

I see that crash too on upgrade from yesterday 2025-09-16 on reboot.
I used bectl to put me back to latest working main, 2025-09-06.

Thanks,

Mark Millard <marklmi@yahoo.com> escreveu (quarta, 17/09/2025 à(s) 06:32):

> Cy Schubert <Cy.Schubert_at_cschubert.com> wrote on
> Date: Tue, 16 Sep 2025 05:02:39 UTC :
>
> > In message <202509142159.58ELx5Rg054606@gitrepo.freebsd.org>, Aymeric
> Wibo writ
> > es:
> > > The branch main has been updated by obiwac:
> > >
> > > URL:
> https://cgit.FreeBSD.org/src/commit/?id=e779891327b1d9b9ab10ba482e59f498
> > > 790505a7
> > >
> > > commit e779891327b1d9b9ab10ba482e59f498790505a7
> > > Author: Aymeric Wibo <obiwac@FreeBSD.org>
> > > AuthorDate: 2025-09-14 21:58:13 +0000
> > > Commit: Aymeric Wibo <obiwac@FreeBSD.org>
> > > CommitDate: 2025-09-14 21:58:15 +0000
> > >
> > > sys/power: Sleep type reporting by PM backends
> > >
> > > Allow PM backends to report supported sleep types when registering
> > > through `power_pm_register`. Expose this information through
> > > `kern.power.supported_stype` sysctl, and set defaults for
> > > `power_standby/suspend/hibernate_stype` based on this.
> > >
> > > Implement this in ACPI PM backend.
> > >
> > > Reviewed by: mckusick (mentor), markj
> > > Approved by: mckusick (mentor), markj
> > > Sponsored by: The FreeBSD Foundation
> > > Differential Revision: https://reviews.freebsd.org/D52044
> > > ---
> > . . .
> > >
> > >
> >
> > One of this series of ACPI commits has broken power management on my
> machines.
> > One of which managed to capture a dump from a kernel panic after
> poweroff(8)
> > was issued.
>
> This is mostly a "me too" with poorer quality
> data collection. The context here is an AMD
> 7950X3D based desktop system, using the builtin
> video for the console, no video card present.
> The crash was too late for the USB keyboard to
> work, I had to plug in a PS2 keyboard. But it
> was also, apparently, too late for a dump to
> then work.
>
> It was from a "shutdown -r now" just after a
> pkgbase'd upgrade of the world. (Previous reboot
> was for updating the kernel, so the below does
> identify the kernel that was in operation.)
> The pkgbase materials (old and new) were from
> official distributions.
>
> # uname -apKU
> FreeBSD 7950X3D-ZFS 16.0-CURRENT FreeBSD 16.0-CURRENT
> main-n280397-5da388d93917 GENERIC-NODEBUG amd64 amd64 1600000 1600000
>
> Expect "typos" and such from the conversion to
> text from the cell phone image:
>
> QUOTE
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address= 0x88
> fault code= supervisor read data, page not present
> instruction pointer=0x20:0xffffffff80bb7464
> stack pointer=0x28:0xfffffe027d40dab0
> frame pointer=0x28:0xfffffe027d40dab0
> code segment=base Ox0, limit Oxfffff, type Ox1b
>             = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags= interrupt enabled, resume, IOPL = 0
> current process= 1 (init)
> rdi: 0000000000000000 rsi: ffffffff804be800 rdx: fffffe827d40dbb0
> rcx: 0000000000000000  r8: 0000000000000075  r9: 0000000000000000
> rax: 0000000000000005 rbx: fffff8010b33d440 rbp: fffffe027d40dab0
> r10: cacacacacacacaca r11: 000000005f42535f r12: fffff8010b33d440
> r13: 0000000000000000 r14: 0866966600000005 r15: 0000000066860009
> trap number= 12
> panic: page fault
> cpuid = 0
> time = 1758083117
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
> 0xfffffe027d40d800
> vpanic() at vpanic+0x136/frame 0xfffffe027d40d930
> panic() at panic+0x43/frame 0xfffffe027d40d990
> trap_pfault() at trap_pfault+0x3c9/frame 0xfffffe027d40d9e0
> calltrap() at calltrap+0x8/frame 0xfffffe027d40d9e0
> -- trap 0xc, rip = 0xffffffff80bb7464, rsp = 0xfffffe027d40dab0, rbp =
> 0xfffffe027d40dab0 —--
> device_get_softc() at device_get_softc+0x4/frame 0xfffffe027d40dab0
> acpi_wake_prep() at acpi_wake_prep+0x65/frame 0xfffffe027d4adbf0
> AcpiNsWalkNamespace() at AcpiNsWalkNamespace+0x10b/frame 0xfffffe027d40dc50
> AcpiWalkNamespace() at AcpiWalkNamespace+Đx95/frame 0xfffffe027d40dcb0
> acpi_shutdoun() at acpi_shutdoun+0x64/frame 0xfffffe027d40dce0
> bus_generic_shutdoun() at bus_generic_shutdown+0x16/frame
> 0xfffffe027d40dd00
> bus_generic_shutdoun() at bus_generic_shutdown+0x16/frame
> 0xfffffe027d40dd20
> root_bus_module_handler() at root_bus_module_handler+0x126/frame
> ©xfffffe027d40dd40
> module_shutdown() at module_shutdown+0x6c/frame 0xfffffe027d40dd60
> kern_reboot() at kern_reboot+0x6b7/frame 0xfffffe027d40ddb0
> sys_rebooto at sys_reboot+0x413/frame 0xfffffe027d40de00
> amd64_syscall() at amd64_syscal1+0x126/frame @xfffffe027d40df30
> fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe027d40df30
> -- syscall (55, FreeBSD ELF64, reboot), rip = 0x2941ba, rsp = 0x8210f0aca,
> rbp = 0x8210f0bb0 -=-
> END QUOTE
>
> (kgdb) disass device_get_softc
> Dump of assembler code for function device_get_softc:
>    0xffffffff80bb7460 <+0>:     push   %rbp
>    0xffffffff80bb7461 <+1>:     mov    %rsp,%rbp
>    0xffffffff80bb7464 <+4>:     mov    0x88(%rdi),%rax
>    0xffffffff80bb746b <+11>:    pop    %rbp
>    0xffffffff80bb746c <+12>:    ret
> End of assembler dump.
>
> Given "fault virtual address= 0x88": %rdi==0, matching
> the register value listing.
>
> Dump of assembler code for function acpi_wake_prep:
>    0xffffffff804c45e0 <+0>:     push   %rbp
>    0xffffffff804c45e1 <+1>:     mov    %rsp,%rbp
>    0xffffffff804c45e4 <+4>:     push   %r15
>    0xffffffff804c45e6 <+6>:     push   %r14
>    0xffffffff804c45e8 <+8>:     push   %r13
>    0xffffffff804c45ea <+10>:    push   %r12
>    0xffffffff804c45ec <+12>:    push   %rbx
>    0xffffffff804c45ed <+13>:    sub    $0x108,%rsp
>    0xffffffff804c45f4 <+20>:    mov    %rdi,%rbx
>    0xffffffff804c45f7 <+23>:    mov    (%rdx),%r14d
>    0xffffffff804c45fa <+26>:    cmpb   $0x0,0x14fde37(%rip)        #
> 0xffffffff819c2438 <AcpiGbl_SystemAwakeAndRunning>
>    0xffffffff804c4601 <+33>:    je     0xffffffff804c46c4
> <acpi_wake_prep+228>
>    0xffffffff804c4607 <+39>:    lea    -0x128(%rbp),%rsi
>    0xffffffff804c460e <+46>:    mov    %rbx,%rdi
>    0xffffffff804c4611 <+49>:    call   0xffffffff804c0210 <acpi_parse_prw>
>    0xffffffff804c4616 <+54>:    test   %eax,%eax
>    0xffffffff804c4618 <+56>:    jne    0xffffffff804c49d9
> <acpi_wake_prep+1017>
>    0xffffffff804c461e <+62>:    movq   $0x0,-0x40(%rbp)
>    0xffffffff804c4626 <+70>:    lea    -0x40(%rbp),%rdx
>    0xffffffff804c462a <+74>:    mov    %rbx,%rdi
>    0xffffffff804c462d <+77>:    mov    $0xffffffff804be800,%rsi
>    0xffffffff804c4634 <+84>:    call   0xffffffff80402530 <AcpiGetData>
>    0xffffffff804c4639 <+89>:    mov    -0x40(%rbp),%r15
>    0xffffffff804c463d <+93>:    mov    %r15,%rdi
>    0xffffffff804c4640 <+96>:    call   0xffffffff80bb7460
> <device_get_softc>
> . . .
>
>
> ===
> Mark Millard
> marklmi at yahoo.com
>
>
>

-- 
Nuno Teixeira
FreeBSD UNIX:  <eduardo@FreeBSD.org>   Web:  https://FreeBSD.org