Skip to content

Commit df9840f

Browse files
committed
doc: add reference for rt-conf tool config.yaml (#95)
1 parent 26c58e9 commit df9840f

File tree

5 files changed

+196
-0
lines changed

5 files changed

+196
-0
lines changed

docs/.custom_wordlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ NMI
104104
NMIs
105105
NOCB
106106
nohz
107+
ondemand
107108
optimization
108109
OSAL
109110
oslat

docs/how-to/cpu-boot-configs.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ The parameters covered here should be passed to the bootloader.
1010
For that, refer to :doc:`modify-kernel-boot-parameters`.
1111

1212

13+
.. _cpu-lists:
14+
1315
CPU lists
1416
---------
1517

docs/reference/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ Reference
88
kernel-boot-parameters
99
kernel-config-options
1010
releases
11+
rt-conf-yaml

docs/reference/kernel-boot-parameters.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _kernel-boot-parameters:
2+
13
Kernel boot parameters
24
======================
35

docs/reference/rt-conf-yaml.md

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
# RT Conf YAML configuration schema
2+
3+
The following schema reflects all settings available in the configuration file of the `rt-conf` tool
4+
5+
There are three top-level dictionaries in the configuration file:, {ref}`kcmd`, {ref}`irqt` and {ref}`cpug`.
6+
7+
(kcmd)=
8+
## kernel_cmdline
9+
10+
Type: `dict`
11+
12+
_Optional_
13+
14+
{ref}`kernel-boot-parameters` that affects real-time behavior
15+
16+
17+
### kernel_cmdline.isolcpus
18+
19+
Type: `string`
20+
21+
_Optional_
22+
23+
A string formatted as {ref}`cpu-lists`.
24+
Isolate CPUs from general execution.
25+
26+
### kernel_cmdline.nohz
27+
28+
Type: `enum`
29+
30+
_Optional_
31+
32+
Enable/disable dynamic ticks during idle time.
33+
34+
Valid values are:
35+
* `on`: **Enables** dynamic ticks
36+
* `off`:**Disables** dynamic ticks
37+
38+
### kernel_cmdline.nohz_full
39+
40+
Type: `string`
41+
42+
_Optional_
43+
44+
A string formatted as {ref}`cpu-lists`.
45+
Specifies the adaptive-ticks cpus, which means the specified list of CPUs whose tick will be stopped whenever possible.
46+
The boot CPU will be forced outside the range to maintain the timekeeping.
47+
48+
### kernel_cmdline.kthread_cpus
49+
50+
Type: `string`
51+
52+
_Optional_
53+
54+
A string formatted as {ref}`cpu-lists`.
55+
Specifies the list of CPUs to be allocated for kernel threads.
56+
57+
### kernel_cmdline.irqaffinity
58+
59+
Type: `string`
60+
61+
_Optional_
62+
63+
A string formatted as {ref}`cpu-lists`.
64+
Specifies the list of CPUs for IRQ handling.
65+
66+
(irqt)=
67+
## irq_tuning
68+
69+
Type: `list[dict]`
70+
71+
_Optional_
72+
73+
A list of configurations including the list of cpus to be applied and the filters.
74+
Runtime configurations that aren't persisted, related to IRQ affinity tuning.
75+
76+
Example:
77+
78+
```yaml
79+
irq_tuning:
80+
- cpus: "2-3"
81+
filter:
82+
actions: "iwlwifi"
83+
chip_name: "IR-PCI"
84+
name: "edge"
85+
type: "edge"
86+
```
87+
88+
### irq_tuning[*].cpus
89+
90+
Type `string`
91+
92+
_Required_
93+
94+
A string formatted as {ref}`cpu-lists`.
95+
Specifies the list of CPUs which will handle the matched IRQs on the {ref}`filter <irqfilter>`.
96+
97+
(irqfilter)=
98+
### irq_tuning[*].filter
99+
100+
Type: `dict`
101+
102+
_Required_
103+
104+
A dictionary with keys related to IRQ properties of `/sys/kernel/irq/<IRQ-num>/`.
105+
106+
#### irq_tuning[*].filter.actions
107+
108+
Type: `regex string`
109+
110+
_Optional_
111+
112+
The IRQ action chain. A comma-separated list of zero or more device names associated with this interrupt.
113+
For network related, generally is the name of the network interface shown in `ip link show`.
114+
115+
#### irq_tuning[*].filter.chip_name
116+
117+
Type: `regex string`
118+
119+
_Optional_
120+
121+
Chip name supplied by the associated device driver.
122+
123+
Example: `IR-PCI-MSIX-0000:04:00.0`
124+
125+
#### irq_tuning[*].filter.name
126+
127+
Type: `regex string`
128+
129+
_Optional_
130+
131+
Human-readable flow handler name as defined by the irq chip driver.
132+
Example values are:
133+
* `edge`
134+
* `fasteoi`
135+
136+
#### irq_tuning[*].filter.type
137+
138+
Type: `enum`
139+
140+
_Optional_
141+
142+
The type of the interrupt.
143+
Valid values:
144+
* `edge`
145+
* `level`
146+
147+
(cpug)=
148+
## cpu_governance
149+
150+
Type: `list[dict]`
151+
152+
_Optional_
153+
154+
Runtime configurations that aren't persisted, related to cpu power management.
155+
A list of dictionaries with the CPU scaling governor and the cpu list to be applied.
156+
157+
Example:
158+
159+
```yaml
160+
cpu_governance:
161+
- cpus: "0-1"
162+
scaling_governor: "performance"
163+
```
164+
165+
### cpu_governance[*].cpus
166+
167+
Type: `string`
168+
169+
_Required_
170+
171+
A string formatted as {ref}`cpu-lists`.
172+
Specifies which cpus are going to be configured with the scaling governor specified in the item.
173+
174+
175+
### cpu_governance[*].scaling_governor
176+
177+
Type: `string`
178+
179+
_Required_
180+
181+
The chosen scaling governor.
182+
183+
Valid values:
184+
* `performance`: Run the CPU at the maximum frequency, get from `/sys/devices/system/cpu/cpuX/cpufreq/scaling_max_freq`.
185+
* `powersave`: Run the CPU at the minimum frequency, get from `/sys/devices/system/cpu/cpuX/cpufreq/scaling_min_freq`.
186+
* `userspace`: Run the CPU at user specified frequencies, configurable via `/sys/devices/system/cpu/cpuX/cpufreq/scaling_setspeed`.
187+
* `ondemand`: Scales the frequency dynamically according to current load. Jumps to the highest frequency and then possibly back off as the idle time increases.
188+
* `conservative`: Scales the frequency dynamically according to current load (more gradually than ondemand).
189+
* `schedutil`: [Scheduler-driven](https://lwn.net/Articles/682391/) CPU frequency selection.
190+

0 commit comments

Comments
 (0)