From nobody Mon Jul 13 14:59:19 2026 X-Original-To: dev-commits-src-main@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 4gzQZH4mMxz6lM9Z for ; Mon, 13 Jul 2026 14:59:19 +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 4gzQZH41FXz3q4L for ; Mon, 13 Jul 2026 14:59:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783954759; 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=p427C0tZchkthDXEr+NABgrsqsgje27FDQIJF7Ico78=; b=eUnyMiupdgRWoj+8rKL4CppfQ6ufy3CBQi9whfrEbx6rMS5trIa7XCKzbbas2W9HsmInkV /2xq+RlVKVxQbNX+3W5J87EVCLO7CgleR+KfGCfbhJCSNOK03KM52dIiRa6VfXnS1kO6ON eUuRAK5Y0VnqRuEqHgnUtW2fK6hWR499uNl07qK76WVGN35Tz4+CyrNRtYQVNfbjn+9QAf ujnG41MkNh8ly2FI4m3Fg2oPC23q0zWmcbfuDEkanCfKtBFi6yhQDIQ+2Vx6OLheZqWn8J miCdc9441SEz16cYnrz3ieShYH9IZVaj0HwcWy2yAmWkxNkgALu+v8bN3E46UA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783954759; a=rsa-sha256; cv=none; b=eKozZxHm6qBBTA3SFF6w3+0a+1Rbn33FKtXn/QD3s0fUy6dhm92OrhuJTOptDOdJKBolAT xhUUK5zLBnIAFSqD5lmo+q0HT++VXdg1WMctRPaqAUlWbhqy0cqpG5GOfxAKdsnvvhtgod P4CS8wr6dlb/21N+uKC7za+wuWws8gyxCCwMZoJG4mMy2AI3IEXsDEQ70ScWube7LY203o KU25Cb4XVtNSXjXhSXwbGcGG1FUJ76jD8/w6OCP2seTbVLxlX7WPuk6OabbztwwgZWvPVR XUX0YvdkTp2o0r71GS3yuxtwUWdg/Ub5wowhdvu1+CWOJx7CnHNwL0aFDgVtXg== 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=1783954759; 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=p427C0tZchkthDXEr+NABgrsqsgje27FDQIJF7Ico78=; b=wI1dTFncJYeCRGSAlCIPoaggrEOQycRvHxLJLyMc5AD3MrzpNntHH70/egsxxX9ZIf8+l+ KR4RlfHHGvzZ/de4l00vCVFVYgem6nrNu00YqoWwHe+hF+l0PC54tRd8ldMKZNfEmG0XZ1 Q9d9DW2Y30A6RpsHwYaDBsZNqUS6a9Fem4yNDLMqAtvDJIsX9mHW0JYme74P0ej34LkhX9 B8eVOBsCwogKVPlz92NXZVhvHdNBeWqnfZmGHf6kSwA152l2WTWTCPTdN544lSoF/NMDm0 JJrDQ5wLXi6TbOUOPWvz+zos9sk/qK4vQMs1B5QYKYKOFrgEf0WhC2Qk0bVuMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gzQZH2dXNz1389 for ; Mon, 13 Jul 2026 14:59:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c540 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Jul 2026 14:59:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 058ce52660fb - main - LinuxKPI: add system_percpu_wq List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 058ce52660fb52ada41462d339fb1ce6aca48cf3 Auto-Submitted: auto-generated Date: Mon, 13 Jul 2026 14:59:19 +0000 Message-Id: <6a54fd47.3c540.165607ef@gitrepo.freebsd.org> The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=058ce52660fb52ada41462d339fb1ce6aca48cf3 commit 058ce52660fb52ada41462d339fb1ce6aca48cf3 Author: Bjoern A. Zeeb AuthorDate: 2026-01-21 13:53:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-07-13 14:58:23 +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 MFC after: 3 days Reviewed by: dumbbell; emaste (comments on previous review) Differential Revision: https://reviews.freebsd.org/D57730 --- 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;