From nobody Wed Feb 11 05:17:22 2026 X-Original-To: dev-commits-src-branches@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 4f9mry5mtjz6Rth0 for ; Wed, 11 Feb 2026 05:17:22 +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 4f9mry1QSDz3SFG for ; Wed, 11 Feb 2026 05:17:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787042; 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=gHOA2bPjd5TH3X4Dn/JHGajDa9lgUbB52j7ITT8WkG4=; b=MxXXIHVQ82WgB/AS3S347sznnbWJ0uMlJOKepWMfjFI2LXKNjbyLJgiDcBYZvCrJ2mfE0i aJxXECb4USWEcke3ob4hBFZ+cQ3FtzDsiEtKa5d9oqSdCSKlUbKfaC8xiael97MyP/EI6B PhRlW3ElWNondKeUErWgdZU89g0wuI0Ozj6kmSZp/K9A1gTwDSGrmjjV11cSixaoSAcpTy ktznW3CtuVTAADn6eUHf35nnvBBE/gm1ramLz0dY69RlKd+l6br3FoYvo1b8xckD9dJ5Kb ciw47BHvowV06y9cTJtvg6XUMAQYQVom5ckahRDKOQw1EUl0ZU7a0vuuPIIRoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787042; a=rsa-sha256; cv=none; b=Ln4pDl4F33CJDvYuAElegpIz8vU4rQva6VGtIKy/RrwK9B/ObiJBdV+EdFpnYSrgQwjViX 0PT8oZ1uLmdIErlVE5VAHSYeNABfyN9Ff2iXrop1glyNY4Z3Ppnc4iJlj5sNd2oB41Hb2J dOH9IKjLCuSvcrrvK1mnYwgehRGE3sXuRzd1sPcWCtC43/7jQ3/DaAQOnVhqRTsVJKjrQX ImDjGSL2/kjDLqFEsyAeyRU2+6fdBw2e2ZdX5cKwE61DqRItdH8PrNIur09Jo5mUdL8WE1 fml/1MKhAhhmDeVnXRyo0fzqun/i+9QCU/+seTlXVFnPmRCJMY1YREpOLBGqfQ== 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=1770787042; 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=gHOA2bPjd5TH3X4Dn/JHGajDa9lgUbB52j7ITT8WkG4=; b=rul2/MqhTV+H6gYLpGLQMOM4pBs5hrKHSA7rzr7tx0si5jfyrh7m02Pklnx0Gjg6qRnpoR 4KpccDUlIl1snXkjUEzi1uT948C/kcW8gWGxUeh/7Ag98OHC52snubQ/YjRvVodhjIX+QI LhifkFcBkMCJvAaFqJIE3LuMFVNdvehg/xDHbzP35MkT9ga3X8tY/tQGdI9m5xnUm8XF4e B89iePMaa/ew0t7EUG0VpJ3OZCYgDAs/iKwZpIKBKNLznlbNJoDil24eqPe8CTnXzb572Y SMqW6l8OuCrYf52oh00KqdMQcu3tGXcBZKhVbMJFxMe3zcS8WArXOrWU9SQP+g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mry0pSmzcWZ for ; Wed, 11 Feb 2026 05:17:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2644d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d19ddc36e01d - stable/15 - sys: Move ULE sysctls under kern.sched.ule List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: d19ddc36e01d1dbae60cdac5e6c1a2911288dacc Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:22 +0000 Message-Id: <698c10e2.2644d.275a3c08@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d19ddc36e01d1dbae60cdac5e6c1a2911288dacc commit d19ddc36e01d1dbae60cdac5e6c1a2911288dacc Author: Konstantin Belousov AuthorDate: 2026-01-22 05:41:21 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys: Move ULE sysctls under kern.sched.ule (cherry picked from commit eb454937a3c04e5d1bde4f58d0ebb2dc48472ced) --- 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");