From nobody Mon Jul 27 00:10:30 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4h7fBN6rndz6m9D2 for ; Mon, 27 Jul 2026 00:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h7fBM6bhVz43WZ for ; Mon, 27 Jul 2026 00:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785111035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VkDT9Hey1IfQY2qKyi42C2gTCI2uDdacSLb9STWdCFM=; b=bDvYiV0tUTBEcdetp7q3sNH4Sf0e/7r9VOsjQRfVposPZygPS1IsuXabCe9onURCzYQwUf sx2LSBzdQrAMhwTV0Nv4Fahu2gHpMfcaCUEqfaDEeelxd/zZtJNBKgQVi2n3Q0kEKoULff H/Hp8gbjLcDDagnWWxr+UhbZEn6mS+yP5yfTFpFKg9qWojUuwK20nnXnXz0cAzK/YnCWia FAQF3LPdUgRMd9a7271s+N3Q4H5UxPERlhacEj7/J7n0985pDmonyKKhjO5vkyfKB9KBDl aAb8h/MJu4IMcemjqD72rQPbPYDojo44Zwx8eLz+t7L4N10EWORIhU6t6gqKFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785111036; a=rsa-sha256; cv=none; b=Q2WQSFHIVqLcp0Jq326ZwOr96dO4FGC7FJtLurlsFWN9Yhdh4NYj/M/v27jpB1DYp7BzQh wr/D8ohGQZNqvmtojaoY7VHNngkr++AWa8GCiaMJixdVvnn5ZAVHrtLSlCnKbf+Olmpctg hZiLKsnWM4rWEywtjY9/RxHIlZ1KGZ3Ng52QgM9OdDjvX52hL1A+fOZTgRhGQEFYYKDq5u eEAYwwEmm/Ie5xGhqQZwGbAFbvpuqOUv21Z9oAoYJFTz7YMjLqnu3DPFAYk6SXO5znTq/D OtEAPDLJ4gSmpu+EBB/IXCPcp9Lf9FoXri0ZD9Acv7GzXbjxn1HQBlZLeAdw/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785111036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VkDT9Hey1IfQY2qKyi42C2gTCI2uDdacSLb9STWdCFM=; b=CY2+gYrFjb0Wk+uicm3sJ9suoacQcIe8frZlXK3xYR/uf1EBMYmzxzyV414TVXqCuLT1IK g3Y+Fp6ht+FlKVQE+CSw5DQbMZMIeG2rdpcljL52MSzae+0SIHyNMk8dBHUzeJHiJ5O9ui aguCUOXgohxt7W9LD1RRuKT0EVSrOXPE8xKcFZnSpXbOV+ctjghPdOpZdVGuK8YP65KCIq wkI5npxXHpMvMdRRm2IeGPtCZ6toA86+HfNk23rfn6G4aXRvFcjsRnRhhSY4hmNhpbdNrP LsMU20/Ehp461/CSq3oDBKMhJyMBu06sjaru5PTNRPVcZvtflc6DWCxhVSHj4Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h7fBM5Qfkzl19 for ; Mon, 27 Jul 2026 00:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2708b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Jul 2026 00:10:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: cb143e517654 - stable/15 - LinuxKPI: add system_percpu_wq List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: cb143e517654d8f69939addd6aaf427f3b547a9e Auto-Submitted: auto-generated Date: Mon, 27 Jul 2026 00:10:30 +0000 Message-Id: <6a66a1f6.2708b.44a60564@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=cb143e517654d8f69939addd6aaf427f3b547a9e commit cb143e517654d8f69939addd6aaf427f3b547a9e Author: Bjoern A. Zeeb AuthorDate: 2026-01-21 13:53:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-07-26 16:47:36 +0000 LinuxKPI: add system_percpu_wq In Linux v6.17 system_wq was replaced (renamed to) system_percpu_wq, with the old name still present. We just alias system_percpu_wq to linux_system_short_wq like we do for system_wq to keep both around for the forseeable future. Note: the original system_wq was a per-cpu queue upstream as well based on my understanding but we never implemented it as such. That means we are still lacking a per-cpu implementation for system_percpu_wq but at least we do not change the status-quo of the LinuxKPI implementation with this. Note2: we should add a check somewhere for LINUXKPI_VESION >= 61700 to print a warning if anyone still uses the system_wq to detect any possible sami-native or out-of-tree drivers relying on this and not properly updating. Sponsored by: The FreeBSD Foundation Reviewed by: dumbbell; emaste (comments on previous review) Differential Revision: https://reviews.freebsd.org/D57730 (cherry picked from commit 058ce52660fb52ada41462d339fb1ce6aca48cf3) --- sys/compat/linuxkpi/common/include/linux/workqueue.h | 1 + sys/compat/linuxkpi/common/src/linux_work.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/workqueue.h b/sys/compat/linuxkpi/common/include/linux/workqueue.h index 66d3981d4229..b531d4f34658 100644 --- a/sys/compat/linuxkpi/common/include/linux/workqueue.h +++ b/sys/compat/linuxkpi/common/include/linux/workqueue.h @@ -237,6 +237,7 @@ extern struct workqueue_struct *system_long_wq; extern struct workqueue_struct *system_unbound_wq; extern struct workqueue_struct *system_highpri_wq; extern struct workqueue_struct *system_power_efficient_wq; +extern struct workqueue_struct *system_percpu_wq; extern void linux_init_delayed_work(struct delayed_work *, work_func_t); extern void linux_work_fn(void *, int); diff --git a/sys/compat/linuxkpi/common/src/linux_work.c b/sys/compat/linuxkpi/common/src/linux_work.c index b1975d16025e..bb25893d9c71 100644 --- a/sys/compat/linuxkpi/common/src/linux_work.c +++ b/sys/compat/linuxkpi/common/src/linux_work.c @@ -57,6 +57,7 @@ struct workqueue_struct *system_long_wq; struct workqueue_struct *system_unbound_wq; struct workqueue_struct *system_highpri_wq; struct workqueue_struct *system_power_efficient_wq; +struct workqueue_struct *system_percpu_wq; struct taskqueue *linux_irq_work_tq; @@ -721,7 +722,14 @@ linux_work_init(void *arg) /* populate the workqueue pointers */ system_long_wq = linux_system_long_wq; + /* + * With Linux v6.17 system_wq was "renamed" to system_percpu_wq with the + * old name staying around. + * Note: neither implementation here does fully implement the per-cpu + * characteristics upstream expects. + */ system_wq = linux_system_short_wq; + system_percpu_wq = linux_system_short_wq; system_power_efficient_wq = linux_system_short_wq; system_unbound_wq = linux_system_short_wq; system_highpri_wq = linux_system_short_wq; @@ -737,6 +745,7 @@ linux_work_uninit(void *arg) /* clear workqueue pointers */ system_long_wq = NULL; system_wq = NULL; + system_percpu_wq = NULL; system_power_efficient_wq = NULL; system_unbound_wq = NULL; system_highpri_wq = NULL;