sphinx.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-hwnoisemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/tools/rtla/rtla-hwnoisemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/tools/rtla/rtla-hwnoisemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/tools/rtla/rtla-hwnoisemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/tools/rtla/rtla-hwnoisemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/tools/rtla/rtla-hwnoisemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-hwnoise.rsthKubhsubstitution_definition)}(h.. |tool| replace:: hwnoise h]hhwnoise}hhsbah}(h]h ]h"]toolah$]h&]uh1hhhhKhhhhubhsection)}(hhh](htitle)}(h rtla-hwnoiseh]h rtla-hwnoise}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h*Detect and quantify hardware-related noiseh]h*Detect and quantify hardware-related noise}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh 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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK hjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSYNOPSISh]hSYNOPSIS}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hhhhhKubj )}(h**rtla hwnoise** [*OPTIONS*]h](hstrong)}(h**rtla hwnoise**h]h rtla hwnoise}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj>ubh [}(hj>hhhNhNubhemphasis)}(h *OPTIONS*h]hOPTIONS}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj>ubh]}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhj-hhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h DESCRIPTIONh]h DESCRIPTION}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhhhhhKubj )}(h**rtla hwnoise** collects the periodic summary from the *osnoise* tracer running with *interrupts disabled*. By disabling interrupts, and the scheduling of threads as a consequence, only non-maskable interrupts and hardware-related noise is allowed.h](jC)}(h**rtla hwnoise**h]h rtla hwnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh( collects the periodic summary from the }(hjhhhNhNubjW)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh tracer running with }(hjhhhNhNubjW)}(h*interrupts disabled*h]hinterrupts disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh. By disabling interrupts, and the scheduling of threads as a consequence, only non-maskable interrupts and hardware-related noise is allowed.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhjxhhubj )}(hhThe tool also allows the configurations of the *osnoise* tracer and the collection of the tracer output.h](h/The tool also allows the configurations of the }(hjhhhNhNubjW)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh0 tracer and the collection of the tracer output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhjxhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOPTIONSh]hOPTIONS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hN.. |threshold| replace:: **-a/--auto**, **-s/--stop**, or **-S/--stop-total**h](jC)}(h **-a/--auto**h]h -a/--auto}hjsbah}(h]h ]h"]h$]h&]uh1jBhjubh, }hjsbjC)}(h **-s/--stop**h]h -s/--stop}hjsbah}(h]h ]h"]h$]h&]uh1jBhjubh, or }hjsbjC)}(h**-S/--stop-total**h]h-S/--stop-total}hj*sbah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"] thresholdah$]h&]uh1hh3Documentation/tools/rtla/common_osnoise_options.txthKhjhhubh)}(h.. |thresharg| replace:: -sh]h-s}hj@sbah}(h]h ]h"] threshargah$]h&]uh1hhj?hKhjhhubh)}(h".. |tracer| replace:: osnoise h]hosnoise}hjOsbah}(h]h ]h"]tracerah$]h&]uh1hhj?hKhjhhubh)}(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.}hj^sbah}(h]h ]h"] actionsperfah$]h&]uh1hhj?hKhjhhubj )}(h**-a**, **--auto** *us*h](jC)}(h**-a**h]h-a}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjmubh, }(hjmhhhNhNubjC)}(h **--auto**h]h--auto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjmubh }(hjmhhhNhNubjW)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjmubeh}(h]h ]h"]h$]h&]uh1j hj?hK hjhhubh 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 }(hjhhhNhNubjC)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }hjsbjC)}(h **-T 1 -t**h]h-T 1 -t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hK hjubah}(h]h ]h"]h$]h&]uh1jhj?hK hjhhubj )}(h**-p**, **--period** *us*h](jC)}(h**-p**h]h-p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--period**h]h--period}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h*us*h]hus}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjhhubj)}(h1Set the *osnoise* tracer period in microseconds. h]j )}(h0Set the *osnoise* tracer period in microseconds.h](hSet the }(hj9hhhNhNubjW)}(h *osnoise*h]hosnoise}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj9ubh tracer period in microseconds.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hKhj5ubah}(h]h ]h"]h$]h&]uh1jhj?hKhjhhubj )}(h**-r**, **--runtime** *us*h](jC)}(h**-r**h]h-r}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj_ubh, }(hj_hhhNhNubjC)}(h **--runtime**h]h --runtime}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj_ubh }(hj_hhhNhNubjW)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj_ubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjhhubj)}(h2Set the *osnoise* tracer runtime in microseconds. h]j )}(h1Set the *osnoise* tracer runtime in microseconds.h](hSet the }(hjhhhNhNubjW)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh tracer runtime in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjubah}(h]h ]h"]h$]h&]uh1jhj?hKhjhhubj )}(h**-s**, **--stop** *us*h](jC)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--stop**h]h--stop}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjhhubj)}(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 }(hjhhhNhNubjC)}(h**-T**h]h-T}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjubah}(h]h ]h"]h$]h&]uh1jhj?hKhjhhubj )}(h**-S**, **--stop-total** *us*h](jC)}(h**-S**h]h-S}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj+ubh, }(hj+hhhNhNubjC)}(h**--stop-total**h]h --stop-total}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj+ubh }(hj+hhhNhNubjW)}(h*us*h]hus}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj+ubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjhhubj)}(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 }(hjkhhhNhNubjC)}(h**-T**h]h-T}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjkubh3 is set, it will also save the trace to the output.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hKhjgubah}(h]h ]h"]h$]h&]uh1jhj?hKhjhhubj )}(h**-T**, **--threshold** *us*h](jC)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h**--threshold**h]h --threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hj?hK hjhhubj)}(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 }(hjhhhNhNubjW)}(h*5 us*h]h5 us}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hK"hjubah}(h]h ]h"]h$]h&]uh1jhj?hK"hjhhubj )}(h**-t**, **--trace** \[*file*]h](jC)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--trace**h]h--trace}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh [}(hjhhhNhNubjW)}(h*file*h]hfile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hK%hjhhubj)}(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 [}(hj;hhhNhNubjW)}(h*file|osnoise_trace.txt*h]hfile|osnoise_trace.txt}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj;ubh].}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hj?hK'hj7ubah}(h]h ]h"]h$]h&]uh1jhj?hK'hjhhubj )}(h**-q**, **--quiet**h](jC)}(h**-q**h]h-q}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjaubh, }(hjahhhNhNubjC)}(h **--quiet**h]h--quiet}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjaubeh}(h]h ]h"]h$]h&]uh1j h/Documentation/tools/rtla/common_top_options.txthKhjhhubj)}(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&]uh1jhjhKhjhhubj )}(h**-c**, **--cpus** *cpu-list*h](jC)}(h**-c**h]h-c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--cpus**h]h--cpus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h *cpu-list*h]hcpu-list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j h+Documentation/tools/rtla/common_options.txthKhjhhubj)}(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 }(hjhhhNhNubhhwnoise}(hjhhhNhNubh2 tracer to run the sample threads in the cpu-list.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(hBBy default, the |tool| tracer runs the sample threads on all CPUs.h](hBy default, the }(hjhhhNhNubhhwnoise}(hjhhhNhNubh, tracer runs the sample threads on all CPUs.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h&**-H**, **--house-keeping** *cpu-list*h](jC)}(h**-H**h]h-H}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h**--house-keeping**h]h--house-keeping}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h *cpu-list*h]hcpu-list}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK hjSubj )}(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.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK hjSubeh}(h]h ]h"]h$]h&]uh1jhjhK hjhhubj )}(h&**-d**, **--duration** *time[s|m|h|d]*h](jC)}(h**-d**h]h-d}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjyubh, }(hjyhhhNhNubjC)}(h**--duration**h]h --duration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjyubh }(hjyhhhNhNubjW)}(h*time[s|m|h|d]*h]h time[s|m|h|d]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjyubeh}(h]h ]h"]h$]h&]uh1j hjhK hjhhubj)}(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 hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**-D**, **--debug**h](jC)}(h**-D**h]h-D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--debug**h]h--debug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(hPrint debug info. h]j )}(hPrint debug info.h]hPrint debug info.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**-e**, **--event** *sys:event*h](jC)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--event**h]h--event}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h *sys:event*h]h sys:event}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(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 (}(hjOhhhNhNubjC)}(h**-t**h]h-t}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh7) session. The argument can be a specific event, e.g., }(hjOhhhNhNubjC)}(h**-e**h]h-e}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh }(hjOhhhNhNubjW)}(h*sched:sched_switch*h]hsched:sched_switch}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjOubh), or all events of a system group, e.g., }(hjOhhhNhNubjC)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh }hjOsbjW)}(h*sched*h]hsched}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjOubh . Multiple }(hjOhhhNhNubjC)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh% are allowed. It is only active when }(hjOhhhNhNubjC)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh or }(hjOhhhNhNubjC)}(h**-a**h]h-a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjOubh are set.}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjKubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**--filter** **h](jC)}(h **--filter**h]h--filter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h **h]h}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(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 }(hj!hhhNhNubjC)}(h**-e**h]h-e}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj!ubh }(hj!hhhNhNubjW)}(h *sys:event*h]h sys:event}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj!ubh event with }(hj!hhhNhNubjW)}(h **h]h}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj!ubh4. For further information about event filtering see }(hj!hhhNhNubh 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}(hjahhhNhNubah}(h]h ]h"]h$]h&]refurijcuh1j_hj!ubh.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubhdefinition_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](jC)}(h **--trigger**h]h --trigger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h **h]h }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1jhjhK&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 }(hjhhhNhNubjC)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh }(hjhhhNhNubjW)}(h *sys:event*h]h sys:event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh . If the }(hjhhhNhNubjW)}(h*hist:*h]hhist:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubhX trigger is activated, the output histogram will be automatically saved to a file named }(hjhhhNhNubjW)}(h*system_event_hist.txt*h]hsystem_event_hist.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh. For example, the command:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubj )}(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”}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK"hjubj )}(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 }(hj hhhNhNubjW)}(h*osnoise:irq_noise*h]hosnoise:irq_noise}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh event in }(hj hhhNhNubjW)}(h*osnoise_irq_noise_hist.txt*h]hosnoise_irq_noise_hist.txt}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK$hjubj )}(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 }(hjR 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}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]refurij\ uh1j_hjR ubh.}(hjR hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK&hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK&hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubj )}(h>**-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period*h](jC)}(h**-P**h]h-P}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh, }(hj hhhNhNubjC)}(h**--priority**h]h --priority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh }(hj hhhNhNubjW)}(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&]uh1jVhj ubeh}(h]h ]h"]h$]h&]uh1j hjhK(hjhhubj)}(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 hhhNhNubhhwnoise}(hj hhhNhNubh4 tracer threads, the format to set the priority are:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK*hj ubh bullet_list)}(hhh](h list_item)}(h'*o:prio* - use SCHED_OTHER with *prio*;h]j )}(hj h](jW)}(h*o:prio*h]ho:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh - use SCHED_OTHER with }(hj hhhNhNubjW)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK,hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h$*r:prio* - use SCHED_RR with *prio*;h]j )}(hj h](jW)}(h*r:prio*h]hr:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh - use SCHED_RR with }(hj hhhNhNubjW)}(h*prio*h]hprio}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK-hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h&*f:prio* - use SCHED_FIFO with *prio*;h]j )}(hjR h](jW)}(h*f:prio*h]hf:prio}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjT ubh - use SCHED_FIFO with }(hjT hhhNhNubjW)}(h*prio*h]hprio}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjT ubh;}(hjT hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK.hjP ubah}(h]h ]h"]h$]h&]uh1j hj 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](jW)}(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&]uh1jVhj ubh - use SCHED_DEADLINE with }(hj hhhNhNubjW)}(h *runtime*h]hruntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh and }(hj hhhNhNubjW)}(h*period*h]hperiod}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh in nanoseconds.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK/hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]bullet-uh1j hjhK,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 }(hj hhhNhNubjW)}(h *osnoise*h]hosnoise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh and }(hj hhhNhNubjW)}(h *timerlat*h]htimerlat}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh5 tracer documentation for the running kernel version.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK1hj ubeh}(h]h ]h"]h$]h&]uh1jhjhK*hjhhubj )}(h **-C**, **--cgroup** \[*cgroup*]h](jC)}(h**-C**h]h-C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh, }(hj hhhNhNubjC)}(h **--cgroup**h]h--cgroup}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh [}(hj hhhNhNubjW)}(h*cgroup*h]hcgroup}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh]}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK3hjhhubj)}(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 }(hjU hhhNhNubjW)}(h*cgroup*h]hcgroup}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjU ubh# to the tracer’s threads. If the }(hjU hhhNhNubjC)}(h**-C**h]h-C}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjU ubhH option is passed without arguments, the tracer’s thread will inherit }(hjU hhhNhNubjC)}(h**rtla**h]hrtla}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjU ubh’s }(hjU hhhNhNubjW)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjU ubh/. Otherwise, the threads will be placed on the }(hjU hhhNhNubjW)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjU ubh passed to the option.}(hjU hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK5hjQ 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 hjhK7hjQ ubeh}(h]h ]h"]h$]h&]uh1jhjhK5hjhhubj )}(h**--warm-up** *s*h](jC)}(h **--warm-up**h]h --warm-up}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh }(hj hhhNhNubjW)}(h*s*h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubeh}(h]h ]h"]h$]h&]uh1j hjhK9hjhhubj)}(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 }(hj hhhNhNubjW)}(h*s*h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK;hj ubah}(h]h ]h"]h$]h&]uh1jhjhK;hjhhubj)}(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](jC)}(h**--trace-buffer-size**h]h--trace-buffer-size}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj, ubh }(hj, hhhNhNubjW)}(h*kB*h]hkB}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj, ubeh}(h]h ]h"]h$]h&]uh1jhjhK@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.}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK>hjV ubj )}(h4If not set, the default tracefs buffer size is used.h]h4If not set, the default tracefs buffer size is used.}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK@hjV ubeh}(h]h ]h"]h$]h&]uh1jhj( ubeh}(h]h ]h"]h$]h&]uh1jhjhK@hj% ubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubj )}(h**--on-threshold** *action*h](jC)}(h**--on-threshold**h]h--on-threshold}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhj ubh }(hj hhhNhNubjW)}(h*action*h]haction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubeh}(h]h ]h"]h$]h&]uh1j hjhKBhjhhubj)}(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 hhhNhNubjC)}(hjh]h -a/--auto}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhNhNhj hhubh, }(hj hhhNhNubjC)}(hjh]h -s/--stop}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhNhNhj hhubh, or }(hj hhhNhNubjC)}(hj,h]h-S/--stop-total}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhNhNhj hhubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKDhj 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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKGhj ubj )}(hSupported actions are:h]hSupported actions are:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKKhj ubj )}(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]jW)}(hj h]htrace[,file=]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1j hjhKMhj 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.}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKOhj ubeh}(h]h ]h"]h$]h&]uh1j hj 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]jW)}(hjJ h]hsignal,num=,pid=}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjH ubah}(h]h ]h"]h$]h&]uh1j hjhKShjD 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 hjhKUhjD ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(h2*shell,command=* Execute shell command. h](j )}(h*shell,command=*h]jW)}(hjy h]hshell,command=}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjw ubah}(h]h ]h"]h$]h&]uh1j hjhKXhjs ubj )}(hExecute shell command.h]hExecute shell command.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKZhjs ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hM*continue* Continue tracing after actions are executed instead of stopping. h](j )}(h *continue*h]jW)}(hj h]hcontinue}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1j hjhK\hj ubj )}(h@Continue tracing after actions are executed instead of stopping.h]h@Continue tracing after actions are executed instead of stopping.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK^hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]j j uh1j hjhKMhj ubj )}(hExample:h]hExample:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK`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 hhhNhNubhhwnoise}(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 hjhKbhj 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 “}(hj hhhNhNubhosnoise}(hj hhhNhNubh_trace.txt”, print its lines that contain the text “ipi_send” on standard output, and send signal 2 (SIGINT) to the parent process.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKfhj ubj )}(hPerformance Considerations:h]hPerformance Considerations:}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKjhj ubj )}(h |actionsperf|h]hhDue to implementational limitations, actions might be delayed up to one second after tracing is stopped.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKlhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjhhubj )}(h**--on-end** *action*h](jC)}(h **--on-end**h]h--on-end}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjCubh }(hjChhhNhNubjW)}(h*action*h]haction}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjCubeh}(h]h ]h"]h$]h&]uh1j hjhKnhjhhubj)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKphjmubj )}(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 hjhKrhjmubj )}(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 }(hjhhhNhNubjC)}(h**--on-threshold**h]h--on-threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh< for the list of supported actions, with the exception that }(hjhhhNhNubjW)}(h *continue*h]hcontinue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh has no effect.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKvhjmubj )}(hExample:h]hExample:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKyhjmubj )}(h"$ rtla |tool| -d 5s --on-end traceh](h$ rtla }(hjhhhNhNubhhwnoise}(hjhhhNhNubh -d 5s --on-end trace}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhK{hjmubj )}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhK}hjmubeh}(h]h ]h"]h$]h&]uh1jhjhKphjhhubj )}(h**-h**, **--help**h](jC)}(h**-h**h]h-h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubh, }(hjhhhNhNubjC)}(h **--help**h]h--help}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubj)}(hPrint help menu. h]j )}(hPrint help menu.h]hPrint help menu.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhj!ubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEXAMPLEh]hEXAMPLE}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhK'ubj )}(hIn the example below, the **rtla hwnoise** tool is set to run on CPUs *1-7* on a system with 8 cores/16 threads with hyper-threading enabled.h](hIn the example below, the }(hjRhhhNhNubjC)}(h**rtla hwnoise**h]h rtla hwnoise}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjRubh tool is set to run on CPUs }(hjRhhhNhNubjW)}(h*1-7*h]h1-7}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjRubhB on a system with 8 cores/16 threads with hyper-threading enabled.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhK(hjAhhubj )}(hThe tool is set to detect any noise higher than *one microsecond*, to run for *ten minutes*, displaying a summary of the report at the end of the session::h](h0The tool is set to detect any noise higher than }(hjhhhNhNubjW)}(h*one microsecond*h]hone microsecond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh , to run for }(hjhhhNhNubjW)}(h *ten minutes*h]h ten minutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh?, displaying a summary of the report at the end of the session:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhK+hjAhhubh literal_block)}(hX# rtla hwnoise -c 1-7 -T 1 -d 10m -q Hardware-related Noise duration: 0 00:10:00 | time is in us CPU Period Runtime Noise % CPU Aval Max Noise Max Single HW NMI 1 #599 599000000 138 99.99997 3 3 4 74 2 #599 599000000 85 99.99998 3 3 4 75 3 #599 599000000 86 99.99998 4 3 6 75 4 #599 599000000 81 99.99998 4 4 2 75 5 #599 599000000 85 99.99998 2 2 2 75 6 #599 599000000 76 99.99998 2 2 0 75 7 #599 599000000 77 99.99998 3 3 0 75h]hX# rtla hwnoise -c 1-7 -T 1 -d 10m -q Hardware-related Noise duration: 0 00:10:00 | time is in us CPU Period Runtime Noise % CPU Aval Max Noise Max Single HW NMI 1 #599 599000000 138 99.99997 3 3 4 74 2 #599 599000000 85 99.99998 3 3 4 75 3 #599 599000000 86 99.99998 4 3 6 75 4 #599 599000000 81 99.99998 4 4 2 75 5 #599 599000000 85 99.99998 2 2 2 75 6 #599 599000000 76 99.99998 2 2 0 75 7 #599 599000000 77 99.99998 3 3 0 75}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK/hjAhhubj )}(hX<The first column shows the *CPU*, and the second column shows how many *Periods* the tool ran during the session. The *Runtime* is the time the tool effectively runs on the CPU. The *Noise* column is the sum of all noise that the tool observed, and the *% CPU Aval* is the relation between the *Runtime* and *Noise*.h](hThe first column shows the }(hjhhhNhNubjW)}(h*CPU*h]hCPU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh', and the second column shows how many }(hjhhhNhNubjW)}(h *Periods*h]hPeriods}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh& the tool ran during the session. The }(hjhhhNhNubjW)}(h *Runtime*h]hRuntime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh7 is the time the tool effectively runs on the CPU. The }(hjhhhNhNubjW)}(h*Noise*h]hNoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh@ column is the sum of all noise that the tool observed, and the }(hjhhhNhNubjW)}(h *% CPU Aval*h]h % CPU Aval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh is the relation between the }(hjhhhNhNubjW)}(h *Runtime*h]hRuntime}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh and }(hjhhhNhNubjW)}(h*Noise*h]hNoise}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKh](hOsnoise tracer documentation: <}(hjGhhhNhNubj`)}(h@https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.htmlh]h@https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.html}(hjOhhhNhNubah}(h]h ]h"]h$]h&]refurijQuh1j_hjGubh>}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKghjhhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhKcubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphhhhhKjubj )}(h:Written by Daniel Bristot de Oliveira h](h'Written by Daniel Bristot de Oliveira <}(hjhhhNhNubj`)}(hbristot@kernel.orgh]hbristot@kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bristot@kernel.orguh1j_hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKkhjphhubh)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hjsbah}(h]h ]h"]h$]h&]hhuh1hhjphhh,Documentation/tools/rtla/common_appendix.txthKubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhKjubh)}(hhh](h)}(h EXIT STATUSh]h EXIT STATUS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhKubj)}(h0 Passed: the test did not hit the stop tracing condition 1 Error: invalid argument 2 Failed: the test hit the stop tracing conditionh]h0 Passed: the test did not hit the stop tracing condition 1 Error: invalid argument 2 Failed: the test hit the stop tracing condition}hjsbah}(h]h ]h"]h$]h&]hhuh1jhjhKhjhhubeh}(h] exit-statusah ]h"] exit statusah$]h&]uh1hhhhhhjhKubh)}(hhh](h)}(hREPORTING BUGSh]hREPORTING BUGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhK ubj )}(hUReport bugs to 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.orguh1j_hjubh> 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.orguh1j_hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjhhubeh}(h]reporting-bugsah ]h"]reporting bugsah$]h&]uh1hhhhhhjhK ubh)}(hhh](h)}(hLICENSEh]hLICENSE}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hhhjhKubj )}(h6**rtla** is Free Software licensed under the GNU GPLv2h](jC)}(h**rtla**h]hrtla}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhjAubh. is Free Software licensed under the GNU GPLv2}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhj0hhubeh}(h]licenseah ]h"]licenseah$]h&]uh1hhhhhhjhKubh)}(hhh](h)}(hCOPYINGh]hCOPYING}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehhhjhKubj )}(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).}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjehhubeh}(h]copyingah ]h"]copyingah$]h&]uh1hhhhhhjhKubeh}(h]*detect-and-quantify-hardware-related-noiseah ]h"]*detect and quantify hardware-related noiseah$]h&]uh1hhhhhhhhK ubeh}(h] rtla-hwnoiseah ]h"] rtla-hwnoiseah$]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_level;K halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_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}(hhj<jjLj@j[jOjjj^usubstitution_names}(toolhŒ thresholdj< threshargjLtracerj[ actionsperfjjurefnames}refids}nameids}(jjjjjujrjjj>j;jjjmjjjjjjj-j*jbj_jju nametypes}(jjjujj>jjmjjj-jbjuh}(jhjhjrj-jjxj;jjjAjjjjjpjjj*jj_j0jjeu 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-hwnoise.rst(NNNNta decorationNhhub.