Date: Fri, 6 Feb 2026 09:56:07 -0800 From: Adrian Chadd <adrian@freebsd.org> To: Kyle Evans <kevans@freebsd.org> Cc: Aymeric Wibo <obiwac@freebsd.org>, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: c0df8f6f0e6a - main - acpi: Make taskqueue only run on BSP Message-ID: <CAJ-Vmokmq4MRMipcYKzXVd_Pkb_V7ZBBPHAFLj5sSe1Jy-8%2BWA@mail.gmail.com> In-Reply-To: <11fddfa0-41fd-430a-8ecb-8afa27385878@FreeBSD.org> References: <695f8abf.30bec.62a9009@gitrepo.freebsd.org> <11fddfa0-41fd-430a-8ecb-8afa27385878@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
oh, is this what's causing it? i've been seeing weird behaviour on my intel based MSI GE76 raider that aligns with this. Do we actually know that the BSP is always the CPU that woke up from ACPI? -adrian On Fri, 6 Feb 2026 at 07:59, Kyle Evans <kevans@freebsd.org> wrote: > > On 1/8/26 04:45, Aymeric Wibo wrote: > > The branch main has been updated by obiwac: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=c0df8f6f0e6a5f77ec9140e8075d09c55fe4c3c7 > > > > commit c0df8f6f0e6a5f77ec9140e8075d09c55fe4c3c7 > > Author: Aymeric Wibo <obiwac@FreeBSD.org> > > AuthorDate: 2025-12-29 20:01:50 +0000 > > Commit: Aymeric Wibo <obiwac@FreeBSD.org> > > CommitDate: 2026-01-08 10:35:54 +0000 > > > > acpi: Make taskqueue only run on BSP > > > > This is needed because when we add the suspend-to-idle loop, we only > > want to break the BSP out of idle to process the taskqueue while keeping > > all the others idled. > > > > Currently assuming BSP to be CPU0, which may not always be the case on > > non-x86. > > > > Reviewed by: kib > > Approved by: kib > > Sponsored by: The FreeBSD Foundation > > Differential Revision: https://reviews.freebsd.org/D54406 > > --- > > sys/dev/acpica/Osd/OsdSchedule.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/sys/dev/acpica/Osd/OsdSchedule.c b/sys/dev/acpica/Osd/OsdSchedule.c > > index f0464709e8ad..0c5eadb87687 100644 > > --- a/sys/dev/acpica/Osd/OsdSchedule.c > > +++ b/sys/dev/acpica/Osd/OsdSchedule.c > > @@ -35,6 +35,7 @@ > > #include <sys/param.h> > > #include <sys/systm.h> > > #include <sys/bus.h> > > +#include <sys/cpuset.h> > > #include <sys/kernel.h> > > #include <sys/kthread.h> > > #include <sys/malloc.h> > > @@ -109,10 +110,13 @@ static void > > acpi_taskq_init(void *arg) > > { > > int i; > > + /* XXX Currently assuming BSP is CPU0. */ > > + cpuset_t just_bsp = CPUSET_T_INITIALIZER(0x1); > > > > acpi_taskq = taskqueue_create_fast("acpi_task", M_NOWAIT, > > &taskqueue_thread_enqueue, &acpi_taskq); > > - taskqueue_start_threads(&acpi_taskq, acpi_max_threads, PWAIT, "acpi_task"); > > + taskqueue_start_threads_cpuset(&acpi_taskq, acpi_max_threads, PWAIT, > > + &just_bsp, "acpi_task"); > > if (acpi_task_count > 0) { > > if (bootverbose) > > printf("AcpiOsExecute: enqueue %d pending tasks\n", > > > > Hi, > > Mentioned privately, but also bringing it to the list in case anyone else has had the same symptom- updating my frame.work laptop from ~December main to ~February main resulted in a power-button wakeup shutting down the system after it wakes up. The result of a bisect pointed at this commit reliably causing it, and reverting it locally does seem to fix it. > > Thanks, > > Kyle Evans >home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmokmq4MRMipcYKzXVd_Pkb_V7ZBBPHAFLj5sSe1Jy-8%2BWA>
