diff --git a/images/src/png/kernel_tasks.png b/images/src/png/kernel_tasks.png deleted file mode 100644 index e31bd77..0000000 Binary files a/images/src/png/kernel_tasks.png and /dev/null differ diff --git a/xml/MAIN.SLERT.xml b/xml/MAIN.SLERT.xml index 6ac241c..3634ebf 100644 --- a/xml/MAIN.SLERT.xml +++ b/xml/MAIN.SLERT.xml @@ -1,18 +1,14 @@ - - - + %entities; ]> - + + &slert; Documentation - + &productname; &productnameshort; &productnumber; @@ -27,12 +23,30 @@ https://github.com/SUSE/doc-slert/edit/main/xml/ no - + + + 2022-11-07 + + + + + + Quick Start Guides + + + + 2022-11-07 + + + + + + diff --git a/xml/article_hardware_testing.xml b/xml/article_hardware_testing.xml index c4827ef..b10fabe 100644 --- a/xml/article_hardware_testing.xml +++ b/xml/article_hardware_testing.xml @@ -1,18 +1,14 @@ - - - + %entities; ]> -
+ +
&slertabbr; Hardware Testing - &productname; + &productname; &productnumber; @@ -29,7 +25,15 @@ latency detector are parts of the &productname; product. - + + + 2022-01-17 + + + + + + General testing procedure and analysis @@ -166,7 +170,7 @@ redirect it to a file: cyclictest --loops=1000 \ ---histogram=1000 > histogram +--histogram=1000 > histogram diff --git a/xml/article_kernel_tasks.xml b/xml/article_kernel_tasks.xml index 63038dd..6c8b24c 100644 --- a/xml/article_kernel_tasks.xml +++ b/xml/article_kernel_tasks.xml @@ -1,18 +1,14 @@ - - - + %entities; ]> -
+ +
Processes and task states for Linux Kernel programming - &productname; + &productname; &productnumber; @@ -33,7 +29,15 @@ https://github.com/SUSE/doc-slert/edit/main/xml/ no - + + + 2022-11-07 + + + + + +
Processes and task states diff --git a/xml/article_setup.xml b/xml/article_setup.xml index 2e415f8..b0b8030 100644 --- a/xml/article_setup.xml +++ b/xml/article_setup.xml @@ -1,18 +1,14 @@ - - - + %entities; ]> -
+ +
Setup Guide - &productname; + &productname; &productnumber; @@ -27,7 +23,15 @@ scheduling, CPU shielding, and for setting CPU affinities of processes. - + + + 2023-12-22 + + + + + + Product overview @@ -136,13 +140,13 @@ When the prompt shows up, open the file control.xml and add the following lines: - <base_product> - <display_name>SUSE Linux Enterprise Real Time &productnumber;</display_name> - <name>SLE_RT</name> - <version>15.4</version> - <register_target>sle-15-$arch</register_target> - <archs>x86_64</archs> -</base_product> + <base_product> + <display_name>SUSE Linux Enterprise Real Time &productnumber;</display_name> + <name>SLE_RT</name> + <version>15.4</version> + <register_target>sle-15-$arch</register_target> + <archs>x86_64</archs> +</base_product> Save the file, exit the editor, and restart &yast; @@ -266,7 +270,7 @@ by running cset shield without additional options: cset shield -cset: --> shielding system active with +cset: --> shielding system active with cset: "system" cpuset of: 0-2 cpu, with: 47 cset: "user" cpuset of: 3-7 cpu, with: 0 @@ -340,7 +344,7 @@ cset: "user" cpuset of: 3-7 cpu, with: 0 the --verbose option: cset shield --verbose -cset: --> shielding system active with +cset: --> shielding system active with cset: "system" cpuset of: 0-2,4-15 cpu, with: USER PID PPID S TASK NAME -------- ----- ----- - --------- @@ -402,8 +406,7 @@ cset: "user" cpuset of: 3 cpu, with: 1 Besides assigning memory nodes, the subcommand set creates cpusets in a tree-like structure, rooted at the - root &cpuset;. + root &cpuset;. @@ -1802,8 +1805,7 @@ noop deadline [cfq] More detailed information about the real-time Linux development and an introduction how to write a real-time application can be found in the real-time Linux community Wiki. - , + , @@ -1813,7 +1815,7 @@ noop deadline [cfq] More detailed documentation is available from - . --> + . --> - + Shielding Linux Resources - + &productname; &slertabbr; &productnumber; @@ -23,7 +20,15 @@ AlexTsariounov - + + + 2021-07-20 + + + + + + diff --git a/xml/common_copyright_gfdl.xml b/xml/common_copyright_gfdl.xml index 116698d..86e0e82 100644 --- a/xml/common_copyright_gfdl.xml +++ b/xml/common_copyright_gfdl.xml @@ -1,9 +1,9 @@ - - + %entities; ]> + + + + 2021-07-20 + + + + + + Copyright © 2006– SUSE LLC and contributors. All rights reserved. diff --git a/xml/common_legal.xml b/xml/common_legal.xml index 021e9d2..b041368 100644 --- a/xml/common_legal.xml +++ b/xml/common_legal.xml @@ -1,12 +1,20 @@ - - + %entities; ]> + GNU Licenses - + + + 2021-07-20 + + + + + + This appendix contains the GNU Free Documentation License version 1.2. diff --git a/xml/slert_cpuset_manipulation.xml b/xml/slert_cpuset_manipulation.xml index 7383927..fd8f752 100644 --- a/xml/slert_cpuset_manipulation.xml +++ b/xml/slert_cpuset_manipulation.xml @@ -1,11 +1,20 @@ - - + %entities; ]> + Full-featured cpuset manipulation commands + + + 2022-01-17 + + + + + + While basic shielding as described above is useful and a common use model for cset, there comes a time when more functionality @@ -29,7 +38,7 @@ The basic syntax of set for cpuset creation is: &prompt.user;cset set -c 1-3 -s my_cpuset1 -cset: --> created cpuset "my_cpuset1" +cset: --> created cpuset "my_cpuset1" This creates a cpuset named my_cpuset1 with a CPUSPEC of CPU1, CPU2 and CPU3. The CPUSPEC is the same concept as described in @@ -48,7 +57,7 @@ cset: --> created cpuset "my_cpuset1" omit CPU2), then issue the following command. &prompt.user;cset set -c 1,3 -s my_cpuset1 -cset: --> modified cpuset "my_cpuset +cset: --> modified cpuset "my_cpuset cset will then adjust the CPUs that are assigned to the my_cpuset1 set to only use CPU1 and CPU3. @@ -58,7 +67,7 @@ cset: --> modified cpuset "my_cpuset example: &prompt.user;cset set -s my_cpuset1 -n super_set -cset: --> renaming "/cpusets/my_cpuset1" to "super_set" +cset: --> renaming "/cpusets/my_cpuset1" to "super_set" Renames the cpuset called my_cpuset1 to super_set. @@ -68,8 +77,8 @@ cset: --> renaming "/cpusets/my_cpuset1" to "super_set" follows. &prompt.user;cset set -d super_set -cset: --> processing cpuset "super_set", moving 0 tasks to parent "/"... -cset: --> deleting cpuset "/super_set" +cset: --> processing cpuset "super_set", moving 0 tasks to parent "/"... +cset: --> deleting cpuset "/super_set" cset: done This command destroys the newly created cpuset called @@ -97,11 +106,11 @@ cset: done example: &prompt.user;cset set -c 1,3 -s top_set -cset: --> created cpuset "top_set" +cset: --> created cpuset "top_set" &prompt.user;cset set -c 3 -s /top_set/sub_set -cset: --> created cpuset "/top_set/sub_set" +cset: --> created cpuset "/top_set/sub_set" These commands created two cpusets: top_set and sub_set. The top_set uses CPU1 and @@ -112,7 +121,7 @@ cset: --> created cpuset "/top_set/sub_set" ask you to use the path. For example: &prompt.user;cset set -c 1,3 -s sub_set -cset: --> modified cpuset "sub_set +cset: --> modified cpuset "sub_set This command adds CPU1 to the sub_set cpuset for its use. Note that using the path in this case is optional. @@ -310,7 +319,7 @@ USER PID PPID SPPr TASK NAME cset: "two" cpuset of CPUSPEC(2) with 0 tasks running &prompt.user;cset proc -s two -e bash -cset: --> last message, executed args into cpuset "/two", new pid is: 20955 +cset: --> last message, executed args into cpuset "/two", new pid is: 20955 &prompt.user;cset proc -l -s two cset: "two" cpuset of CPUSPEC(2) with 2 tasks running @@ -373,8 +382,8 @@ root 21147 21118 Roth python ./cset proc -l two executed, the result may be puzzling. For example: &prompt.user;cset proc -s two -e blah-blah -cset: --> last message, executed args into cpuset "/two", new pid is: 21655 -cset: **> [Errno 2] No such file or directory +cset: --> last message, executed args into cpuset "/two", new pid is: 21655 +cset: **> [Errno 2] No such file or directory The result is no new process even though a new PID is output. The reason for the message is of course that the cset process @@ -610,7 +619,7 @@ three 3 n 0 n 10 0 /three &prompt.user;cset proc -k -f root -t two cset: moving all kernel threads from / to /two cset: moving 70 kernel threads to: /two -cset: --> not moving 76 threads (not unbound, use --force) +cset: --> not moving 76 threads (not unbound, use --force) [==================================================]% cset: done @@ -628,7 +637,7 @@ cset: done &prompt.user;cset proc -k -f two -t root cset: moving all kernel threads from /two to / cset: ** no task matched move criteria -cset: **> kernel tasks are bound, use --force if ok +cset: **> kernel tasks are bound, use --force if ok &prompt.user;cset set -l -s two @@ -730,11 +739,11 @@ cset: done &prompt.user;cset set -c 0 -s system -cset: --> created cpuset "system" +cset: --> created cpuset "system" &prompt.user;cset set -c 1-3 -s user -cset: --> created cpuset "user" +cset: --> created cpuset "user" &prompt.user;cset set -l @@ -780,7 +789,7 @@ system 0 n 0 n 187 0 /system &prompt.user;cset proc -k -f root -t system cset: moving all kernel threads from / to /system cset: moving 70 kernel threads to: /system -cset: --> not moving 76 threads (not unbound, use --force) +cset: --> not moving 76 threads (not unbound, use --force) [==================================================]% cset: done @@ -882,23 +891,23 @@ root 0-3 y 0 y 344 0 / &prompt.user;cset set -c 0-3 prio_all -cset: --> created cpuset "prio_all" +cset: --> created cpuset "prio_all" &prompt.user;cset set -c 1-3 /prio_all/prio_high -cset: --> created cpuset "/prio_all/prio_high" +cset: --> created cpuset "/prio_all/prio_high" &prompt.user;cset set -c 2-3 /prio_all/prio_high/prio_med -cset: --> created cpuset "/prio_all/prio_high/prio_med" +cset: --> created cpuset "/prio_all/prio_high/prio_med" &prompt.user;cset set -c 3 /prio_all/prio_high/prio_med/prio_low -cset: --> created cpuset "/prio_all/prio_high/prio_med/prio_low" +cset: --> created cpuset "/prio_all/prio_high/prio_med/prio_low" &prompt.user;cset set -c 0 system -cset: --> created cpuset "system" +cset: --> created cpuset "system" &prompt.user;cset set -l -r @@ -932,7 +941,7 @@ prio_low 3 n 0 n 0 0 /prio_all/pr...rio_med/prio_low not moving 76 threads (not unbound, use --force) +cset: --> not moving 76 threads (not unbound, use --force) [==================================================]% cset: done diff --git a/xml/slert_gettinghelp.xml b/xml/slert_gettinghelp.xml index bdad043..eecfb43 100644 --- a/xml/slert_gettinghelp.xml +++ b/xml/slert_gettinghelp.xml @@ -1,12 +1,20 @@ - - + %entities; ]> + What to do if there are problems - + + + 2021-07-27 + + + + + + If you encounter any issues with the cset application, you can file a bug report here: diff --git a/xml/slert_intro.xml b/xml/slert_intro.xml index 7e1dad8..420e744 100644 --- a/xml/slert_intro.xml +++ b/xml/slert_intro.xml @@ -1,11 +1,20 @@ - - + %entities; ]> + Introduction + + + 2021-07-27 + + + + + + In the Linux kernel, the cpuset facility provides a mechanism for creating logical entities called cpusets that encompass definitions diff --git a/xml/slert_shielding_model.xml b/xml/slert_shielding_model.xml index f37fdae..2dec88f 100644 --- a/xml/slert_shielding_model.xml +++ b/xml/slert_shielding_model.xml @@ -1,15 +1,20 @@ - - + %entities; ]> - + The basic shielding model - + + + 2022-01-17 + + + + + + Although any setup of &cpuset;s can really be described as shielding, there is one prevalent shielding model in @@ -109,7 +114,7 @@ processing, issue the following command. &prompt.user;cset shield -c 1-3 -cset: --> activating shielding: +cset: --> activating shielding: cset: moving 176 tasks from root into system cpuset... [==================================================]% cset: "system" cpuset of CPUSPEC(0) with 176 tasks running @@ -140,7 +145,7 @@ cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running the current status of the shield again, issue this command: &prompt.user;cset shield -cset: --> shielding system active with +cset: --> shielding system active with cset: "system" cpuset of CPUSPEC(0) with 176 tasks running cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running @@ -181,21 +186,20 @@ cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running system set with the following command. &prompt.user;cset shield -k on -cset: --> activating kthread shielding +cset: --> activating kthread shielding cset: kthread shield activated, moving 70 tasks into system cpuset... [==================================================]% cset: done You can see that this moved an additional 70 tasks to the unshielded - system &cpuset;. Note that the / parameter can be given at the shield's + system &cpuset;. Note that the / parameter can be given at the shield's creation time. You do not need to perform these two steps separately if you know you will want kernel thread shielding as well. Executing cset shield again shows us the current state of the shield. &prompt.user;cset shield -cset: --> shielding system active with +cset: --> shielding system active with cset: "system" cpuset of CPUSPEC(0) with 246 tasks running cset: "user" cpuset of CPUSPEC(1-3) with 0 tasks running @@ -238,7 +242,7 @@ root 32653 25222 Roth python ./cset shield --unshield -v access to all resources on the system. For example: &prompt.user;cset shield --reset -cset: --> deactivating/reseting shielding +cset: --> deactivating/reseting shielding cset: moving 0 tasks from "/user" user set to root set... cset: moving 250 tasks from "/system" system set to root set... [==================================================]% @@ -281,7 +285,7 @@ cset: done &prompt.user;cset shield -e bash -cset: --> last message, executed args into cpuset "/user", new pid is: 13300 +cset: --> last message, executed args into cpuset "/user", new pid is: 13300 &prompt.user;cset shield -s -v @@ -350,7 +354,7 @@ cset: done and options for execution as follows. &prompt.user;cset shield --user=&exampleuser; --group=users -e bash -cset: --> last message, executed args into cpuset "/user", new pid is: 14212 +cset: --> last message, executed args into cpuset "/user", new pid is: 14212 &prompt.user;cset shield -s -v @@ -439,7 +443,7 @@ USER PID PPID SPPr TASK NAME &prompt.user;cset shield -s -p 22010-22020 -cset: --> shielding following pidspec: 22010-22020 +cset: --> shielding following pidspec: 22010-22020 cset: done @@ -453,7 +457,7 @@ cset: done &prompt.user;cset shield -u -p $$ -cset: --> unshielding following pidspec: 22018 +cset: --> unshielding following pidspec: 22018 cset: done diff --git a/xml/slert_usingshortcuts.xml b/xml/slert_usingshortcuts.xml index 8ffb7d3..f6d4541 100644 --- a/xml/slert_usingshortcuts.xml +++ b/xml/slert_usingshortcuts.xml @@ -1,11 +1,20 @@ - - + %entities; ]> + Using shortcuts + + + 2022-01-17 + + + + + + The commands listed in the previous sections always used all the required options. However, cset does have a shortcut facility @@ -251,12 +260,12 @@ cset se -d myset yourset ourset ---> destroys cpusets: myset, yourset and ourset +--> destroys cpusets: myset, yourset and ourset cset se -l prio_high prio_med prio_low ---> lists only cpusets prio_high, prio_med and prio_low ---> the -l is optional in this case since list is default +--> lists only cpusets prio_high, prio_med and prio_low +--> the -l is optional in this case since list is default <command>proc</command> subcommand shortcuts