From nobody Thu Jan 29 18:12:28 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 4f26gK0VC5z6PfJ2 for ; Thu, 29 Jan 2026 18:12:29 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f26gJ2HsFz3Ynq for ; Thu, 29 Jan 2026 18:12:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769710348; 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=Q1C2pG/2zkYRbIHCGijys+6DGo892mZfuH5Ie5TUzS4=; b=W9+0+3rmVwwirULTKuqXf2BC5UWLrEa1/4HRqf9vUKvPR3Md1faQ5gjPi8IY7ZQRKuBg03 Bk309hzpWnDm3f70nZPdvJmAvXwlSGhap2VYFG/DfaGCSiWvVHHk/qX6okj0EkrsbOrkm6 dPYa9oqIMuwtS172Upe0KTyg0Nwyml3bHcYi3nN4gcJm68fL7GZWxuejph+GLtbmC/ThV3 iXCiaBiSSFdqjEPgOgciRUPRXxUvZig+YJEJYMOTEc+Q6LNiavuBnGStGOLaL1M1p9Sd+B MeEFrjTPVurCfhWStNlGDczzU3xOBDdcMc83uoDPn+h0tCa4zKutqX/4XxXiqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769710348; a=rsa-sha256; cv=none; b=NPaF1PQP2Ojye7lGeT9kzhEFA8U7I32Dsl2hCltO2ogCfqOemunlh/6VSbu4v5emldszGP 6ombHNRQsAb+/iNThbeDFWu3ar551v2nlnJkM1ynoDVNRghTEHNRm8MJgCKexLgp62yDsX 4XyrILqChbCQa8rw62OTR7pUIvjI82MIO+3GKtMre6w4EVoi5n1v1lPKxfHe3GGks/WI44 96VhAmXkK1nrh2Omz9YfWO1nFCSHphFPuc6jucoe7q0rekI39WncLoVenm+LGbxpn+RyFa GGnwW3s6cti7rJTyp2A4HXmnOqA1LLibx4CIajanKeMkQTZvH+guIYGMjUvo/A== 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=1769710348; 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=Q1C2pG/2zkYRbIHCGijys+6DGo892mZfuH5Ie5TUzS4=; b=XEhBqzXUhWtADGsqsYv7a5pGwFaSk/eol43P1EucpeEw7dKrf/HO0mWq30r6VUp69hnCYb IpAo9XB2SLr1L8gW/K7rUPbyEcbHAiI4l4ozIkVbyctrUpl9HBQurVq7A20mDXFZJvO5El KDLTieB69s54Q2ryqW0MKteK7zxAAhYToFTV6KTeeV15Kw9URLvcrwJuWkh7Y76YFrpmCy FB0W72HfotK2fOQ8R8x251tKb3QlAF+uqovIdnjZSwOPwh1JpSjpAKFBtccaTc3pBXiMli bZx23eyp0B8rqJlrRgT0fuJrrrs7bc/CibfKmN3Jc9ZTsvhrc4XJiXTJ05dfjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f26gJ1cVfzq45 for ; Thu, 29 Jan 2026 18:12:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 80a7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Jan 2026 18:12:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: eb454937a3c0 - main - sys: Move ULE sysctls under kern.sched.ule 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eb454937a3c04e5d1bde4f58d0ebb2dc48472ced Auto-Submitted: auto-generated Date: Thu, 29 Jan 2026 18:12:28 +0000 Message-Id: <697ba30c.80a7.6a1602fb@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=eb454937a3c04e5d1bde4f58d0ebb2dc48472ced commit eb454937a3c04e5d1bde4f58d0ebb2dc48472ced Author: Konstantin Belousov AuthorDate: 2026-01-22 05:41:21 +0000 Commit: Konstantin Belousov CommitDate: 2026-01-29 18:11:55 +0000 sys: Move ULE sysctls under kern.sched.ule Reviewed by: olce Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D54831 --- sys/kern/sched_ule.c | 60 ++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 116a1d6105d0..a285c62a4525 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -404,8 +404,8 @@ static void sched_balance(void); static bool sched_balance_pair(struct tdq *, struct tdq *); static inline struct tdq *sched_setcpu(struct thread *, int, int); static inline void thread_unblock_switch(struct thread *, struct mtx *); -static int sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS); -static int sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, +static int sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS); +static int sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, int indent); #endif @@ -3412,8 +3412,8 @@ DECLARE_SCHEDULER(ule_sched_selector, "ULE", &sched_ule_instance); * the topology tree. */ static int -sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, - int indent) +sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, + struct cpu_group *cg, int indent) { char cpusetbuf[CPUSETBUFSIZ]; int i, first; @@ -3450,7 +3450,7 @@ sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, if (cg->cg_children > 0) { sbuf_printf(sb, "%*s \n", indent, ""); for (i = 0; i < cg->cg_children; i++) - sysctl_kern_sched_topology_spec_internal(sb, + sysctl_kern_sched_ule_topology_spec_internal(sb, &cg->cg_child[i], indent+2); sbuf_printf(sb, "%*s \n", indent, ""); } @@ -3463,7 +3463,7 @@ sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, * the recursive sysctl_kern_smp_topology_spec_internal(). */ static int -sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) +sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS) { struct sbuf *topo; int err; @@ -3475,7 +3475,7 @@ sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) return (ENOMEM); sbuf_cat(topo, "\n"); - err = sysctl_kern_sched_topology_spec_internal(topo, cpu_top, 1); + err = sysctl_kern_sched_ule_topology_spec_internal(topo, cpu_top, 1); sbuf_cat(topo, "\n"); if (err == 0) { @@ -3506,47 +3506,51 @@ sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, +SYSCTL_NODE(_kern_sched, OID_AUTO, ule, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "ULE Scheduler"); + +SYSCTL_PROC(_kern_sched_ule, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_quantum, "I", "Quantum for timeshare threads in microseconds"); -SYSCTL_INT(_kern_sched, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, "Quantum for timeshare threads in stathz ticks"); -SYSCTL_UINT(_kern_sched, OID_AUTO, interact, CTLFLAG_RWTUN, &sched_interact, 0, +SYSCTL_UINT(_kern_sched_ule, OID_AUTO, interact, CTLFLAG_RWTUN, &sched_interact, 0, "Interactivity score threshold"); -SYSCTL_INT(_kern_sched, OID_AUTO, preempt_thresh, CTLFLAG_RWTUN, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, preempt_thresh, CTLFLAG_RWTUN, &preempt_thresh, 0, "Maximal (lowest) priority for preemption"); -SYSCTL_INT(_kern_sched, OID_AUTO, static_boost, CTLFLAG_RWTUN, &static_boost, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, static_boost, CTLFLAG_RWTUN, + &static_boost, 0, "Assign static kernel priorities to sleeping threads"); -SYSCTL_INT(_kern_sched, OID_AUTO, idlespins, CTLFLAG_RWTUN, &sched_idlespins, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, idlespins, CTLFLAG_RWTUN, + &sched_idlespins, 0, "Number of times idle thread will spin waiting for new work"); -SYSCTL_INT(_kern_sched, OID_AUTO, idlespinthresh, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, idlespinthresh, CTLFLAG_RW, &sched_idlespinthresh, 0, "Threshold before we will permit idle thread spinning"); #ifdef SMP -SYSCTL_INT(_kern_sched, OID_AUTO, affinity, CTLFLAG_RW, &affinity, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, affinity, CTLFLAG_RW, &affinity, 0, "Number of hz ticks to keep thread affinity for"); -SYSCTL_INT(_kern_sched, OID_AUTO, balance, CTLFLAG_RWTUN, &rebalance, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, balance, CTLFLAG_RWTUN, &rebalance, 0, "Enables the long-term load balancer"); -SYSCTL_INT(_kern_sched, OID_AUTO, balance_interval, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, balance_interval, CTLFLAG_RW, &balance_interval, 0, "Average period in stathz ticks to run the long-term balancer"); -SYSCTL_INT(_kern_sched, OID_AUTO, steal_idle, CTLFLAG_RWTUN, &steal_idle, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, steal_idle, CTLFLAG_RWTUN, + &steal_idle, 0, "Attempts to steal work from other cores before idling"); -SYSCTL_INT(_kern_sched, OID_AUTO, steal_thresh, CTLFLAG_RWTUN, &steal_thresh, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, steal_thresh, CTLFLAG_RWTUN, + &steal_thresh, 0, "Minimum load on remote CPU before we'll steal"); -SYSCTL_INT(_kern_sched, OID_AUTO, trysteal_limit, CTLFLAG_RWTUN, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, trysteal_limit, CTLFLAG_RWTUN, &trysteal_limit, 0, "Topological distance limit for stealing threads in sched_switch()"); -SYSCTL_INT(_kern_sched, OID_AUTO, always_steal, CTLFLAG_RWTUN, &always_steal, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, always_steal, CTLFLAG_RWTUN, + &always_steal, 0, "Always run the stealer from the idle thread"); -SYSCTL_PROC(_kern_sched, OID_AUTO, topology_spec, CTLTYPE_STRING | - CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_kern_sched_topology_spec, "A", +SYSCTL_PROC(_kern_sched_ule, OID_AUTO, topology_spec, CTLTYPE_STRING | + CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, + sysctl_kern_sched_ule_topology_spec, "A", "XML dump of detected CPU topology"); #endif - -/* ps compat. All cpu percentages from ULE are weighted. */ -static int ccpu = 0; -SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, - "Decay factor used for updating %CPU in 4BSD scheduler");