Tsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/pt_BR/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/tools/rtla/rtla-osnoise-topmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsubstitution_definition)}(h .. |tool| replace:: osnoise top h]h osnoise top}hhsbah}(h]h ]h"]toolah$]h&]uh1hhI/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-osnoise-top.rsthKhhhhubhsection)}(hhh](htitle)}(hrtla-osnoise-toph]hrtla-osnoise-top}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h/Display a summary of the operating system noiseh]h/Display a summary of the operating system noise}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh field_list)}(hhh]hfield)}(hhh](h field_name)}(hManual sectionh]hManual section}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h1 h]h paragraph)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK hj ubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSYNOPSISh]hSYNOPSIS}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhK ubj)}(h **rtla osnoise top** [*OPTIONS*]h](hstrong)}(h**rtla osnoise top**h]hrtla osnoise top}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj@ubh [}(hj@hhhNhNubhemphasis)}(h *OPTIONS*h]hOPTIONS}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj@ubh]}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhj/hhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h DESCRIPTIONh]h DESCRIPTION}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhKubj)}(hXThe **rtla osnoise** tool is an interface for the *osnoise* tracer. The *osnoise* tracer dispatches a kernel thread per-cpu. These threads read the time in a loop while with preemption, softirq and IRQs enabled, thus allowing all the sources of operating system noise during its execution. The *osnoise*'s tracer threads take note of the delta between each time read, along with an interference counter of all sources of interference. At the end of each period, the *osnoise* tracer displays a summary of the results.h](hThe }(hjhhhNhNubjE)}(h**rtla osnoise**h]h rtla osnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh tool is an interface for the }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh tracer. The }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh tracer dispatches a kernel thread per-cpu. These threads read the time in a loop while with preemption, softirq and IRQs enabled, thus allowing all the sources of operating system noise during its execution. The }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh’s tracer threads take note of the delta between each time read, along with an interference counter of all sources of interference. At the end of each period, the }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh* tracer displays a summary of the results.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j h7Documentation/tools/rtla/common_osnoise_description.txthKhjzhhubj)}(h**rtla osnoise top** collects the periodic summary from the *osnoise* tracer, including the counters of the occurrence of the interference source, displaying the results in a user-friendly format.h](jE)}(h**rtla osnoise top**h]hrtla osnoise top}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh( collects the periodic summary from the }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh tracer, including the counters of the occurrence of the interference source, displaying the results in a user-friendly format.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhjzhhubj)}(hiThe tool also allows many configurations of the *osnoise* tracer and the collection of the tracer output.h](h0The tool also allows many configurations of the }(hj"hhhNhNubjY)}(h *osnoise*h]hosnoise}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj"ubh0 tracer and the collection of the tracer output.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhjzhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOPTIONSh]hOPTIONS}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhhhhhKubh)}(hN.. |threshold| replace:: **-a/--auto**, **-s/--stop**, or **-S/--stop-total**h](jE)}(h **-a/--auto**h]h -a/--auto}hj_sbah}(h]h ]h"]h$]h&]uh1jDhj[ubh, }hj[sbjE)}(h **-s/--stop**h]h -s/--stop}hjqsbah}(h]h ]h"]h$]h&]uh1jDhj[ubh, or }hj[sbjE)}(h**-S/--stop-total**h]h-S/--stop-total}hjsbah}(h]h ]h"]h$]h&]uh1jDhj[ubeh}(h]h ]h"] thresholdah$]h&]uh1hh3Documentation/tools/rtla/common_osnoise_options.txthKhjJhhubh)}(h.. |thresharg| replace:: -sh]h-s}hjsbah}(h]h ]h"] threshargah$]h&]uh1hhjhKhjJhhubh)}(h".. |tracer| replace:: osnoise h]hosnoise}hjsbah}(h]h ]h"]tracerah$]h&]uh1hhjhKhjJhhubh)}(h.. |actionsperf| replace:: Due to implementational limitations, actions might be delayed up to one second after tracing is stopped. h]hhDue to implementational limitations, actions might be delayed up to one second after tracing is stopped.}hjsbah}(h]h ]h"] actionsperfah$]h&]uh1hhjhKhjJhhubj)}(h**-a**, **--auto** *us*h](jE)}(h**-a**h]h-a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h **--auto**h]h--auto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hjhK hjJhhubh block_quote)}(hSet the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use **-s** *us* **-T 1 -t**. h]j)}(hSet the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use **-s** *us* **-T 1 -t**.h](h|Set the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use }(hjhhhNhNubjE)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh }hjsbjE)}(h **-T 1 -t**h]h-T 1 -t}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK hjubah}(h]h ]h"]h$]h&]uh1jhjhK hjJhhubj)}(h**-p**, **--period** *us*h](jE)}(h**-p**h]h-p}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjRubh, }(hjRhhhNhNubjE)}(h **--period**h]h--period}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjRubh }(hjRhhhNhNubjY)}(h*us*h]hus}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjRubeh}(h]h ]h"]h$]h&]uh1j hjhKhjJhhubj)}(h1Set the *osnoise* tracer period in microseconds. h]j)}(h0Set the *osnoise* tracer period in microseconds.h](hSet the }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh tracer period in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjJhhubj)}(h**-r**, **--runtime** *us*h](jE)}(h**-r**h]h-r}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h **--runtime**h]h --runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjJhhubj)}(h2Set the *osnoise* tracer runtime in microseconds. h]j)}(h1Set the *osnoise* tracer runtime in microseconds.h](hSet the }(hjhhhNhNubjY)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh tracer runtime in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjJhhubj)}(h**-s**, **--stop** *us*h](jE)}(h**-s**h]h-s}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h **--stop**h]h--stop}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjJhhubj)}(hStop the trace if a single sample is higher than the argument in microseconds. If **-T** is set, it will also save the trace to the output. h]j)}(hStop the trace if a single sample is higher than the argument in microseconds. If **-T** is set, it will also save the trace to the output.h](hRStop the trace if a single sample is higher than the argument in microseconds. If }(hj^hhhNhNubjE)}(h**-T**h]h-T}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj^ubh3 is set, it will also save the trace to the output.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjZubah}(h]h ]h"]h$]h&]uh1jhjhKhjJhhubj)}(h**-S**, **--stop-total** *us*h](jE)}(h**-S**h]h-S}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h**--stop-total**h]h --stop-total}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjJhhubj)}(hStop the trace if the total sample is higher than the argument in microseconds. If **-T** is set, it will also save the trace to the output. h]j)}(hStop the trace if the total sample is higher than the argument in microseconds. If **-T** is set, it will also save the trace to the output.h](hSStop the trace if the total sample is higher than the argument in microseconds. If }(hjhhhNhNubjE)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjJhhubj)}(h**-T**, **--threshold** *us*h](jE)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h**--threshold**h]h --threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hjhK hjJhhubj)}(hjSpecify the minimum delta between two time reads to be considered noise. The default threshold is *5 us*. h]j)}(hiSpecify the minimum delta between two time reads to be considered noise. The default threshold is *5 us*.h](hbSpecify the minimum delta between two time reads to be considered noise. The default threshold is }(hj*hhhNhNubjY)}(h*5 us*h]h5 us}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj*ubh.}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK"hj&ubah}(h]h ]h"]h$]h&]uh1jhjhK"hjJhhubj)}(h**-t**, **--trace** \[*file*]h](jE)}(h**-t**h]h-t}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubh, }(hjPhhhNhNubjE)}(h **--trace**h]h--trace}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubh [}(hjPhhhNhNubjY)}(h*file*h]hfile}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjPubh]}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK%hjJhhubj)}(h6Save the stopped trace to [*file|osnoise_trace.txt*]. h]j)}(h5Save the stopped trace to [*file|osnoise_trace.txt*].h](hSave the stopped trace to [}(hjhhhNhNubjY)}(h*file|osnoise_trace.txt*h]hfile|osnoise_trace.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh].}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK'hjubah}(h]h ]h"]h$]h&]uh1jhjhK'hjJhhubj)}(h**-q**, **--quiet**h](jE)}(h**-q**h]h-q}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h **--quiet**h]h--quiet}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubeh}(h]h ]h"]h$]h&]uh1j h/Documentation/tools/rtla/common_top_options.txthKhjJhhubj)}(h0Print only a summary at the end of the session. h]j)}(h/Print only a summary at the end of the session.h]h/Print only a summary at the end of the session.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjJhhubj)}(h**-c**, **--cpus** *cpu-list*h](jE)}(h**-c**h]h-c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h **--cpus**h]h--cpus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h *cpu-list*h]hcpu-list}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j h+Documentation/tools/rtla/common_options.txthKhjJhhubj)}(hSet the |tool| tracer to run the sample threads in the cpu-list. By default, the |tool| tracer runs the sample threads on all CPUs. h](j)}(h@Set the |tool| tracer to run the sample threads in the cpu-list.h](hSet the }(hj>hhhNhNubh osnoise top}(hj>hhhNhNubh2 tracer to run the sample threads in the cpu-list.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKhj:ubj)}(hBBy default, the |tool| tracer runs the sample threads on all CPUs.h](hBy default, the }(hjThhhNhNubh osnoise top}(hjThhhNhNubh, tracer runs the sample threads on all CPUs.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKhj:ubeh}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubj)}(h&**-H**, **--house-keeping** *cpu-list*h](jE)}(h**-H**h]h-H}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjpubh, }(hjphhhNhNubjE)}(h**--house-keeping**h]h--house-keeping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjpubh }(hjphhhNhNubjY)}(h *cpu-list*h]hcpu-list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjpubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjJhhubj)}(hRun rtla control threads only on the given cpu-list. If omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads. h](j)}(h4Run rtla control threads only on the given cpu-list.h]h4Run rtla control threads only on the given cpu-list.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK hjubj)}(hrIf omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads.h]hrIf omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK hjubeh}(h]h ]h"]h$]h&]uh1jhj9hK hjJhhubj)}(h&**-d**, **--duration** *time[s|m|h|d]*h](jE)}(h**-d**h]h-d}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh, }(hjhhhNhNubjE)}(h**--duration**h]h --duration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*time[s|m|h|d]*h]h time[s|m|h|d]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hj9hK hjJhhubj)}(h!Set the duration of the session. h]j)}(h Set the duration of the session.h]h Set the duration of the session.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKhjubah}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubj)}(h**-D**, **--debug**h](jE)}(h**-D**h]h-D}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj&ubh, }(hj&hhhNhNubjE)}(h **--debug**h]h--debug}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj&ubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjJhhubj)}(hPrint debug info. h]j)}(hPrint debug info.h]hPrint debug info.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKhjPubah}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubj)}(h**-e**, **--event** *sys:event*h](jE)}(h**-e**h]h-e}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjhubh, }(hjhhhhNhNubjE)}(h **--event**h]h--event}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjhubh }(hjhhhhNhNubjY)}(h *sys:event*h]h sys:event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjhubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjJhhubj)}(hEnable an event in the trace (**-t**) session. The argument can be a specific event, e.g., **-e** *sched:sched_switch*, or all events of a system group, e.g., **-e** *sched*. Multiple **-e** are allowed. It is only active when **-t** or **-a** are set. h]j)}(hEnable an event in the trace (**-t**) session. The argument can be a specific event, e.g., **-e** *sched:sched_switch*, or all events of a system group, e.g., **-e** *sched*. Multiple **-e** are allowed. It is only active when **-t** or **-a** are set.h](hEnable an event in the trace (}(hjhhhNhNubjE)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh7) session. The argument can be a specific event, e.g., }(hjhhhNhNubjE)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*sched:sched_switch*h]hsched:sched_switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh), or all events of a system group, e.g., }(hjhhhNhNubjE)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }hjsbjY)}(h*sched*h]hsched}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh . Multiple }(hjhhhNhNubjE)}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh% are allowed. It is only active when }(hjhhhNhNubjE)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh or }(hjhhhNhNubjE)}(h**-a**h]h-a}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh are set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjubah}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubj)}(h**--filter** **h](jE)}(h **--filter**h]h--filter}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjLubh }(hjLhhhNhNubjY)}(h **h]h}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjLubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjJhhubj)}(hFilter the previous **-e** *sys:event* event with **. For further information about event filtering see https://www.kernel.org/doc/html/latest/trace/events.html#event-filtering. h]j)}(hFilter the previous **-e** *sys:event* event with **. For further information about event filtering see https://www.kernel.org/doc/html/latest/trace/events.html#event-filtering.h](hFilter the previous }(hjzhhhNhNubjE)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjzubh }(hjzhhhNhNubjY)}(h *sys:event*h]h sys:event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjzubh event with }(hjzhhhNhNubjY)}(h **h]h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjzubh4. For further information about event filtering see }(hjzhhhNhNubh reference)}(hHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filteringh]hHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filtering}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjzubh.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjvubah}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hXj**--trigger** ** Enable a trace event trigger to the previous **-e** *sys:event*. If the *hist:* trigger is activated, the output histogram will be automatically saved to a file named *system_event_hist.txt*. For example, the command: rtla -t -e osnoise:irq_noise --trigger="hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount" Will automatically save the content of the histogram associated to *osnoise:irq_noise* event in *osnoise_irq_noise_hist.txt*. For further information about event trigger see https://www.kernel.org/doc/html/latest/trace/events.html#event-triggers. h](hterm)}(h**--trigger** **h](jE)}(h **--trigger**h]h --trigger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h **h]h }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1jhj9hK&hjubh definition)}(hhh](j)}(hEnable a trace event trigger to the previous **-e** *sys:event*. If the *hist:* trigger is activated, the output histogram will be automatically saved to a file named *system_event_hist.txt*. For example, the command:h](h-Enable a trace event trigger to the previous }(hj hhhNhNubjE)}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh }(hj hhhNhNubjY)}(h *sys:event*h]h sys:event}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh . If the }(hj hhhNhNubjY)}(h*hist:*h]hhist:}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubhX trigger is activated, the output histogram will be automatically saved to a file named }(hj hhhNhNubjY)}(h*system_event_hist.txt*h]hsystem_event_hist.txt}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh. For example, the command:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKhj ubj)}(h{rtla -t -e osnoise:irq_noise --trigger="hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount"h]hrtla -t -e osnoise:irq_noise --trigger=”hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount”}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK"hj ubj)}(h}Will automatically save the content of the histogram associated to *osnoise:irq_noise* event in *osnoise_irq_noise_hist.txt*.h](hCWill automatically save the content of the histogram associated to }(hjy hhhNhNubjY)}(h*osnoise:irq_noise*h]hosnoise:irq_noise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjy ubh event in }(hjy hhhNhNubjY)}(h*osnoise_irq_noise_hist.txt*h]hosnoise_irq_noise_hist.txt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjy ubh.}(hjy hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK$hj ubj)}(hxFor further information about event trigger see https://www.kernel.org/doc/html/latest/trace/events.html#event-triggers.h](h0For further information about event trigger see }(hj hhhNhNubj)}(hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggersh]hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggers}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK&hj ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhj9hK&hjubah}(h]h ]h"]h$]h&]uh1jhjJhhhj9hNubj)}(h>**-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period*h](jE)}(h**-P**h]h-P}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh, }(hj hhhNhNubjE)}(h**--priority**h]h --priority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh }(hj hhhNhNubjY)}(h'*o:prio|r:prio|f:prio|d:runtime:period*h]h%o:prio|r:prio|f:prio|d:runtime:period}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubeh}(h]h ]h"]h$]h&]uh1j hj9hK(hjJhhubj)}(hXSet scheduling parameters to the |tool| tracer threads, the format to set the priority are: - *o:prio* - use SCHED_OTHER with *prio*; - *r:prio* - use SCHED_RR with *prio*; - *f:prio* - use SCHED_FIFO with *prio*; - *d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. If not set, tracer threads keep their default priority. For rtla user threads, it is set to SCHED_FIFO with priority 95. For kernel threads, see *osnoise* and *timerlat* tracer documentation for the running kernel version. h](j)}(h[Set scheduling parameters to the |tool| tracer threads, the format to set the priority are:h](h!Set scheduling parameters to the }(hj hhhNhNubh osnoise top}(hj hhhNhNubh4 tracer threads, the format to set the priority are:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK*hj ubh bullet_list)}(hhh](h list_item)}(h'*o:prio* - use SCHED_OTHER with *prio*;h]j)}(hj= h](jY)}(h*o:prio*h]ho:prio}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj? ubh - use SCHED_OTHER with }(hj? hhhNhNubjY)}(h*prio*h]hprio}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj? ubh;}(hj? hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK,hj; ubah}(h]h ]h"]h$]h&]uh1j9 hj6 ubj: )}(h$*r:prio* - use SCHED_RR with *prio*;h]j)}(hjt h](jY)}(h*r:prio*h]hr:prio}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjv ubh - use SCHED_RR with }(hjv hhhNhNubjY)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjv ubh;}(hjv hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK-hjr ubah}(h]h ]h"]h$]h&]uh1j9 hj6 ubj: )}(h&*f:prio* - use SCHED_FIFO with *prio*;h]j)}(hj h](jY)}(h*f:prio*h]hf:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh - use SCHED_FIFO with }(hj hhhNhNubjY)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK.hj ubah}(h]h ]h"]h$]h&]uh1j9 hj6 ubj: )}(hf*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. h]j)}(he*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds.h](jY)}(h$*d:runtime[us|ms|s]:period[us|ms|s]*h]h"d:runtime[us|ms|s]:period[us|ms|s]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh - use SCHED_DEADLINE with }(hj hhhNhNubjY)}(h *runtime*h]hruntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh and }(hj hhhNhNubjY)}(h*period*h]hperiod}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh in nanoseconds.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK/hj ubah}(h]h ]h"]h$]h&]uh1j9 hj6 ubeh}(h]h ]h"]h$]h&]bullet-uh1j4 hj9hK,hj ubj)}(hIf not set, tracer threads keep their default priority. For rtla user threads, it is set to SCHED_FIFO with priority 95. For kernel threads, see *osnoise* and *timerlat* tracer documentation for the running kernel version.h](hIf not set, tracer threads keep their default priority. For rtla user threads, it is set to SCHED_FIFO with priority 95. For kernel threads, see }(hj2 hhhNhNubjY)}(h *osnoise*h]hosnoise}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj2 ubh and }(hj2 hhhNhNubjY)}(h *timerlat*h]htimerlat}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj2 ubh5 tracer documentation for the running kernel version.}(hj2 hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK1hj ubeh}(h]h ]h"]h$]h&]uh1jhj9hK*hjJhhubj)}(h **-C**, **--cgroup** \[*cgroup*]h](jE)}(h**-C**h]h-C}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjj ubh, }(hjj hhhNhNubjE)}(h **--cgroup**h]h--cgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjj ubh [}(hjj hhhNhNubjY)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjj ubh]}(hjj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK3hjJhhubj)}(hXSet a *cgroup* to the tracer's threads. If the **-C** option is passed without arguments, the tracer's thread will inherit **rtla**'s *cgroup*. Otherwise, the threads will be placed on the *cgroup* passed to the option. If not set, the behavior differs between workload types. User workloads created by rtla will inherit rtla's cgroup. Kernel workloads are assigned the root cgroup. h](j)}(hSet a *cgroup* to the tracer's threads. If the **-C** option is passed without arguments, the tracer's thread will inherit **rtla**'s *cgroup*. Otherwise, the threads will be placed on the *cgroup* passed to the option.h](hSet a }(hj hhhNhNubjY)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh# to the tracer’s threads. If the }(hj hhhNhNubjE)}(h**-C**h]h-C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubhH option is passed without arguments, the tracer’s thread will inherit }(hj hhhNhNubjE)}(h**rtla**h]hrtla}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh’s }(hj hhhNhNubjY)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh/. Otherwise, the threads will be placed on the }(hj hhhNhNubjY)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubh passed to the option.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK5hj ubj)}(hIf not set, the behavior differs between workload types. User workloads created by rtla will inherit rtla's cgroup. Kernel workloads are assigned the root cgroup.h]hIf not set, the behavior differs between workload types. User workloads created by rtla will inherit rtla’s cgroup. Kernel workloads are assigned the root cgroup.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK7hj ubeh}(h]h ]h"]h$]h&]uh1jhj9hK5hjJhhubj)}(h**--warm-up** *s*h](jE)}(h **--warm-up**h]h --warm-up}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj* ubh }(hj* hhhNhNubjY)}(h*s*h]hs}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj* ubeh}(h]h ]h"]h$]h&]uh1j hj9hK9hjJhhubj)}(hAfter starting the workload, let it run for *s* seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded. h]j)}(hAfter starting the workload, let it run for *s* seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.h](h,After starting the workload, let it run for }(hjX hhhNhNubjY)}(h*s*h]hs}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjX ubh seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.}(hjX hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK;hjT ubah}(h]h ]h"]h$]h&]uh1jhj9hK;hjJhhubj)}(hhh]j)}(h**--trace-buffer-size** *kB* Set the per-cpu trace buffer size in kB for the tracing output. If not set, the default tracefs buffer size is used. h](j)}(h**--trace-buffer-size** *kB*h](jE)}(h**--trace-buffer-size**h]h--trace-buffer-size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh }(hj hhhNhNubjY)}(h*kB*h]hkB}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubeh}(h]h ]h"]h$]h&]uh1jhj9hK@hj ubj )}(hhh](j)}(h?Set the per-cpu trace buffer size in kB for the tracing output.h]h?Set the per-cpu trace buffer size in kB for the tracing output.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK>hj ubj)}(h4If not set, the default tracefs buffer size is used.h]h4If not set, the default tracefs buffer size is used.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK@hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jhj9hK@hj~ ubah}(h]h ]h"]h$]h&]uh1jhjJhhhj9hNubj)}(h**--on-threshold** *action*h](jE)}(h**--on-threshold**h]h--on-threshold}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj ubh }(hj hhhNhNubjY)}(h*action*h]haction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubeh}(h]h ]h"]h$]h&]uh1j hj9hKBhjJhhubj)}(hXDefines an action to be executed when tracing is stopped on a latency threshold specified by |threshold|. Multiple --on-threshold actions may be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed. Supported actions are: - *trace[,file=]* Saves trace output, optionally taking a filename. Alternative to -t/--trace. Note that unlike -t/--trace, specifying this multiple times will result in the trace being saved multiple times. - *signal,num=,pid=* Sends signal to process. "parent" might be specified in place of pid to target the parent process of rtla. - *shell,command=* Execute shell command. - *continue* Continue tracing after actions are executed instead of stopping. Example: $ rtla |tool| |thresharg| 20 --on-threshold trace --on-threshold shell,command="grep ipi_send |tracer|\_trace.txt" --on-threshold signal,num=2,pid=parent This will save a trace with the default filename "|tracer|\_trace.txt", print its lines that contain the text "ipi_send" on standard output, and send signal 2 (SIGINT) to the parent process. Performance Considerations: |actionsperf| h](j)}(hiDefines an action to be executed when tracing is stopped on a latency threshold specified by |threshold|.h](h]Defines an action to be executed when tracing is stopped on a latency threshold specified by }(hj hhhNhNubjE)}(hjah]h -a/--auto}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhNhNhj hhubh, }(hj hhhNhNubjE)}(hjsh]h -s/--stop}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhNhNhj hhubh, or }(hj hhhNhNubjE)}(hjh]h-S/--stop-total}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jDhNhNhj hhubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKDhj ubj)}(hMultiple --on-threshold actions may be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed.h]hMultiple --on-threshold actions may be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKGhj ubj)}(hSupported actions are:h]hSupported actions are:}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKKhj ubj5 )}(hhh](j: )}(h*trace[,file=]* Saves trace output, optionally taking a filename. Alternative to -t/--trace. Note that unlike -t/--trace, specifying this multiple times will result in the trace being saved multiple times. h](j)}(h*trace[,file=]*h]jY)}(hjt h]htrace[,file=]}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjr ubah}(h]h ]h"]h$]h&]uh1j hj9hKMhjn ubj)}(hSaves trace output, optionally taking a filename. Alternative to -t/--trace. Note that unlike -t/--trace, specifying this multiple times will result in the trace being saved multiple times.h]hSaves trace output, optionally taking a filename. Alternative to -t/--trace. Note that unlike -t/--trace, specifying this multiple times will result in the trace being saved multiple times.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKOhjn ubeh}(h]h ]h"]h$]h&]uh1j9 hjk ubj: )}(h*signal,num=,pid=* Sends signal to process. "parent" might be specified in place of pid to target the parent process of rtla. h](j)}(h*signal,num=,pid=*h]jY)}(hj h]hsignal,num=,pid=}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubah}(h]h ]h"]h$]h&]uh1j hj9hKShj ubj)}(hjSends signal to process. "parent" might be specified in place of pid to target the parent process of rtla.h]hnSends signal to process. “parent” might be specified in place of pid to target the parent process of rtla.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKUhj ubeh}(h]h ]h"]h$]h&]uh1j9 hjk ubj: )}(h2*shell,command=* Execute shell command. h](j)}(h*shell,command=*h]jY)}(hj h]hshell,command=}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubah}(h]h ]h"]h$]h&]uh1j hj9hKXhj ubj)}(hExecute shell command.h]hExecute shell command.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKZhj ubeh}(h]h ]h"]h$]h&]uh1j9 hjk ubj: )}(hM*continue* Continue tracing after actions are executed instead of stopping. h](j)}(h *continue*h]jY)}(hjh]hcontinue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj ubah}(h]h ]h"]h$]h&]uh1j hj9hK\hj ubj)}(h@Continue tracing after actions are executed instead of stopping.h]h@Continue tracing after actions are executed instead of stopping.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK^hj ubeh}(h]h ]h"]h$]h&]uh1j9 hjk ubeh}(h]h ]h"]h$]h&]j0 j1 uh1j4 hj9hKMhj ubj)}(hExample:h]hExample:}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK`hj ubj)}(h$ rtla |tool| |thresharg| 20 --on-threshold trace --on-threshold shell,command="grep ipi_send |tracer|\_trace.txt" --on-threshold signal,num=2,pid=parenth](h$ rtla }(hj>hhhNhNubh osnoise top}(hj>hhhNhNubh }(hj>hhhNhNubh-s}(hj>hhhNhNubhG 20 --on-threshold trace --on-threshold shell,command=”grep ipi_send }(hj>hhhNhNubhosnoise}(hj>hhhNhNubh5_trace.txt” --on-threshold signal,num=2,pid=parent}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKbhj ubj)}(hThis will save a trace with the default filename "|tracer|\_trace.txt", print its lines that contain the text "ipi_send" on standard output, and send signal 2 (SIGINT) to the parent process.h](h4This will save a trace with the default filename “}(hjdhhhNhNubhosnoise}(hjdhhhNhNubh_trace.txt”, print its lines that contain the text “ipi_send” on standard output, and send signal 2 (SIGINT) to the parent process.}(hjdhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKfhj ubj)}(hPerformance Considerations:h]hPerformance Considerations:}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKjhj ubj)}(h |actionsperf|h]hhDue to implementational limitations, actions might be delayed up to one second after tracing is stopped.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKlhj ubeh}(h]h ]h"]h$]h&]uh1jhj9hKDhjJhhubj)}(h**--on-end** *action*h](jE)}(h **--on-end**h]h--on-end}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh }(hjhhhNhNubjY)}(h*action*h]haction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubeh}(h]h ]h"]h$]h&]uh1j hj9hKnhjJhhubj)}(hXDefines an action to be executed at the end of tracing. Multiple --on-end actions can be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed. See the documentation for **--on-threshold** for the list of supported actions, with the exception that *continue* has no effect. Example: $ rtla |tool| -d 5s --on-end trace This runs rtla with the default options, and saves trace output at the end. h](j)}(h7Defines an action to be executed at the end of tracing.h]h7Defines an action to be executed at the end of tracing.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKphjubj)}(hMultiple --on-end actions can be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed.h]hMultiple --on-end actions can be specified, and they will be executed in the order they are provided. If any action fails, subsequent actions in the list will not be executed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKrhjubj)}(hSee the documentation for **--on-threshold** for the list of supported actions, with the exception that *continue* has no effect.h](hSee the documentation for }(hjhhhNhNubjE)}(h**--on-threshold**h]h--on-threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh< for the list of supported actions, with the exception that }(hjhhhNhNubjY)}(h *continue*h]hcontinue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh has no effect.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hKvhjubj)}(hExample:h]hExample:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKyhjubj)}(h"$ rtla |tool| -d 5s --on-end traceh](h$ rtla }(hj&hhhNhNubh osnoise top}(hj&hhhNhNubh -d 5s --on-end trace}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj9hK{hjubj)}(hKThis runs rtla with the default options, and saves trace output at the end.h]hKThis runs rtla with the default options, and saves trace output at the end.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hK}hjubeh}(h]h ]h"]h$]h&]uh1jhj9hKphjJhhubj)}(h**-h**, **--help**h](jE)}(h**-h**h]h-h}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubh, }(hjPhhhNhNubjE)}(h **--help**h]h--help}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubeh}(h]h ]h"]h$]h&]uh1j hj9hKhjJhhubj)}(hPrint help menu. h]j)}(hPrint help menu.h]hPrint help menu.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9hKhjzubah}(h]h ]h"]h$]h&]uh1jhj9hKhjJhhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEXAMPLEh]hEXAMPLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK$ubj)}(hXZIn the example below, the **rtla osnoise top** tool is set to run with a real-time priority *FIFO:1*, on CPUs *0-3*, for *900ms* at each period (*1s* by default). The reason for reducing the runtime is to avoid starving the rtla tool. The tool is also set to run for *one minute* and to display a summary of the report at the end of the session::h](hIn the example below, the }(hjhhhNhNubjE)}(h**rtla osnoise top**h]hrtla osnoise top}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh. tool is set to run with a real-time priority }(hjhhhNhNubjY)}(h*FIFO:1*h]hFIFO:1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh , on CPUs }(hjhhhNhNubjY)}(h*0-3*h]h0-3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh, for }(hjhhhNhNubjY)}(h*900ms*h]h900ms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubh at each period (}(hjhhhNhNubjY)}(h*1s*h]h1s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubhv by default). The reason for reducing the runtime is to avoid starving the rtla tool. The tool is also set to run for }(hjhhhNhNubjY)}(h *one minute*h]h one minute}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jXhjubhB and to display a summary of the report at the end of the session:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhK%hjhhubh literal_block)}(hX\[root@f34 ~]# rtla osnoise top -P F:1 -c 0-3 -r 900000 -d 1M -q Operating System Noise duration: 0 00:01:00 | time is in us CPU Period Runtime Noise % CPU Aval Max Noise Max Single HW NMI IRQ Softirq Thread 0 #59 53100000 304896 99.42580 6978 56 549 0 53111 1590 13 1 #59 53100000 338339 99.36282 8092 24 399 0 53130 1448 31 2 #59 53100000 290842 99.45227 6582 39 855 0 53110 1406 12 3 #59 53100000 204935 99.61405 6251 33 290 0 53156 1460 12h]hX\[root@f34 ~]# rtla osnoise top -P F:1 -c 0-3 -r 900000 -d 1M -q Operating System Noise duration: 0 00:01:00 | time is in us CPU Period Runtime Noise % CPU Aval Max Noise Max Single HW NMI IRQ Softirq Thread 0 #59 53100000 304896 99.42580 6978 56 549 0 53111 1590 13 1 #59 53100000 338339 99.36282 8092 24 399 0 53130 1448 31 2 #59 53100000 290842 99.45227 6582 39 855 0 53110 1406 12 3 #59 53100000 204935 99.61405 6251 33 290 0 53156 1460 12}hj'sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1j%hhhK+hjhhubeh}(h]exampleah ]h"]exampleah$]h&]uh1hhhhhhhhK$ubh)}(hhh](h)}(hSEE ALSOh]hSEE ALSO}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhK5ubj)}(h/**rtla-osnoise**\(1), **rtla-osnoise-hist**\(1)h](jE)}(h**rtla-osnoise**h]h rtla-osnoise}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubh(1), }(hjPhhhNhNubjE)}(h**rtla-osnoise-hist**h]hrtla-osnoise-hist}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjPubh(1)}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhK7hj?hhubj)}(hF`Osnoise tracer `__h]j)}(hjh]hOsnoise tracer}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameOsnoise tracerrefuri1https://docs.kernel.org/trace/osnoise-tracer.htmluh1jhj~ubah}(h]h ]h"]h$]h&]uh1j hhhK9hj?hhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhK5ubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKh](h'Written by Daniel Bristot de Oliveira <}(hjhhhNhNubj)}(hbristot@kernel.orgh]hbristot@kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bristot@kernel.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhK=hjhhubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hjsbah}(h]h ]h"]h$]h&]j5j6uh1jhjhhh,Documentation/tools/rtla/common_appendix.txthKubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhK and h](hReport bugs to <}(hjhhhNhNubj)}(hlinux-kernel@vger.kernel.orgh]hlinux-kernel@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri#mailto:linux-kernel@vger.kernel.orguh1jhjubh> and <}(hjhhhNhNubj)}(h!linux-trace-devel@vger.kernel.orgh]h!linux-trace-devel@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:linux-trace-devel@vger.kernel.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK#hjshhubeh}(h]reporting-bugsah ]h"]reporting bugsah$]h&]uh1hhhhhhjhK"ubh)}(hhh](h)}(hLICENSEh]hLICENSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhK'ubj)}(h6**rtla** is Free Software licensed under the GNU GPLv2h](jE)}(h**rtla**h]hrtla}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh. is Free Software licensed under the GNU GPLv2}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK(hjhhubeh}(h]licenseah ]h"]licenseah$]h&]uh1hhhhhhjhK'ubh)}(hhh](h)}(hCOPYINGh]hCOPYING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhK+ubj)}(hwCopyright \(C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).h]hwCopyright (C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK,hjhhubeh}(h]copyingah ]h"]copyingah$]h&]uh1hhhhhhjhK+ubeh}(h]/display-a-summary-of-the-operating-system-noiseah ]h"]/display a summary of the operating system noiseah$]h&]uh1hhhhhhhhKubeh}(h]rtla-osnoise-topah ]h"]rtla-osnoise-topah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjQerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehƌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}(hhjj[jjjjjjusubstitution_names}(toolhÌ thresholdj threshargjtracerj actionsperfjurefnames}refids}nameids}(j+j(j#j jwjtjGjDjjj<j9jjjjjIjFjpjmjjjjjju nametypes}(j+j#jwjGjj<jjjIjpjjjuh}(j(hj hjtj/jDjzjjJj9jjj?jjjFjjmjLjjsjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log]-Documentation/tools/rtla/rtla-osnoise-top.rst(NNNNta decorationNhhub.