-
Notifications
You must be signed in to change notification settings - Fork 14
Add RT Conf documentation #98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
df9840f to
d7ccef2
Compare
EdoardoBarbieriCanonical
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added minor comments.
| # How-to tune Real-Time Ubuntu using rt-conf | ||
|
|
||
| *rt-conf* is a tool that helps users tune their system for real-time responsiveness. | ||
| This guide describes how to install and use it on Ubuntu. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we state "[...] on Ubuntu with the real-time kernel" / "[...] on Real-time Ubuntu"? I know it's already in the title, so maybe it's repetitive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i agree. either of @EdoardoBarbieriCanonical 's suggestion works.
it would be helpful for SEO since your keywords should be featured at the start of your doc / guide.
|
|
||
| ````{admonition} Developer mode | ||
| The snap must be installed with `--devmode` to allow IRQ configuration. | ||
| This is due to issue [#67](https://github.com/canonical/rt-conf/issues/67). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the expected timeframe for fixing this bug?
| ```{admonition} Kernel command line parameters | ||
| Pay attention to the output as it shows platform-specific instructions to complete kernel command line configurations. | ||
| Setting kernel command line via rt-conf is not supported on [Ubuntu Core][UC]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the word "parameters" missing here?
| _Optional_ | ||
|
|
||
| The IRQ action chain. A comma-separated list of zero or more device names associated with this interrupt. | ||
| For network related, generally is the name of the network interface shown in `ip link show`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't find the second sentence very clear. Do you mean to say "For network-related purposes, the IRQ action chain is generally the name of the network interface, shown in ip link show."?
docs/how-to/index.rst
Outdated
| Tune IRQ affinity <tune-irq-affinity> | ||
| Isolate CPUs from general execution with cpusets <isolate-workload-cpusets> | ||
|
|
||
| Tune Real-Time Ubuntu using rt-conf <rt-conf-cli> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Tune Real-Time Ubuntu using rt-conf <rt-conf-cli> | |
| Tune Real-time Ubuntu using rt-conf <rt-conf-cli> |
| For that, refer to :doc:`modify-kernel-boot-parameters`. | ||
|
|
||
|
|
||
| .. _cpu-lists: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we don't necessarily need a fix here.
but i think we should have a better structure for naming our targets.
as the doc set grows we can run into conflicts since similar headings can easily appear across pages.
E.g. cpu-configs-cpu-lists or something along this convention would be a more robust target.
| @@ -0,0 +1,103 @@ | |||
| # How-to tune Real-Time Ubuntu using rt-conf | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # How-to tune Real-Time Ubuntu using rt-conf | |
| # How-to tune Real-time Ubuntu using rt-conf |
| @@ -0,0 +1,103 @@ | |||
| # How-to tune Real-Time Ubuntu using rt-conf | |||
|
|
|||
| *rt-conf* is a tool that helps users tune their system for real-time responsiveness. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we don't typically italicize the tool names.
Also would you want to link to the rt-conf repo as part of this intro?
https://github.com/canonical/rt-conf
| sudo snap connect rt-conf:etc-default-grub | ||
| ``` | ||
| rt-conf uses this access to write a drop-in GRUB config file at `/etc/default/grub.d/60_rt-conf.cfg`. | ||
| This file is removed when uninstalling the rt-conf snap. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| This file is removed when uninstalling the rt-conf snap. | |
| This file is removed when you uninstall the rt-conf snap. |
| ```shell | ||
| sudo snap connect rt-conf:etc-default-grub | ||
| ``` | ||
| rt-conf uses this access to write a drop-in GRUB config file at `/etc/default/grub.d/60_rt-conf.cfg`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| rt-conf uses this access to write a drop-in GRUB config file at `/etc/default/grub.d/60_rt-conf.cfg`. | |
| rt-conf uses this access to write a drop-in GRUB config file at {file}`/etc/default/grub.d/60_rt-conf.cfg`. |
docs/how-to/rt-conf-cli.md
Outdated
| sudo snap install rt-conf --beta --devmode | ||
| ``` | ||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| @@ -0,0 +1,103 @@ | |||
| # How-to tune Real-Time Ubuntu using rt-conf | |||
|
|
|||
| *rt-conf* is a tool that helps users tune their system for real-time responsiveness. | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| *rt-conf* is a tool that helps users tune their system for real-time responsiveness. | |
| *rt-conf* is a tool that can be used to tune your system for real-time responsiveness. |
Speaking to the user.
| # How-to tune Real-Time Ubuntu using rt-conf | ||
|
|
||
| *rt-conf* is a tool that helps users tune their system for real-time responsiveness. | ||
| This guide describes how to install and use it on Ubuntu. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| This guide describes how to install and use it on Ubuntu. | |
| This guide describes how to install and use it on Real-time Ubuntu. |
|
|
||
| The default configuration file is located at `/var/snap/rt-conf/common/config.yaml`: | ||
|
|
||
| ```{literalinclude} rt-conf-config.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it's a good idea to maintain this file here since it can change upstream in rt-conf without warning -- unless we want to keep this version a little different from the upstream one?
I would suggest pulling this file into real-time-ubuntu from upstream since it's a literal include without further explanation / annotations / modifications in the YAML file itself.
We can copy the file over each time the doc builds with the urllib library.
- Add this to the "import" section of
conf.py:from urllib.request import urlretrieve - Add this towards the end of
conf.py:# Import files from external URLs urlretrieve ( "https://raw.githubusercontent.com/canonical/rt-conf/refs/heads/main/config.yaml", "how-to/rt-conf-config.yaml" )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that this isn't ideal.
The config file that is in the main branch of the source may not always be compatible with the revisions users install from latest/stable. Main branch is usually ahead, with newer additions.
As discussed, I'll drop the full config example and try to add smaller excerpts to the reference.
| sudo snap stop --disable rt-conf | ||
| ``` | ||
|
|
||
| ### Change configuration path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think the section on "Change configuration file path" should be under the "Configure" section instead of "Run.
| sudo snap stop --disable rt-conf | ||
| ``` | ||
|
|
||
| ### Change configuration path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### Change configuration path | |
| ### Change configuration file path |
suggest moving it up.
| ``` | ||
|
|
||
| ```{note} | ||
| The configuration file must be in a location accessible to the snap, such as a user home directory. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The configuration file must be in a location accessible to the snap, such as a user home directory. | |
| The configuration file must be in a location accessible to the snap, such as a user's home directory. |
AnneCYH
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hey @farshidtz , just some suggestions for your consideration.
Thanks!
AnneCYH
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @farshidtz , thanks for this.
I left some comments; do consider and lemme know if you have any questions, thanks!
| @@ -0,0 +1,208 @@ | |||
| # rt-conf YAML configuration schema | |||
|
|
|||
| The following schema reflects all settings available in the configuration file of the `rt-conf` tool | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The following schema reflects all settings available in the configuration file of the `rt-conf` tool | |
| The following schema reflects all settings available in the configuration file of the `rt-conf` tool. |
|
|
||
| The following schema reflects all settings available in the configuration file of the `rt-conf` tool | ||
|
|
||
| There are three top-level dictionaries in the configuration file:, {ref}`kcmd`, {ref}`irqt` and {ref}`cpug`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| There are three top-level dictionaries in the configuration file:, {ref}`kcmd`, {ref}`irqt` and {ref}`cpug`. | |
| There are three top-level dictionaries in the configuration file: {ref}`kcmd`, {ref}`irqt` and {ref}`cpug`. |
| @@ -0,0 +1,103 @@ | |||
| # How-to tune Real-Time Ubuntu using rt-conf | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| # How-to tune Real-Time Ubuntu using rt-conf | |
| (tune-rt-conf)= | |
| # How-to tune Real-Time Ubuntu using rt-conf |
| # rt-conf YAML configuration schema | ||
|
|
||
| The following schema reflects all settings available in the configuration file of the `rt-conf` tool | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ```{seealso} | |
| - {ref}`tune-rt-conf` | |
| ``` |
docs/reference/rt-conf-yaml.md
Outdated
|
|
||
| _Optional_ | ||
|
|
||
| {ref}`kernel-boot-parameters` that affects real-time behavior |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| {ref}`kernel-boot-parameters` that affects real-time behavior | |
| {ref}`kernel-boot-parameters` that affect real-time behavior. |
|
|
||
| Human-readable flow handler name as defined by the irq chip driver. | ||
| Example values are: | ||
| * `edge` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the potential values are arbitary right? as in anything is possible?
|
|
||
| _Optional_ | ||
|
|
||
| Runtime configurations that aren't persisted, related to cpu power management. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as previously. I am not clear how these 2 sentences are "connected". I am missing something but it's not clear what.
| _Optional_ | ||
|
|
||
| Runtime configurations that aren't persisted, related to cpu power management. | ||
| A list of dictionaries with the CPU scaling governor and the cpu list to be applied. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| A list of dictionaries with the CPU scaling governor and the cpu list to be applied. | |
| A list of dictionaries with the CPU scaling governor and the CPU list to be applied. |
Anyways please do a quick search-and-replace to keep the use of CPU consistent.
| _Required_ | ||
|
|
||
| A string formatted as {ref}`cpu-lists`. | ||
| Specifies which cpus are going to be configured with the scaling governor specified in the item. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll limit my comments but reword to say what the user does with the command. Do apply this to the rest of the params.
| Specifies which cpus are going to be configured with the scaling governor specified in the item. | |
| Specify which CPUs are going to be configured with the scaling governor specified in the item. |
|
|
||
| _Required_ | ||
|
|
||
| The chosen scaling governor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The chosen scaling governor. | |
| Chose the scaling governor. |
* feat: update rt-conf yaml reference Signed-off-by: Lincoln Wallace <[email protected]> * chore(.custom_wordlist): ignore nocbs Signed-off-by: Lincoln Wallace <[email protected]> * feat: put validated parameters information on an admonition note Signed-off-by: Lincoln Wallace <[email protected]> * fix: change append -> parameters Signed-off-by: Lincoln Wallace <[email protected]> * refact: improve explanation regarding validated values Co-authored-by: Farshid Tavakolizadeh <[email protected]> Signed-off-by: Lincoln Wallace <[email protected]> * feat: specify the type for the list itens Signed-off-by: Lincoln Wallace <[email protected]> * fix: add period to end sentence Signed-off-by: Lincoln Wallace <[email protected]> * feat!: drop url Signed-off-by: Lincoln Wallace <[email protected]> * feat: add requirement level for kernel-cmdline.parameters key Signed-off-by: Lincoln Wallace <[email protected]> * feat: drop table and add simple bulleted list with references Note that nohz_full and rcu_nocbs aren't present on the reference Signed-off-by: Lincoln Wallace <[email protected]> --------- Signed-off-by: Lincoln Wallace <[email protected]> Co-authored-by: Farshid Tavakolizadeh <[email protected]>
|
@locnnil looks like the how-to (docs/how-to/rt-conf-cli.md) has gone missing with the history rewrites. Please recover it. |
Signed-off-by: Lincoln Wallace <[email protected]>
Signed-off-by: Lincoln Wallace <[email protected]>
PRs:
Completed docs:
The snap must be released to beta before publishing this doc.
Preview