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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/pt_BR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhhhKubh field_body)}(h1 h]h paragraph)}(h1h]h1}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK hjhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSYNOPSISh]hSYNOPSIS}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhKubj )}(h**rtla hwnoise** [*OPTIONS*]h](hstrong)}(h**rtla hwnoise**h]h rtla hwnoise}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjRubh [}(hjRhhhNhNubhemphasis)}(h *OPTIONS*h]hOPTIONS}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjRubh]}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhjAhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h DESCRIPTIONh]h DESCRIPTION}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj )}(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](jW)}(h**rtla hwnoise**h]h rtla hwnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh( collects the periodic summary from the }(hjhhhNhNubjk)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh tracer running with }(hjhhhNhNubjk)}(h*interrupts disabled*h]hinterrupts disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh. 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&]uh1jhhhKhjhhubj )}(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 }(hjhhhNhNubjk)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh0 tracer and the collection of the tracer output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(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](jW)}(h **-a/--auto**h]h -a/--auto}hjsbah}(h]h ]h"]h$]h&]uh1jVhjubh, }hjsbjW)}(h **-s/--stop**h]h -s/--stop}hj,sbah}(h]h ]h"]h$]h&]uh1jVhjubh, or }hjsbjW)}(h**-S/--stop-total**h]h-S/--stop-total}hj>sbah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"] thresholdah$]h&]uh1hh3Documentation/tools/rtla/common_osnoise_options.txthKhjhhubh)}(h.. |thresharg| replace:: -sh]h-s}hjTsbah}(h]h ]h"] threshargah$]h&]uh1hhjShKhjhhubh)}(h".. |tracer| replace:: osnoise h]hosnoise}hjcsbah}(h]h ]h"]tracerah$]h&]uh1hhjShKhjhhubh)}(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.}hjrsbah}(h]h ]h"] actionsperfah$]h&]uh1hhjShKhjhhubj )}(h**-a**, **--auto** *us*h](jW)}(h**-a**h]h-a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h **--auto**h]h--auto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jhjShK 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 }(hjhhhNhNubjW)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh }hjsbjW)}(h **-T 1 -t**h]h-T 1 -t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShK hjubah}(h]h ]h"]h$]h&]uh1jhjShK hjhhubj )}(h**-p**, **--period** *us*h](jW)}(h**-p**h]h-p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh, }(hj hhhNhNubjW)}(h **--period**h]h--period}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh }(hj hhhNhNubjk)}(h*us*h]hus}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj)}(h1Set the *osnoise* tracer period in microseconds. h]j )}(h0Set the *osnoise* tracer period in microseconds.h](hSet the }(hjMhhhNhNubjk)}(h *osnoise*h]hosnoise}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjMubh tracer period in microseconds.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShKhjIubah}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj )}(h**-r**, **--runtime** *us*h](jW)}(h**-r**h]h-r}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjsubh, }(hjshhhNhNubjW)}(h **--runtime**h]h --runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjsubh }(hjshhhNhNubjk)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjsubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj)}(h2Set the *osnoise* tracer runtime in microseconds. h]j )}(h1Set the *osnoise* tracer runtime in microseconds.h](hSet the }(hjhhhNhNubjk)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh tracer runtime in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShKhjubah}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj )}(h**-s**, **--stop** *us*h](jW)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h **--stop**h]h--stop}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj)}(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. This option cannot be unset. 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 }(hjhhhNhNubjW)}(h**-T**h]h-T}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShKhjubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjShKhjubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj )}(h**-S**, **--stop-total** *us*h](jW)}(h**-S**h]h-S}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjMubh, }(hjMhhhNhNubjW)}(h**--stop-total**h]h --stop-total}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjMubh }(hjMhhhNhNubjk)}(h*us*h]hus}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjMubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj)}(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. This option cannot be unset. 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 }(hjhhhNhNubjW)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShKhjubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjShK"hjubeh}(h]h ]h"]h$]h&]uh1jhjShKhjhhubj )}(h**-T**, **--threshold** *us*h](jW)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h**--threshold**h]h --threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jhjShK$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 }(hjhhhNhNubjk)}(h*5 us*h]h5 us}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShK&hjubah}(h]h ]h"]h$]h&]uh1jhjShK&hjhhubj )}(h**-t**, **--trace** \[*file*]h](jW)}(h**-t**h]h-t}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj'ubh, }(hj'hhhNhNubjW)}(h **--trace**h]h--trace}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj'ubh [}(hj'hhhNhNubjk)}(h*file*h]hfile}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj'ubh]}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShK)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 [}(hjkhhhNhNubjk)}(h*file|osnoise_trace.txt*h]hfile|osnoise_trace.txt}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjkubh].}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjShK+hjgubah}(h]h ]h"]h$]h&]uh1jhjShK+hjhhubj )}(h**-q**, **--quiet**h](jW)}(h**-q**h]h-q}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h **--quiet**h]h--quiet}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1jh/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&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**-c**, **--cpus** *cpu-list*h](jW)}(h**-c**h]h-c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h **--cpus**h]h--cpus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h *cpu-list*h]hcpu-list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jh+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&]uh1jhjhKhjubj )}(hBBy default, the |tool| tracer runs the sample threads on all CPUs.h](hBy default, the }(hj+hhhNhNubhhwnoise}(hj+hhhNhNubh, tracer runs the sample threads on all CPUs.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h&**-H**, **--house-keeping** *cpu-list*h](jW)}(h**-H**h]h-H}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjGubh, }(hjGhhhNhNubjW)}(h**--house-keeping**h]h--house-keeping}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjGubh }(hjGhhhNhNubjk)}(h *cpu-list*h]hcpu-list}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjGubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj)}(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&]uh1jhjhK 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&]uh1jhjhK hjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjhhubj )}(h&**-d**, **--duration** *time[s|m|h|d]*h](jW)}(h**-d**h]h-d}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h**--duration**h]h --duration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*time[s|m|h|d]*h]h time[s|m|h|d]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jhjhK 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&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**-D**, **--debug**h](jW)}(h**-D**h]h-D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh, }(hjhhhNhNubjW)}(h **--debug**h]h--debug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj)}(hPrint debug info. h]j )}(hPrint debug info.h]hPrint debug info.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhj'ubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**-e**, **--event** *sys:event*h](jW)}(h**-e**h]h-e}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj?ubh, }(hj?hhhNhNubjW)}(h **--event**h]h--event}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj?ubh }(hj?hhhNhNubjk)}(h *sys:event*h]h sys:event}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj?ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj)}(hXEnable 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. This option cannot be unset. 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 (}(hjhhhNhNubjW)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh7) session. The argument can be a specific event, e.g., }(hjhhhNhNubjW)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*sched:sched_switch*h]hsched:sched_switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh), or all events of a system group, e.g., }(hjhhhNhNubjW)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }hjsbjk)}(h*sched*h]hsched}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh . Multiple }(hjhhhNhNubjW)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh% are allowed. It is only active when }(hjhhhNhNubjW)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh or }(hjhhhNhNubjW)}(h**-a**h]h-a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh are set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKhj{ubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj )}(h**--filter** **h](jW)}(h **--filter**h]h--filter}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj1ubh }(hj1hhhNhNubjk)}(h **h]h}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj1ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj)}(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. This option cannot be unset. 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_hhhNhNubjW)}(h**-e**h]h-e}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj_ubh }(hj_hhhNhNubjk)}(h *sys:event*h]h sys:event}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj_ubh event with }(hj_hhhNhNubjk)}(h **h]h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj_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}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhj_ubh.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKhj[ubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhj[ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hX**--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. This option cannot be unset. h](hterm)}(h**--trigger** **h](jW)}(h **--trigger**h]h --trigger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h **h]h }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(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 }(hj hhhNhNubjW)}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh }(hj hhhNhNubjk)}(h *sys:event*h]h sys:event}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh . If the }(hj hhhNhNubjk)}(h*hist:*h]hhist:}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubhX trigger is activated, the output histogram will be automatically saved to a file named }(hj hhhNhNubjk)}(h*system_event_hist.txt*h]hsystem_event_hist.txt}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh. For example, the command:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK"hj 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”}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK&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 }(hjl hhhNhNubjk)}(h*osnoise:irq_noise*h]hosnoise:irq_noise}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjl ubh event in }(hjl hhhNhNubjk)}(h*osnoise_irq_noise_hist.txt*h]hosnoise_irq_noise_hist.txt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjl ubh.}(hjl hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK(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&]uh1jhjhK*hj ubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK,hj ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(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](jW)}(h**-P**h]h-P}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh, }(hj hhhNhNubjW)}(h**--priority**h]h --priority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh }(hj hhhNhNubjk)}(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&]uh1jjhj ubeh}(h]h ]h"]h$]h&]uh1jhjhK.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&]uh1jhjhK0hj ubh bullet_list)}(hhh](h list_item)}(h'*o:prio* - use SCHED_OTHER with *prio*;h]j )}(hj> h](jk)}(h*o:prio*h]ho:prio}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj@ ubh - use SCHED_OTHER with }(hj@ hhhNhNubjk)}(h*prio*h]hprio}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj@ ubh;}(hj@ hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK2hj< ubah}(h]h ]h"]h$]h&]uh1j: hj7 ubj; )}(h$*r:prio* - use SCHED_RR with *prio*;h]j )}(hju h](jk)}(h*r:prio*h]hr:prio}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjw ubh - use SCHED_RR with }(hjw hhhNhNubjk)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjw ubh;}(hjw hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK3hjs ubah}(h]h ]h"]h$]h&]uh1j: hj7 ubj; )}(h&*f:prio* - use SCHED_FIFO with *prio*;h]j )}(hj h](jk)}(h*f:prio*h]hf:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh - use SCHED_FIFO with }(hj hhhNhNubjk)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK4hj ubah}(h]h ]h"]h$]h&]uh1j: hj7 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](jk)}(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&]uh1jjhj ubh - use SCHED_DEADLINE with }(hj hhhNhNubjk)}(h *runtime*h]hruntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh and }(hj hhhNhNubjk)}(h*period*h]hperiod}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh in nanoseconds.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK5hj ubah}(h]h ]h"]h$]h&]uh1j: hj7 ubeh}(h]h ]h"]h$]h&]bullet-uh1j5 hjhK2hj 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 }(hj3 hhhNhNubjk)}(h *osnoise*h]hosnoise}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj3 ubh and }(hj3 hhhNhNubjk)}(h *timerlat*h]htimerlat}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj3 ubh5 tracer documentation for the running kernel version.}(hj3 hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK7hj ubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjhhubj )}(h **-C**, **--cgroup** \[*cgroup*]h](jW)}(h**-C**h]h-C}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjk ubh, }(hjk hhhNhNubjW)}(h **--cgroup**h]h--cgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjk ubh [}(hjk hhhNhNubjk)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjk ubh]}(hjk hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjhhubj)}(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 hhhNhNubjk)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh# to the tracer’s threads. If the }(hj hhhNhNubjW)}(h**-C**h]h-C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubhH option is passed without arguments, the tracer’s thread will inherit }(hj hhhNhNubjW)}(h**rtla**h]hrtla}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh’s }(hj hhhNhNubjk)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh/. Otherwise, the threads will be placed on the }(hj hhhNhNubjk)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubh passed to the option.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhK;hj 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&]uh1jhjhK=hj ubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjhhubj )}(h**--warm-up** *s*h](jW)}(h **--warm-up**h]h --warm-up}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj+ ubh }(hj+ hhhNhNubjk)}(h*s*h]hs}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj+ ubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjhhubj)}(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 }(hjY hhhNhNubjk)}(h*s*h]hs}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjY ubh seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.}(hjY hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjU ubah}(h]h ]h"]h$]h&]uh1jhjhKAhjhhubj)}(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](jW)}(h**--trace-buffer-size**h]h--trace-buffer-size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh }(hj hhhNhNubjk)}(h*kB*h]hkB}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKFhj 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&]uh1jhjhKDhj 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&]uh1jhjhKFhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jhjhKFhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubj )}(h**--on-threshold** *action*h](jW)}(h**--on-threshold**h]h--on-threshold}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubh }(hj hhhNhNubjk)}(h*action*h]haction}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjhhubj)}(hX4Defines 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, and --no-trace will not disable trace output when enabled through this option. - *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| This option cannot be unset. 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 hhhNhNubjW)}(hjh]h -a/--auto}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhNhNhj hhubh, }(hj hhhNhNubjW)}(hj.h]h -s/--stop}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhNhNhj hhubh, or }(hj hhhNhNubjW)}(hj@h]h-S/--stop-total}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhNhNhj hhubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKJhj 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.}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKMhj ubj )}(hSupported actions are:h]hSupported actions are:}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKQhj ubj6 )}(hhh](j; )}(hX(*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, and --no-trace will not disable trace output when enabled through this option. h](j )}(h*trace[,file=]*h]jk)}(hju h]htrace[,file=]}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjs ubah}(h]h ]h"]h$]h&]uh1jhjhKShjo ubj )}(hX 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, and --no-trace will not disable trace output when enabled through this option.h]hX 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, and --no-trace will not disable trace output when enabled through this option.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKUhjo ubeh}(h]h ]h"]h$]h&]uh1j: hjl 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]jk)}(hj h]hsignal,num=,pid=}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]uh1jhjhKZhj 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&]uh1jhjhK\hj ubeh}(h]h ]h"]h$]h&]uh1j: hjl ubj; )}(h2*shell,command=* Execute shell command. h](j )}(h*shell,command=*h]jk)}(hj h]hshell,command=}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]uh1jhjhK_hj ubj )}(hExecute shell command.h]hExecute shell command.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKahj ubeh}(h]h ]h"]h$]h&]uh1j: hjl ubj; )}(hM*continue* Continue tracing after actions are executed instead of stopping. h](j )}(h *continue*h]jk)}(hjh]hcontinue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(h]h ]h"]h$]h&]uh1jhjhKchj 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&]uh1jhjhKehj ubeh}(h]h ]h"]h$]h&]uh1j: hjl ubeh}(h]h ]h"]h$]h&]j1 j2 uh1j5 hjhKShj ubj )}(hExample:h]hExample:}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKghj 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&]uh1jhjhKihj 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 “}(hjehhhNhNubhosnoise}(hjehhhNhNubh_trace.txt”, print its lines that contain the text “ipi_send” on standard output, and send signal 2 (SIGINT) to the parent process.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKmhj ubj )}(hPerformance Considerations:h]hPerformance Considerations:}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKqhj 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&]uh1jhjhKshj ubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKuhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjhhubj )}(h**--on-end** *action*h](jW)}(h **--on-end**h]h--on-end}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh }(hjhhhNhNubjk)}(h*action*h]haction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubeh}(h]h ]h"]h$]h&]uh1jhjhKwhjhhubj)}(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. This option cannot be unset. 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&]uh1jhjhKyhjubj )}(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&]uh1jhjhK{hjubj )}(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 }(hjhhhNhNubjW)}(h**--on-threshold**h]h--on-threshold}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh< for the list of supported actions, with the exception that }(hjhhhNhNubjk)}(h *continue*h]hcontinue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh has no effect.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj )}(hExample:h]hExample:}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubj )}(h"$ rtla |tool| -d 5s --on-end traceh](h$ rtla }(hj5hhhNhNubhhwnoise}(hj5hhhNhNubh -d 5s --on-end trace}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj )}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubj )}(hThis option cannot be unset.h]hThis option cannot be unset.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjhKyhjhhubj )}(h**-h**, **--help**h](jW)}(h**-h**h]h-h}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjmubh, }(hjmhhhNhNubjW)}(h **--help**h]h--help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjmubeh}(h]h ]h"]h$]h&]uh1jhjhKhjhhubj)}(hPrint help menu. h]j )}(hPrint help menu.h]hPrint help menu.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjhhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEXAMPLEh]hEXAMPLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK'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 }(hjhhhNhNubjW)}(h**rtla hwnoise**h]h rtla hwnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubh tool is set to run on CPUs }(hjhhhNhNubjk)}(h*1-7*h]h1-7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubhB on a system with 8 cores/16 threads with hyper-threading enabled.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK(hjhhubj )}(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 }(hjhhhNhNubjk)}(h*one microsecond*h]hone microsecond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh , to run for }(hjhhhNhNubjk)}(h *ten minutes*h]h ten minutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubh?, displaying a summary of the report at the end of the session:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK+hjhhubh 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}hj.sbah}(h]h ]h"]h$]h&]hhuh1j,hhhK/hjhhubj )}(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 }(hj<hhhNhNubjk)}(h*CPU*h]hCPU}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh', and the second column shows how many }(hj<hhhNhNubjk)}(h *Periods*h]hPeriods}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh& the tool ran during the session. The }(hj<hhhNhNubjk)}(h *Runtime*h]hRuntime}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh7 is the time the tool effectively runs on the CPU. The }(hj<hhhNhNubjk)}(h*Noise*h]hNoise}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh@ column is the sum of all noise that the tool observed, and the }(hj<hhhNhNubjk)}(h *% CPU Aval*h]h % CPU Aval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh is the relation between the }(hj<hhhNhNubjk)}(h *Runtime*h]hRuntime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh and }(hj<hhhNhNubjk)}(h*Noise*h]hNoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj<ubh.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK`__h]j)}(hjh]hOsnoise tracer}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameOsnoise tracerrefuri1https://docs.kernel.org/trace/osnoise-tracer.htmluh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhKghjhhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhKcubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKjubj )}(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.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKkhjhhubh)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hjsbah}(h]h ]h"]h$]h&]hhuh1hhjhhh,Documentation/tools/rtla/common_appendix.txthKubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhKjubh)}(hhh](h)}(hUNSETTING OPTIONSh]hUNSETTING OPTIONS}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hhhj!hKubj )}(h{The effect of most command line options can be reverted by prepending "no-" to the long variant of the option, for example:h]hThe effect of most command line options can be reverted by prepending “no-” to the long variant of the option, for example:}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hKhj*hhubj )}(h&$ rtla timerlat top -p 100 --no-periodh]h&$ rtla timerlat top -p 100 --no-period}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hK hj*hhubj )}(h7resets the period back to the default value of 1000 us.h]h7resets the period back to the default value of 1000 us.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hK hj*hhubj )}(hX=If a command line option sets multiple RTLA parameters at once, the inverted option will revert all of them, even if they were not set by the particular option. For example, since using "--auto" implies "--trace", specifying "--trace --no-auto" will also disable trace output, just like if "--no-trace" was specified.h]hXMIf a command line option sets multiple RTLA parameters at once, the inverted option will revert all of them, even if they were not set by the particular option. For example, since using “--auto” implies “--trace”, specifying “--trace --no-auto” will also disable trace output, just like if “--no-trace” was specified.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hK hj*hhubeh}(h]unsetting-optionsah ]h"]unsetting optionsah$]h&]uh1hhhhhhj!hKubh)}(hhh](h)}(hSIGINT BEHAVIORh]hSIGINT BEHAVIOR}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hhhj!hKubj )}(hqOn the first SIGINT, RTLA exits after collecting all outstanding samples up to the point of receiving the signal.h]hqOn the first SIGINT, RTLA exits after collecting all outstanding samples up to the point of receiving the signal.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hKhj{hhubj )}(hWhen receiving more than one SIGINT, RTLA discards any outstanding samples, and exits while displaying only samples that have already been processed.h]hWhen receiving more than one SIGINT, RTLA discards any outstanding samples, and exits while displaying only samples that have already been processed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hKhj{hhubj )}(haIf SIGINT is received during RTLA cleanup, RTLA exits immediately via the default signal handler.h]haIf SIGINT is received during RTLA cleanup, RTLA exits immediately via the default signal handler.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hKhj{hhubj )}(hXNote: For the purpose of SIGINT behavior, the expiry of duration specified via the -d/--duration option is treated as equivalent to receiving a SIGINT. For example, a SIGINT received after duration expired but samples have not been processed yet will drop any outstanding samples.h]hXNote: For the purpose of SIGINT behavior, the expiry of duration specified via the -d/--duration option is treated as equivalent to receiving a SIGINT. For example, a SIGINT received after duration expired but samples have not been processed yet will drop any outstanding samples.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hK hj{hhubj )}(hAlso note that when using the timerlat tool in BPF mode, samples are processed in-kernel; RTLA only copies them out to display them to the user. A second SIGINT does not affect in-kernel sample aggregation.h]hAlso note that when using the timerlat tool in BPF mode, samples are processed in-kernel; RTLA only copies them out to display them to the user. A second SIGINT does not affect in-kernel sample aggregation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hK%hj{hhubeh}(h]sigint-behaviorah ]h"]sigint behaviorah$]h&]uh1hhhhhhj!hKubh)}(hhh](h)}(h EXIT STATUSh]h EXIT STATUS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhj!hK*ubj-)}(h0 Passed: the test did not hit the stop tracing condition 1 Error: invalid argument 2 Failed: the test hit the stop tracing condition 129 Help: either user requested help or incorrect option was specifiedh]h0 Passed: the test did not hit the stop tracing condition 1 Error: invalid argument 2 Failed: the test hit the stop tracing condition 129 Help: either user requested help or incorrect option was specified}hjsbah}(h]h ]h"]h$]h&]hhuh1j,hj!hK.hjhhubeh}(h] exit-statusah ]h"] exit statusah$]h&]uh1hhhhhhj!hK*ubh)}(hhh](h)}(hREPORTING BUGSh]hREPORTING BUGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhj!hK4ubj )}(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.orguh1jhjubh> and <}(hjhhhNhNubj)}(h!linux-trace-devel@vger.kernel.orgh]h!linux-trace-devel@vger.kernel.org}(hj.hhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:linux-trace-devel@vger.kernel.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj!hK5hjhhubeh}(h]reporting-bugsah ]h"]reporting bugsah$]h&]uh1hhhhhhj!hK4ubh)}(hhh](h)}(hLICENSEh]hLICENSE}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhhhj!hK9ubj )}(h6**rtla** is Free Software licensed under the GNU GPLv2h](jW)}(h**rtla**h]hrtla}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjaubh. is Free Software licensed under the GNU GPLv2}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj!hK:hjPhhubeh}(h]licenseah ]h"]licenseah$]h&]uh1hhhhhhj!hK9ubh)}(hhh](h)}(hCOPYINGh]hCOPYING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhj!hK=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&]uh1jhj!hK>hjhhubeh}(h]copyingah ]h"]copyingah$]h&]uh1hhhhhhj!hK=ubeh}(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_levelK 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_sourcehnj _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}(hhjPjj`jTjojcj~jrusubstitution_names}(toolh֌ thresholdjP threshargj`tracerjo actionsperfj~urefnames}refids}nameids}(jjjjjjjjjjjjjjj'j$jxjujjjjjMjJjjjju nametypes}(jjjjjjjj'jxjjjMjjuh}(jhjhjjAjjjjjjjjj$jjuj*jj{jjjJjjjPjju 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.