Date: Fri, 6 Feb 2026 09:59:33 -0600 From: Kyle Evans <kevans@FreeBSD.org> To: 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: <11fddfa0-41fd-430a-8ecb-8afa27385878@FreeBSD.org> In-Reply-To: <695f8abf.30bec.62a9009@gitrepo.freebsd.org>
index | next in thread | previous in thread | raw e-mail
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 Evanshome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?11fddfa0-41fd-430a-8ecb-8afa27385878>
