Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2025 22:32:00 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Cy Schubert <Cy.Schubert@cschubert.com>, dev-commits-src-main@freebsd.org, "obiwac@freebsd.org" <obiwac@FreeBSD.org>
Subject:   Re: git: e779891327b1 - main - sys/power: Sleep type reporting by PM backends
Message-ID:  <6DF1A387-06ED-482F-8FCB-66CA6373B04D@yahoo.com>
References:  <6DF1A387-06ED-482F-8FCB-66CA6373B04D.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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=3De779891327b1d9b9ab10ba482e59f498=

> > 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
> >=20
> > 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.
> >=20
> > Implement this in ACPI PM backend.
> >=20
> > Reviewed by: mckusick (mentor), markj
> > Approved by: mckusick (mentor), markj
> > Sponsored by: The FreeBSD Foundation
> > Differential Revision: https://reviews.freebsd.org/D52044
> > ---
> . . .
> >=20
> >
>=20
> 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 =3D 0; apic id =3D 00
fault virtual address=3D 0x88
fault code=3D supervisor read data, page not present
instruction pointer=3D0x20:0xffffffff80bb7464
stack pointer=3D0x28:0xfffffe027d40dab0
frame pointer=3D0x28:0xfffffe027d40dab0
code segment=3Dbase Ox0, limit Oxfffff, type Ox1b
            =3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags=3D interrupt enabled, resume, IOPL =3D 0
current process=3D 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=3D 12
panic: page fault
cpuid =3D 0
time =3D 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 =3D 0xffffffff80bb7464, rsp =3D 0xfffffe027d40dab0, rbp =
=3D 0xfffffe027d40dab0 =E2=80=94--
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+=C4=90x95/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 =
=C2=A9xfffffe027d40dd40
module_shutdown() at module_shutdown+0x6c/frame 0xfffffe027d40dd60
kern_reboot() at kern_reboot+0x6b7/frame 0xfffffe027d40ddb0=20
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 =3D 0x2941ba, rsp =3D =
0x8210f0aca, rbp =3D 0x8210f0bb0 -=3D-
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=3D 0x88": %rdi=3D=3D0, 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>
. . .


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6DF1A387-06ED-482F-8FCB-66CA6373B04D>