From nobody Mon Jul 13 14:59:19 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 4gzQZN6mj9z6lM9l for ; Mon, 13 Jul 2026 14:59:24 +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 4gzQZN3SP8z3qLC for ; Mon, 13 Jul 2026 14:59:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783954764; 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=qOk0BSJ/EHLNYy9uFaXetQ6xemVH0IsU8ndtVrJ72jG78L/PSONjr0kV6fL3GeQ3B1Mf0J OHh3DwCDTEUO8bVrBz9+53UnAtfuZqCv7AufCLjVvasH3hRdNm4rpKF7DgdM3gqF64RlYQ lIupC3VbxuGBvptRRMlyzKf2KmrZis0vkhYJkfS3O+ronFFIDMPZivVykjUMTus+i/gU6F zRyvpURozjXS10m7J3wvTW+VYwDZ6cQWcJFq4lZFMY24YUyWxSTApd0r2Y7nSWAm0OuaV/ wzMLMEA28NZmsXJfkm/QpDz7icorEcdWd4VG9FrZHT+gxBlxPiqZ1hoFSJqTnw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783954764; a=rsa-sha256; cv=none; b=vBRkQWEXCPJ1PTkhl77hz9eO+xZTm3ZqjrLBDzpo/otdE+vBi/moYoGT1A3ewiTOu+QTMV f7jUjiMjVXN25JxBPTWlnYJr7F7L8054gcErchHEhFCxYkIkx1+j3K1IpWgFHO+P/6mnAy DU9E3N3UMVAYUG4ofODxpebQ6NyI9stnm5lsO0mFRjD8cjVbegT3wuBGMBJZTarJ47+hVY voWfibHBRNED5jfqqoIgXjnziAK8VmLYAKTsd//komii0iGXsH8woUV4G5ItDlT9Icv961 X99Iy9slTcXZeGrGvw20mJTD1vB39Kzio5yQcfqbTlPllR4nCRWJ8WutHB+iDg== 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=1783954764; 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=ImZt84RE4LgbYR+8m+m9zcYORdYP+p7iQXPcWGrIge5ZPdXAD4YD5bmq0GrGjOabOc7d/+ VSVTKbmHWpfVQHofpvcHc6Cg0W0Q10Vusv5P/NeeFH6vRYAm3Sb9T91dfzzwkfLnRwmvUg 7Tx8lQLNzkpcHmCDzxntVjLdqPInbYlolOyJefEBv8gLIOvUYJa2d9glxjvSIJ8m1YHWSW p9yLdCeAZG+8cFjpRY+KaTDXTdmDwZGv6Fg1CFsbvATufP1/sZ+kzUPRt2qw6ji+Sv4Hm+ Yrt9/3StMOsri2u8rdauqvS/ywSA8kiGm/oqki6NwavnbDhMLt0uHL1Px5KlRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gzQZN2WQjz13SY for ; Mon, 13 Jul 2026 14:59:24 +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 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/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;