]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.rsthKubhsection)}(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&]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}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSYNOPSISh]hSYNOPSIS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubh)}(h**rtla hwnoise** [*OPTIONS*]h](hstrong)}(h**rtla hwnoise**h]h rtla hwnoise}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj-ubh [}(hj-hhhNhNubhemphasis)}(h *OPTIONS*h]hOPTIONS}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj-ubh]}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h DESCRIPTIONh]h DESCRIPTION}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghhhhhKubh)}(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](j2)}(h**rtla hwnoise**h]h rtla hwnoise}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjxubh( collects the periodic summary from the }(hjxhhhNhNubjF)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjxubh tracer running with }(hjxhhhNhNubjF)}(h*interrupts disabled*h]hinterrupts disabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjxubh. By disabling interrupts, and the scheduling of threads as a consequence, only non-maskable interrupts and hardware-related noise is allowed.}(hjxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjghhubh)}(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 }(hjhhhNhNubjF)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh0 tracer and the collection of the tracer output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjghhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOPTIONSh]hOPTIONS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h**-a**, **--auto** *us*h](j2)}(h**-a**h]h-a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h **--auto**h]h--auto}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hh3Documentation/tools/rtla/common_osnoise_options.rsthKhjhhubh 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]h)}(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 }(hj4hhhNhNubj2)}(h**-s**h]h-s}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj4ubh }(hj4hhhNhNubjF)}(h*us*h]hus}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj4ubh }hj4sbj2)}(h **-T 1 -t**h]h-T 1 -t}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj4ubh.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhj0ubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-p**, **--period** *us*h](j2)}(h**-p**h]h-p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj~ubh, }(hj~hhhNhNubj2)}(h **--period**h]h--period}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj~ubh }(hj~hhhNhNubjF)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj~ubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjhhubj/)}(h1Set the *osnoise* tracer period in microseconds. h]h)}(h0Set the *osnoise* tracer period in microseconds.h](hSet the }(hjhhhNhNubjF)}(h *osnoise*h]hosnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh tracer period in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-r**, **--runtime** *us*h](j2)}(h**-r**h]h-r}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h **--runtime**h]h --runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*us*h]hus}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hhj-hK hjhhubj/)}(h2Set the *osnoise* tracer runtime in microseconds. h]h)}(h1Set the *osnoise* tracer runtime in microseconds.h](hSet the }(hj$hhhNhNubjF)}(h *osnoise*h]hosnoise}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj$ubh tracer runtime in microseconds.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hK hj ubah}(h]h ]h"]h$]h&]uh1j.hj-hK hjhhubh)}(h**-s**, **--stop** *us*h](j2)}(h**-s**h]h-s}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjJubh, }(hjJhhhNhNubj2)}(h **--stop**h]h--stop}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjJubh }(hjJhhhNhNubjF)}(h*us*h]hus}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjJubeh}(h]h ]h"]h$]h&]uh1hhj-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]h)}(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 }(hjhhhNhNubj2)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-S**, **--stop-total** *us*h](j2)}(h**-S**h]h-S}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h**--stop-total**h]h --stop-total}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hhj-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]h)}(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 }(hjhhhNhNubj2)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh3 is set, it will also save the trace to the output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-T**, **--threshold** *us*h](j2)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h**--threshold**h]h --threshold}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*us*h]hus}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjhhubj/)}(hjSpecify the minimum delta between two time reads to be considered noise. The default threshold is *5 us*. h]h)}(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 }(hjVhhhNhNubjF)}(h*5 us*h]h5 us}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjVubh.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjRubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-t**, **--trace** \[*file*]h](j2)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj|ubh, }(hj|hhhNhNubj2)}(h **--trace**h]h--trace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj|ubh [}(hj|hhhNhNubjF)}(h*file*h]hfile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj|ubh]}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjhhubj/)}(h6Save the stopped trace to [*file|osnoise_trace.txt*]. h]h)}(h5Save the stopped trace to [*file|osnoise_trace.txt*].h](hSave the stopped trace to [}(hjhhhNhNubjF)}(h*file|osnoise_trace.txt*h]hfile|osnoise_trace.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh].}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-hKhjubah}(h]h ]h"]h$]h&]uh1j.hj-hKhjhhubh)}(h**-q**, **--quiet**h](j2)}(h**-q**h]h-q}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h **--quiet**h]h--quiet}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1hh/Documentation/tools/rtla/common_top_options.rsthKhjhhubj/)}(h0Print only a summary at the end of the session. h]h)}(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&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j.hjhKhjhhubh)}(h**-c**, **--cpus** *cpu-list*h](j2)}(h**-c**h]h-c}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj)ubh, }(hj)hhhNhNubj2)}(h **--cpus**h]h--cpus}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj)ubh }(hj)hhhNhNubjF)}(h *cpu-list*h]hcpu-list}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj)ubeh}(h]h ]h"]h$]h&]uh1hh+Documentation/tools/rtla/common_options.rsthKhjhhubj/)}(hBSet the osnoise tracer to run the sample threads in the cpu-list. h]h)}(hASet the osnoise tracer to run the sample threads in the cpu-list.h]hASet the osnoise tracer to run the sample threads in the cpu-list.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKhjfubah}(h]h ]h"]h$]h&]uh1j.hjehKhjhhubh)}(h&**-H**, **--house-keeping** *cpu-list*h](j2)}(h**-H**h]h-H}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj~ubh, }(hj~hhhNhNubj2)}(h**--house-keeping**h]h--house-keeping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj~ubh }(hj~hhhNhNubjF)}(h *cpu-list*h]hcpu-list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj~ubeh}(h]h ]h"]h$]h&]uh1hhjehKhjhhubj/)}(h5Run rtla control threads only on the given cpu-list. h]h)}(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&]uh1hhjehKhjubah}(h]h ]h"]h$]h&]uh1j.hjehKhjhhubh)}(h&**-d**, **--duration** *time[s|m|h|d]*h](j2)}(h**-d**h]h-d}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h**--duration**h]h --duration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*time[s|m|h|d]*h]h time[s|m|h|d]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hhjehK hjhhubj/)}(h!Set the duration of the session. h]h)}(h Set the duration of the session.h]h Set the duration of the session.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehK hjubah}(h]h ]h"]h$]h&]uh1j.hjehK hjhhubh)}(h**-D**, **--debug**h](j2)}(h**-D**h]h-D}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj&ubh, }(hj&hhhNhNubj2)}(h **--debug**h]h--debug}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj&ubeh}(h]h ]h"]h$]h&]uh1hhjehK hjhhubj/)}(hPrint debug info. h]h)}(hPrint debug info.h]hPrint debug info.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKhjPubah}(h]h ]h"]h$]h&]uh1j.hjehKhjhhubh)}(h**-e**, **--event** *sys:event*h](j2)}(h**-e**h]h-e}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjhubh, }(hjhhhhNhNubj2)}(h **--event**h]h--event}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjhubh }(hjhhhhNhNubjF)}(h *sys:event*h]h sys:event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhubeh}(h]h ]h"]h$]h&]uh1hhjehKhjhhubj/)}(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]h)}(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 (}(hjhhhNhNubj2)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh7) session. The argument can be a specific event, e.g., }(hjhhhNhNubj2)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h*sched:sched_switch*h]hsched:sched_switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh), or all events of a system group, e.g., }(hjhhhNhNubj2)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }hjsbjF)}(h*sched*h]hsched}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh . Multiple }(hjhhhNhNubj2)}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh% are allowed. It is only active when }(hjhhhNhNubj2)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh or }(hjhhhNhNubj2)}(h**-a**h]h-a}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh are set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehKhjubah}(h]h ]h"]h$]h&]uh1j.hjehKhjhhubh)}(h**--filter** **h](j2)}(h **--filter**h]h--filter}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjLubh }(hjLhhhNhNubjF)}(h **h]h}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjLubeh}(h]h ]h"]h$]h&]uh1hhjehKhjhhubj/)}(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]h)}(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 }(hjzhhhNhNubj2)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjzubh }(hjzhhhNhNubjF)}(h *sys:event*h]h sys:event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjzubh event with }(hjzhhhNhNubjF)}(h **h]h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjzubh4. 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&]uh1hhjehKhjvubah}(h]h ]h"]h$]h&]uh1j.hjehKhjhhubhdefinition_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](j2)}(h **--trigger**h]h --trigger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h **h]h }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1jhjehK"hjubh definition)}(hhh](h)}(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 }(hjhhhNhNubj2)}(h**-e**h]h-e}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(h *sys:event*h]h sys:event}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh . If the }(hjhhhNhNubjF)}(h*hist:*h]hhist:}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubhX trigger is activated, the output histogram will be automatically saved to a file named }(hjhhhNhNubjF)}(h*system_event_hist.txt*h]hsystem_event_hist.txt}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh. For example, the command:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehKhjubh)}(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”}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehKhjubh)}(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 }(hjyhhhNhNubjF)}(h*osnoise:irq_noise*h]hosnoise:irq_noise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjyubh event in }(hjyhhhNhNubjF)}(h*osnoise_irq_noise_hist.txt*h]hosnoise_irq_noise_hist.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjyubh.}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK hjubh)}(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 }(hjhhhNhNubj)}(hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggersh]hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggers}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK"hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjehK"hjubah}(h]h ]h"]h$]h&]uh1jhjhhhjehNubh)}(h>**-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period*h](j2)}(h**-P**h]h-P}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh, }(hjhhhNhNubj2)}(h**--priority**h]h --priority}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh }(hjhhhNhNubjF)}(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&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1hhjehK$hjhhubj/)}(hX@Set scheduling parameters to the osnoise 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. h](h)}(h\Set scheduling parameters to the osnoise tracer threads, the format to set the priority are:h]h\Set scheduling parameters to the osnoise tracer threads, the format to set the priority are:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehK&hj ubh bullet_list)}(hhh](h list_item)}(h'*o:prio* - use SCHED_OTHER with *prio*;h]h)}(hj5 h](jF)}(h*o:prio*h]ho:prio}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj7 ubh - use SCHED_OTHER with }(hj7 hhhNhNubjF)}(h*prio*h]hprio}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj7 ubh;}(hj7 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK(hj3 ubah}(h]h ]h"]h$]h&]uh1j1 hj. ubj2 )}(h$*r:prio* - use SCHED_RR with *prio*;h]h)}(hjl h](jF)}(h*r:prio*h]hr:prio}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjn ubh - use SCHED_RR with }(hjn hhhNhNubjF)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjn ubh;}(hjn hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK)hjj ubah}(h]h ]h"]h$]h&]uh1j1 hj. ubj2 )}(h&*f:prio* - use SCHED_FIFO with *prio*;h]h)}(hj h](jF)}(h*f:prio*h]hf:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh - use SCHED_FIFO with }(hj hhhNhNubjF)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK*hj ubah}(h]h ]h"]h$]h&]uh1j1 hj. ubj2 )}(hf*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. h]h)}(he*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds.h](jF)}(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&]uh1jEhj ubh - use SCHED_DEADLINE with }(hj hhhNhNubjF)}(h *runtime*h]hruntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh and }(hj hhhNhNubjF)}(h*period*h]hperiod}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh in nanoseconds.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK+hj ubah}(h]h ]h"]h$]h&]uh1j1 hj. ubeh}(h]h ]h"]h$]h&]bullet-uh1j, hjehK(hj ubeh}(h]h ]h"]h$]h&]uh1j.hjehK&hjhhubh)}(h **-C**, **--cgroup**\[*=cgroup*]h](j2)}(h**-C**h]h-C}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj0 ubh, }(hj0 hhhNhNubj2)}(h **--cgroup**h]h--cgroup}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj0 ubh[}(hj0 hhhNhNubjF)}(h *=cgroup*h]h=cgroup}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj0 ubh]}(hj0 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK-hjhhubj/)}(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]h)}(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 }(hjt hhhNhNubjF)}(h*cgroup*h]hcgroup}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjt ubh# to the tracer’s threads. If the }(hjt hhhNhNubj2)}(h**-C**h]h-C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjt ubhH option is passed without arguments, the tracer’s thread will inherit }(hjt hhhNhNubj2)}(h**rtla**h]hrtla}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjt ubh’s }(hjt hhhNhNubjF)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjt ubh/. Otherwise, the threads will be placed on the }(hjt hhhNhNubjF)}(h*cgroup*h]hcgroup}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjt ubh passed to the option.}(hjt hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjehK/hjp ubah}(h]h ]h"]h$]h&]uh1j.hjehK/hjhhubh)}(h**--warm-up** *s*h](j2)}(h **--warm-up**h]h --warm-up}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj ubh }(hj hhhNhNubjF)}(h*s*h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubeh}(h]h ]h"]h$]h&]uh1hhjehK1hjhhubj/)}(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)}(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 hhhNhNubjF)}(h*s*h]hs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj 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&]uh1hhjehK3hj ubah}(h]h ]h"]h$]h&]uh1j.hjehK3hjhhubj)}(hhh]j)}(h]**--trace-buffer-size** *kB* Set the per-cpu trace buffer size in kB for the tracing output. h](j)}(h**--trace-buffer-size** *kB*h](j2)}(h**--trace-buffer-size**h]h--trace-buffer-size}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj= ubh }(hj= hhhNhNubjF)}(h*kB*h]hkB}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj= ubeh}(h]h ]h"]h$]h&]uh1jhjehK6hj9 ubj)}(hhh]h)}(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.}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehK6hjg ubah}(h]h ]h"]h$]h&]uh1jhj9 ubeh}(h]h ]h"]h$]h&]uh1jhjehK6hj6 ubah}(h]h ]h"]h$]h&]uh1jhjhhhjehNubh)}(h**-h**, **--help**h](j2)}(h**-h**h]h-h}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj ubh, }(hj hhhNhNubj2)}(h **--help**h]h--help}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj ubeh}(h]h ]h"]h$]h&]uh1hhjehK8hjhhubj/)}(hPrint help menu. h]h)}(hPrint help menu.h]hPrint help menu.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehK:hj ubah}(h]h ]h"]h$]h&]uh1j.hjehK:hjhhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEXAMPLEh]hEXAMPLE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK%ubh)}(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 }(hj hhhNhNubj2)}(h**rtla hwnoise**h]h rtla hwnoise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j1hj ubh tool is set to run on CPUs }(hj hhhNhNubjF)}(h*1-7*h]h1-7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubhB on a system with 8 cores/16 threads with hyper-threading enabled.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hj hhubh)}(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 }(hj hhhNhNubjF)}(h*one microsecond*h]hone microsecond}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh , to run for }(hj hhhNhNubjF)}(h *ten minutes*h]h ten minutes}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh?, displaying a summary of the report at the end of the session:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hj hhubh 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}hjK sbah}(h]h ]h"]h$]h&]hhuh1jI hhhK-hj hhubh)}(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 }(hjY hhhNhNubjF)}(h*CPU*h]hCPU}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh', and the second column shows how many }(hjY hhhNhNubjF)}(h *Periods*h]hPeriods}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh& the tool ran during the session. The }(hjY hhhNhNubjF)}(h *Runtime*h]hRuntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh7 is the time the tool effectively runs on the CPU. The }(hjY hhhNhNubjF)}(h*Noise*h]hNoise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh@ column is the sum of all noise that the tool observed, and the }(hjY hhhNhNubjF)}(h *% CPU Aval*h]h % CPU Aval}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh is the relation between the }(hjY hhhNhNubjF)}(h *Runtime*h]hRuntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh and }(hjY hhhNhNubjF)}(h*Noise*h]hNoise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjY ubh.}(hjY hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hj hhubh)}(hThe *Max Noise* column is the maximum hardware noise the tool detected in a single period, and the *Max Single* is the maximum single noise seen.h](hThe }(hj hhhNhNubjF)}(h *Max Noise*h]h Max Noise}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubhT column is the maximum hardware noise the tool detected in a single period, and the }(hj hhhNhNubjF)}(h *Max Single*h]h Max Single}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh" is the maximum single noise seen.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK@hj hhubh)}(hoThe *HW* and *NMI* columns show the total number of *hardware* and *NMI* noise occurrence observed by the tool.h](hThe }(hj hhhNhNubjF)}(h*HW*h]hHW}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh and }(hj hhhNhNubjF)}(h*NMI*h]hNMI}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh" columns show the total number of }(hj hhhNhNubjF)}(h *hardware*h]hhardware}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh and }hj sbjF)}(h*NMI*h]hNMI}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubh' noise occurrence observed by the tool.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKChj hhubh)}(hXFor example, *CPU 3* ran *599* periods of *1 second Runtime*. The CPU received *86 us* of noise during the entire execution, leaving *99.99997 %* of CPU time for the application. In the worst single period, the CPU caused *4 us* of noise to the application, but it was certainly caused by more than one single noise, as the *Max Single* noise was of *3 us*. The CPU has *HW noise,* at a rate of *six occurrences*/*ten minutes*. The CPU also has *NMIs*, at a higher frequency: around *seven per second*.h](h For example, }(hjm hhhNhNubjF)}(h*CPU 3*h]hCPU 3}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh ran }(hjm hhhNhNubjF)}(h*599*h]h599}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh periods of }(hjm hhhNhNubjF)}(h*1 second Runtime*h]h1 second Runtime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh. The CPU received }(hjm hhhNhNubjF)}(h*86 us*h]h86 us}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh/ of noise during the entire execution, leaving }(hjm hhhNhNubjF)}(h *99.99997 %*h]h 99.99997 %}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubhM of CPU time for the application. In the worst single period, the CPU caused }(hjm hhhNhNubjF)}(h*4 us*h]h4 us}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh` of noise to the application, but it was certainly caused by more than one single noise, as the }(hjm hhhNhNubjF)}(h *Max Single*h]h Max Single}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh noise was of }(hjm hhhNhNubjF)}(h*3 us*h]h3 us}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh. The CPU has }(hjm hhhNhNubjF)}(h *HW noise,*h]h HW noise,}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh at a rate of }(hjm hhhNhNubjF)}(h*six occurrences*h]hsix occurrences}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh/}(hjm hhhNhNubjF)}(h *ten minutes*h]h ten minutes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh. The CPU also has }(hjm hhhNhNubjF)}(h*NMIs*h]hNMIs}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh , at a higher frequency: around }(hjm hhhNhNubjF)}(h*seven per second*h]hseven per second}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjm ubh.}(hjm hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKFhj hhubh)}(hXSThe tool should report *0* hardware-related noise in the ideal situation. For example, by disabling hyper-threading to remove the hardware noise, and disabling the TSC watchdog to remove the NMI (it is possible to identify this using tracing options of **rtla hwnoise**), it was possible to reach the ideal situation in the same hardware::h](hThe tool should report }(hjehhhNhNubjF)}(h*0*h]h0}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjeubh hardware-related noise in the ideal situation. For example, by disabling hyper-threading to remove the hardware noise, and disabling the TSC watchdog to remove the NMI (it is possible to identify this using tracing options of }(hjehhhNhNubj2)}(h**rtla hwnoise**h]h rtla hwnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjeubhE), it was possible to reach the ideal situation in the same hardware:}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhj hhubjJ )}(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 0 100.00000 0 0 0 0 2 #599 599000000 0 100.00000 0 0 0 0 3 #599 599000000 0 100.00000 0 0 0 0 4 #599 599000000 0 100.00000 0 0 0 0 5 #599 599000000 0 100.00000 0 0 0 0 6 #599 599000000 0 100.00000 0 0 0 0 7 #599 599000000 0 100.00000 0 0 0 0h]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 0 100.00000 0 0 0 0 2 #599 599000000 0 100.00000 0 0 0 0 3 #599 599000000 0 100.00000 0 0 0 0 4 #599 599000000 0 100.00000 0 0 0 0 5 #599 599000000 0 100.00000 0 0 0 0 6 #599 599000000 0 100.00000 0 0 0 0 7 #599 599000000 0 100.00000 0 0 0 0}hjsbah}(h]h ]h"]h$]h&]hhuh1jI hhhKThj hhubeh}(h]exampleah ]h"]exampleah$]h&]uh1hhhhhhhhK%ubh)}(hhh](h)}(hSEE ALSOh]hSEE ALSO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKaubh)}(h**rtla-osnoise**\(1)h](j2)}(h**rtla-osnoise**h]h rtla-osnoise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh(1)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKchjhhubh)}(h`Osnoise tracer documentation: h](hOsnoise tracer documentation: <}(hjhhhNhNubj)}(h@https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.htmlh]h@https://www.kernel.org/doc/html/latest/trace/osnoise-tracer.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehjhhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhKaubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKhubh)}(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&]uh1hhhhKihjhhubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhKhubh)}(hhh](h)}(hREPORTING BUGSh]hREPORTING BUGS}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hhh,Documentation/tools/rtla/common_appendix.rsthKubh)}(hUReport bugs to and h](hReport bugs to <}(hjPhhhNhNubj)}(hlinux-kernel@vger.kernel.orgh]hlinux-kernel@vger.kernel.org}(hjXhhhNhNubah}(h]h ]h"]h$]h&]refuri#mailto:linux-kernel@vger.kernel.orguh1jhjPubh> and <}(hjPhhhNhNubj)}(h!linux-trace-devel@vger.kernel.orgh]h!linux-trace-devel@vger.kernel.org}(hjlhhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:linux-trace-devel@vger.kernel.orguh1jhjPubh>}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjOhKhj>hhubeh}(h]reporting-bugsah ]h"]reporting bugsah$]h&]uh1hhhhhhjOhKubh)}(hhh](h)}(hLICENSEh]hLICENSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjOhKubh)}(h6**rtla** is Free Software licensed under the GNU GPLv2h](j2)}(h**rtla**h]hrtla}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j1hjubh. is Free Software licensed under the GNU GPLv2}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjOhKhjhhubeh}(h]licenseah ]h"]licenseah$]h&]uh1hhhhhhjOhKubh)}(hhh](h)}(hCOPYINGh]hCOPYING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjOhK ubh)}(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&]uh1hhjOhK hjhhubeh}(h]copyingah ]h"]copyingah$]h&]uh1hhhhhhjOhK ubeh}(h]*detect-and-quantify-hardware-related-noiseah ]h"]*detect and quantify hardware-related noiseah$]h&]uh1hhhhhhhhKubeh}(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_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}substitution_names}refnames}refids}nameids}(jjjjjdjajjj j jjjjj;j8jjjjjju nametypes}(jjjdjj jjj;jjjuh}(jhjhjajjjgj jjj jjj8jjj>jjjju 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.