tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Documenting the kern.sched sysctl tree [patch]
Hi,
currently the kern.sched sysctl tree is not documented at all.
The patch below changes this. Changes, updates and suggestions welcome!
Here's what the formatted text looks like, for easier feedback:
kern.sched (dynamic)
Influence the scheduling of LWPs, their priorisation and how they
are distributed on and moved between CPUs.
Third level name Type Changeable
kern.sched.cacheht_time integer yes
kern.sched.balance_period integer yes
kern.sched.average_weight integer yes
kern.sched.min_catch integer yes
kern.sched.timesoftints integer yes
kern.sched.kpreempt_pri integer yes
kern.sched.upreempt_pri integer yes
kern.sched.maxts integer yes
kern.sched.mints integer yes
kern.sched.name string no
kern.sched.rtts integer no
kern.sched.pri_min integer no
kern.sched.pri_max integer no
The variables are as follows:
kern.sched.cacheht_time (dynamic)
Cache hotness time in which a LPW is kept on one particu-
lar CPU and not moved to another CPU. This reduces the
overhead of flushing and reloading caches. Defaults to
3ms. Needs to be given in ``hz'' units, see mstohz(9).
kern.sched.balance_period (dynamic)
Interval in which the CPU queues are checked for re-bal-
ancing. Defaults to 300ms. Needs to be given in ``hz''
units, see mstohz(9).
kern.sched.average_weight (dynamic)
Can be used to influence how likely LWPs can be migrated
from one CPU's queue of LPSs that are ready to run to a
different, idle CPU. The value gives the percentage for
weighting the average count of migratable threads from
the past against the current number of migratable
threads. Small gives more weight to the past, big values
more weight on the current situation. Defaults to 50 and
must be between 0 and 100.
kern.sched.min_catch (dynamic)
Minimum count of migratable (runable) threads for catch-
ing (stealing) from another CPU. Defaults to 1 but can
be increased to decrease chance of thread migration
between CPUs.
kern.sched.timesoftints (dynamic)
This switch allows to enable tracking of CPU time for
soft interrupts as part of a LWP's real execution time.
Set to a non-zero value to enable, and see ps(1) for
printing CPU times.
kern.sched.kpreempt_pri (dynamic)
Minimum priority to trigger kernel preemption.
kern.sched.upreempt_pri (dynamic)
Minimum priority to trigger user preemption.
kern.sched.maxts (dynamic)
Scheduler specific maximal time quantum (in millisec-
onds). Must be set to a value larger than ``mints'' and
between 10 and ``hz'' as given by the ``kern.clockrate''
sysctl. Provided by the M2 scheduler.
kern.sched.mints (dynamic)
Scheduler specific minimal time quantum (in millisec-
onds). Must be set to a value smaller than ``maxts'' and
between 1 and ``hz'' as given by the ``kern.clockrate''
sysctl. Provided by the M2 scheduler.
kern.sched.name (dynamic)
Scheduler name. Provided both by the M2 and the 4BSD
scheduler.
kern.sched.rtts (dynamic)
Fixed scheduler specific round-robin time quantum in mil-
liseconds. Provided both by the M2 and the 4BSD sched-
uler.
kern.sched.pri_min (dynamic)
Minimal POSIX real-time priority. See sched(3).
kern.sched.pri_max (dynamic)
Maximal POSIX real-time priority. See sched(3).
- Hubert
Index: sysctl.7
===================================================================
RCS file: /cvsroot/src/share/man/man7/sysctl.7,v
retrieving revision 1.104
diff -u -r1.104 sysctl.7
--- sysctl.7 17 Nov 2016 01:22:00 -0000 1.104
+++ sysctl.7 1 Jan 2017 22:19:46 -0000
@@ -355,7 +355,7 @@
.It kern.rtc_offset integer yes
.It kern.saved_ids integer no
.It kern.sbmax integer yes
-.\".It kern.sched node not applicable
+.It kern.sched node not applicable
.It kern.securelevel integer raise only
.It kern.somaxkva integer yes
.It kern.synchronized_io integer no
@@ -1034,8 +1034,104 @@
.It Li kern.securelevel ( Dv KERN_SECURELVL )
See
.Xr secmodel_securelevel 9 .
-.\" .It Li kern.sched
-.\" XXX: Undocumented.
+.It Li kern.sched ( dynamic )
+Influence the scheduling of LWPs, their priorisation and how they are
+distributed on and moved between CPUs.
+.Bl -column "kern.sched.balance_period" "integer" "Changeable" -offset indent
+.It Sy Third level name Sy Type Sy Changeable
+.It kern.sched.cacheht_time integer yes
+.It kern.sched.balance_period integer yes
+.It kern.sched.average_weight integer yes
+.It kern.sched.min_catch integer yes
+.It kern.sched.timesoftints integer yes
+.It kern.sched.kpreempt_pri integer yes
+.It kern.sched.upreempt_pri integer yes
+.It kern.sched.maxts integer yes
+.It kern.sched.mints integer yes
+.It kern.sched.name string no
+.It kern.sched.rtts integer no
+.It kern.sched.pri_min integer no
+.It kern.sched.pri_max integer no
+.El
+.Pp
+The variables are as follows:
+.Bl -tag -width "123456"
+.It Li kern.sched.cacheht_time ( dynamic )
+Cache hotness time in which a LPW is kept on one particular CPU
+and not moved to another CPU. This reduces the overhead of flushing
+and reloading caches.
+Defaults to 3ms.
+Needs to be given in
+.Dq hz
+units, see
+.Xr mstohz 9 .
+.It Li kern.sched.balance_period ( dynamic )
+Interval in which the CPU queues are checked for re-balancing.
+Defaults to 300ms.
+Needs to be given in
+.Dq hz
+units, see
+.Xr mstohz 9 .
+.It Li kern.sched.average_weight ( dynamic )
+Can be used to influence how likely LWPs can be migrated from
+one CPU's queue of LPSs that are ready to run to a different, idle CPU.
+The value gives the percentage for weighting the average count of
+migratable threads from the past against the current number of
+migratable threads.
+Small gives more weight to the past, big values more weight on the
+current situation.
+Defaults to 50 and must be between 0 and 100.
+.It Li kern.sched.min_catch ( dynamic )
+Minimum count of migratable (runable) threads for catching (stealing)
+from another CPU.
+Defaults to 1 but can be increased to decrease chance of thread
+migration between CPUs.
+.It Li kern.sched.timesoftints ( dynamic )
+This switch allows to enable tracking of CPU time for soft interrupts
+as part of a LWP's real execution time.
+Set to a non-zero value to enable,
+and see
+.Xr ps 1
+for printing CPU times.
+.It Li kern.sched.kpreempt_pri ( dynamic )
+Minimum priority to trigger kernel preemption.
+.It Li kern.sched.upreempt_pri ( dynamic )
+Minimum priority to trigger user preemption.
+.It Li kern.sched.maxts ( dynamic )
+Scheduler specific maximal time quantum (in milliseconds).
+Must be set to a value larger than
+.Dq mints
+and between 10 and
+.Dq hz
+as given by the
+.Dq kern.clockrate
+sysctl.
+Provided by the M2 scheduler.
+.It Li kern.sched.mints ( dynamic )
+Scheduler specific minimal time quantum (in milliseconds).
+Must be set to a value smaller than
+.Dq maxts
+and between 1 and
+.Dq hz
+as given by the
+.Dq kern.clockrate
+sysctl.
+Provided by the M2 scheduler.
+.It Li kern.sched.name ( dynamic )
+Scheduler name.
+Provided both by the M2 and the 4BSD scheduler.
+.It Li kern.sched.rtts ( dynamic )
+Fixed scheduler specific round-robin time quantum in milliseconds.
+Provided both by the M2 and the 4BSD scheduler.
+.It Li kern.sched.pri_min ( dynamic )
+Minimal POSIX real-time priority.
+See
+.Xr sched 3 .
+.It Li kern.sched.pri_max ( dynamic )
+Maximal POSIX real-time priority.
+See
+.Xr sched 3 .
+.El
.It Li kern.somaxkva ( Dv KERN_SOMAXKVA )
Maximum amount of kernel memory to be used for socket buffers.
.\" XXX units?
Home |
Main Index |
Thread Index |
Old Index