€•�Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ1/translations/zh_CN/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/zh_TW/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/it_IT/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ja_JP/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ko_KR/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/pt_BR/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/sp_SP/tools/rtla/rtla-timerlat-hist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsubstitution_definition”“”)�”}”(hŒ".. |tool| replace:: timerlat hist ”h]”hŒ timerlat hist”…”�”}”hh·sbah}”(h]”h ]”h"]”Œtool”ah$]”h&]”uh1hµh³ŒK/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-timerlat-hist.rst”h´Khhh²hubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒrtla-timerlat-hist”h]”hŒrtla-timerlat-hist”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhhÉh²hh³hÆh´KubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒ0Histograms of the operating system timer latency”h]”hŒ0Histograms of the operating system timer latency”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhhÜh²hh³hÆh´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒManual section”h]”hŒManual section”…”�”}”(hhùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôh³hÆh´KubhŒ field_body”“”)�”}”(hŒ1 ”h]”hŒ paragraph”“”)�”}”(hŒ1”h]”hŒ1”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´K hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhôubeh}”(h]”h ]”h"]”h$]”h&]”uh1hòh³hÆh´K hhïh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1híhhÜh²hh³hÆh´K ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒSYNOPSIS”h]”hŒSYNOPSIS”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj/h²hh³hÆh´K ubj)�”}”(hŒ&**rtla timerlat hist** [*OPTIONS*] ...”h]”(hŒstrong”“”)�”}”(hŒ**rtla timerlat hist**”h]”hŒrtla timerlat hist”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj@ubhŒ [”…”�”}”(hj@h²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ *OPTIONS*”h]”hŒOPTIONS”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj@ubhŒ] ...”…”�”}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´Khj/h²hubeh}”(h]”Œsynopsis”ah ]”h"]”Œsynopsis”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´K ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒ DESCRIPTION”h]”hŒ DESCRIPTION”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjzh²hh³hÆh´Kubj)�”}”(hXBThe **rtla timerlat** tool is an interface for the *timerlat* tracer. The *timerlat* tracer dispatches a kernel thread per-cpu. These threads set a periodic timer to wake themselves up and go back to sleep. After the wakeup, they collect and generate useful information for the debugging of operating system timer latency.”h]”(hŒThe ”…”�”}”(hj‹h²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj‹ubhŒ tool is an interface for the ”…”�”}”(hj‹h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj‹ubhŒ tracer. The ”…”�”}”(hj‹h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj‹ubhŒî tracer dispatches a kernel thread per-cpu. These threads set a periodic timer to wake themselves up and go back to sleep. After the wakeup, they collect and generate useful information for the debugging of operating system timer latency.”…”�”}”(hj‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œ8Documentation/tools/rtla/common_timerlat_description.txt”h´Khjzh²hubj)�”}”(hŒíThe *timerlat* tracer outputs information in two ways. It periodically prints the timer latency at the timer *IRQ* handler and the *Thread* handler. It also enables the trace of the most relevant information via **osnoise:** tracepoints.”h]”(hŒThe ”…”�”}”(hjÐh²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÐubhŒ_ tracer outputs information in two ways. It periodically prints the timer latency at the timer ”…”�”}”(hjÐh²hh³Nh´NubjY)�”}”(hŒ*IRQ*”h]”hŒIRQ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÐubhŒ handler and the ”…”�”}”(hjÐh²hh³Nh´NubjY)�”}”(hŒ*Thread*”h]”hŒThread”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÐubhŒI handler. It also enables the trace of the most relevant information via ”…”�”}”(hjÐh²hh³Nh´NubjE)�”}”(hŒ **osnoise:**”h]”hŒosnoise:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÐubhŒ tracepoints.”…”�”}”(hjÐh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÏh´Khjzh²hubj)�”}”(hX¾The **rtla timerlat** tool sets the options of the *timerlat* tracer and collects and displays a summary of the results. By default, the collection is done synchronously in kernel space using a dedicated BPF program attached to the *timerlat* tracer. If either BPF or the **osnoise:timerlat_sample** tracepoint it attaches to is unavailable, the **rtla timerlat** tool falls back to using tracefs to process the data asynchronously in user space.”h]”(hŒThe ”…”�”}”(hj&h²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj&ubhŒ tool sets the options of the ”…”�”}”(hj&h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj&ubhŒ« tracer and collects and displays a summary of the results. By default, the collection is done synchronously in kernel space using a dedicated BPF program attached to the ”…”�”}”(hj&h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj&ubhŒ tracer. If either BPF or the ”…”�”}”(hj&h²hh³Nh´NubjE)�”}”(hŒ**osnoise:timerlat_sample**”h]”hŒosnoise:timerlat_sample”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj&ubhŒ/ tracepoint it attaches to is unavailable, the ”…”�”}”(hj&h²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj&ubhŒS tool falls back to using tracefs to process the data asynchronously in user space.”…”�”}”(hj&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÏh´K hjzh²hubj)�”}”(hŒÄThe **rtla timerlat hist** displays a histogram of each tracer event occurrence. This tool uses the periodic information, and the **osnoise:** tracepoints are enabled when using the **-T** option.”h]”(hŒThe ”…”�”}”(hjŽh²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat hist**”h]”hŒrtla timerlat hist”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŽubhŒh displays a histogram of each tracer event occurrence. This tool uses the periodic information, and the ”…”�”}”(hjŽh²hh³Nh´NubjE)�”}”(hŒ **osnoise:**”h]”hŒosnoise:”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŽubhŒ( tracepoints are enabled when using the ”…”�”}”(hjŽh²hh³Nh´NubjE)�”}”(hŒ**-T**”h]”hŒ-T”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŽubhŒ option.”…”�”}”(hjŽh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´Khjzh²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´KubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒOPTIONS”h]”hŒOPTIONS”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjÚh²hh³hÆh´Kubh¶)�”}”(hŒI.. |threshold| replace:: **-a/--auto**, **-i/--irq**, or **-T/--thread**”h]”(jE)�”}”(hŒ **-a/--auto**”h]”hŒ -a/--auto”…”�”}”hjïsbah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjëubhŒ, ”…”�”}”hjësbjE)�”}”(hŒ **-i/--irq**”h]”hŒ-i/--irq”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjëubhŒ, or ”…”�”}”hjësbjE)�”}”(hŒ**-T/--thread**”h]”hŒ -T/--thread”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjëubeh}”(h]”h ]”h"]”Œ threshold”ah$]”h&]”uh1hµh³Œ4Documentation/tools/rtla/common_timerlat_options.txt”h´KhjÚh²hubh¶)�”}”(hŒ.. |thresharg| replace:: -T”h]”hŒ-T”…”�”}”hj)sbah}”(h]”h ]”h"]”Œ thresharg”ah$]”h&]”uh1hµh³j(h´KhjÚh²hubh¶)�”}”(hŒ#.. |tracer| replace:: timerlat ”h]”hŒtimerlat”…”�”}”hj8sbah}”(h]”h ]”h"]”Œtracer”ah$]”h&]”uh1hµh³j(h´KhjÚh²hubh¶)�”}”(hX@.. |actionsperf| replace:: For time-sensitive actions, it is recommended to run **rtla timerlat** with BPF support and RT priority. Note that due to implementational limitations, actions might be delayed up to one second after tracing is stopped if BPF mode is not available or disabled. ”h]”(hŒ5For time-sensitive actions, it is recommended to run ”…”�”}”hjGsbjE)�”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…”�”}”hjOsbah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjGubhŒ¾ with BPF support and RT priority. Note that due to implementational limitations, actions might be delayed up to one second after tracing is stopped if BPF mode is not available or disabled.”…”�”}”hjGsbeh}”(h]”h ]”h"]”Œ actionsperf”ah$]”h&]”uh1hµh³j(h´KhjÚh²hubj)�”}”(hŒ**-a**, **--auto** *us*”h]”(jE)�”}”(hŒ**-a**”h]”hŒ-a”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjhubhŒ, ”…”�”}”(hjhh²hh³Nh´NubjE)�”}”(hŒ **--auto**”h]”hŒ--auto”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjhubhŒ ”…”�”}”(hjhh²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K hjÚh²hubhŒ block_quote”“”)�”}”(hXSet the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use **-T** *us* **-s** *us* **-t**. By default, *timerlat* tracer uses FIFO:95 for *timerlat* threads, thus equivalent to **-P** *f:95*. ”h]”j)�”}”(hXSet the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use **-T** *us* **-s** *us* **-t**. By default, *timerlat* tracer uses FIFO:95 for *timerlat* threads, thus equivalent to **-P** *f:95*.”h]”(hŒ|Set the automatic trace mode. This mode sets some commonly used options while debugging the system. It is equivalent to use ”…”�”}”(hjªh²hh³Nh´NubjE)�”}”(hŒ**-T**”h]”hŒ-T”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjªubhŒ ”…”�”}”(hjªh²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjªubhŒ ”…”�”}”hjªsbjE)�”}”(hŒ**-s**”h]”hŒ-s”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjªubhŒ ”…”�”}”hjªsbjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjªubhŒ ”…”�”}”(hjªh²hh³Nh´NubjE)�”}”(hŒ**-t**”h]”hŒ-t”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjªubhŒ. By default, ”…”�”}”(hjªh²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjªubhŒ tracer uses FIFO:95 for ”…”�”}”(hjªh²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjªubhŒ threads, thus equivalent to ”…”�”}”(hjªh²hh³Nh´NubjE)�”}”(hŒ**-P**”h]”hŒ-P”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjªubhŒ ”…”�”}”hjªsbjY)�”}”(hŒ*f:95*”h]”hŒf:95”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjªubhŒ.”…”�”}”(hjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K hjÚh²hubj)�”}”(hŒ**-p**, **--period** *us*”h]”(jE)�”}”(hŒ**-p**”h]”hŒ-p”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj`ubhŒ, ”…”�”}”(hj`h²hh³Nh´NubjE)�”}”(hŒ **--period**”h]”hŒ--period”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj`ubhŒ ”…”�”}”(hj`h²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KhjÚh²hubj¥)�”}”(hŒ2Set the *timerlat* tracer period in microseconds. ”h]”j)�”}”(hŒ1Set the *timerlat* tracer period in microseconds.”h]”(hŒSet the ”…”�”}”(hj h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj ubhŒ tracer period in microseconds.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Khjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KhjÚh²hubj)�”}”(hŒ**-i**, **--irq** *us*”h]”(jE)�”}”(hŒ**-i**”h]”hŒ-i”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÆubhŒ, ”…”�”}”(hjÆh²hh³Nh´NubjE)�”}”(hŒ **--irq**”h]”hŒ--irq”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÆubhŒ ”…”�”}”(hjÆh²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KhjÚh²hubj¥)�”}”(hŒaStop trace if the *IRQ* latency is higher than the argument in us. This option cannot be unset. ”h]”(j)�”}”(hŒBStop trace if the *IRQ* latency is higher than the argument in us.”h]”(hŒStop trace if the ”…”�”}”(hjh²hh³Nh´NubjY)�”}”(hŒ*IRQ*”h]”hŒIRQ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjubhŒ+ latency is higher than the argument in us.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Khjubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KhjÚh²hubj)�”}”(hŒ**-T**, **--thread** *us*”h]”(jE)�”}”(hŒ**-T**”h]”hŒ-T”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj:ubhŒ, ”…”�”}”(hj:h²hh³Nh´NubjE)�”}”(hŒ **--thread**”h]”hŒ--thread”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj:ubhŒ ”…”�”}”(hj:h²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KhjÚh²hubj¥)�”}”(hŒdStop trace if the *Thread* latency is higher than the argument in us. This option cannot be unset. ”h]”(j)�”}”(hŒEStop trace if the *Thread* latency is higher than the argument in us.”h]”(hŒStop trace if the ”…”�”}”(hjzh²hh³Nh´NubjY)�”}”(hŒ*Thread*”h]”hŒThread”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjzubhŒ+ latency is higher than the argument in us.”…”�”}”(hjzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Khjvubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K hjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KhjÚh²hubj)�”}”(hŒ**-s**, **--stack** *us*”h]”(jE)�”}”(hŒ**-s**”h]”hŒ-s”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj®ubhŒ, ”…”�”}”(hj®h²hh³Nh´NubjE)�”}”(hŒ **--stack**”h]”hŒ--stack”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj®ubhŒ ”…”�”}”(hj®h²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K"hjÚh²hubj¥)�”}”(hŒ[Save the stack trace at the *IRQ* if a *Thread* latency is higher than the argument in us. ”h]”j)�”}”(hŒZSave the stack trace at the *IRQ* if a *Thread* latency is higher than the argument in us.”h]”(hŒSave the stack trace at the ”…”�”}”(hjîh²hh³Nh´NubjY)�”}”(hŒ*IRQ*”h]”hŒIRQ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjîubhŒ if a ”…”�”}”(hjîh²hh³Nh´NubjY)�”}”(hŒ*Thread*”h]”hŒThread”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjîubhŒ+ latency is higher than the argument in us.”…”�”}”(hjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K$hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K$hjÚh²hubj)�”}”(hŒ**-t**, **--trace** \[*file*]”h]”(jE)�”}”(hŒ**-t**”h]”hŒ-t”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj&ubhŒ, ”…”�”}”(hj&h²hh³Nh´NubjE)�”}”(hŒ **--trace**”h]”hŒ--trace”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj&ubhŒ [”…”�”}”(hj&h²hh³Nh´NubjY)�”}”(hŒ*file*”h]”hŒfile”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj&ubhŒ]”…”�”}”(hj&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K'hjÚh²hubj¥)�”}”(hŒ7Save the stopped trace to [*file|timerlat_trace.txt*]. ”h]”j)�”}”(hŒ6Save the stopped trace to [*file|timerlat_trace.txt*].”h]”(hŒSave the stopped trace to [”…”�”}”(hjjh²hh³Nh´NubjY)�”}”(hŒ*file|timerlat_trace.txt*”h]”hŒfile|timerlat_trace.txt”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjjubhŒ].”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K)hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K)hjÚh²hubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒÊ**--dma-latency** *us* Set the /dev/cpu_dma_latency to *us*, aiming to bound exit from idle latencies. *cyclictest* sets this value to *0* by default, use **--dma-latency** *0* to have similar results. ”h]”(hŒterm”“”)�”}”(hŒ**--dma-latency** *us*”h]”(jE)�”}”(hŒ**--dma-latency**”h]”hŒ --dma-latency”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj�ubhŒ ”…”�”}”(hj�h²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j›h³j(h´K.hj—ubhŒ definition”“”)�”}”(hhh]”j)�”}”(hŒ²Set the /dev/cpu_dma_latency to *us*, aiming to bound exit from idle latencies. *cyclictest* sets this value to *0* by default, use **--dma-latency** *0* to have similar results.”h]”(hŒ Set the /dev/cpu_dma_latency to ”…”�”}”(hjÌh²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÌubhŒ,, aiming to bound exit from idle latencies. ”…”�”}”(hjÌh²hh³Nh´NubjY)�”}”(hŒ *cyclictest*”h]”hŒ cyclictest”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÌubhŒ sets this value to ”…”�”}”(hjÌh²hh³Nh´NubjY)�”}”(hŒ*0*”h]”hŒ0”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÌubhŒ by default, use ”…”�”}”(hjÌh²hh³Nh´NubjE)�”}”(hŒ**--dma-latency**”h]”hŒ --dma-latency”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÌubhŒ ”…”�”}”(hjÌh²hh³Nh´NubjY)�”}”(hŒ*0*”h]”hŒ0”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÌubhŒ to have similar results.”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K,hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•h³j(h´K.hj’ubj–)�”}”(hXR**--deepest-idle-state** *n* Disable idle states higher than *n* for cpus that are running timerlat threads to reduce exit from idle latencies. If *n* is -1, all idle states are disabled. On exit from timerlat, the idle state setting is restored to its original state before running timerlat. Requires rtla to be built with libcpupower. ”h]”(jœ)�”}”(hŒ**--deepest-idle-state** *n*”h]”(jE)�”}”(hŒ**--deepest-idle-state**”h]”hŒ--deepest-idle-state”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjDubhŒ ”…”�”}”(hjDh²hh³Nh´NubjY)�”}”(hŒ*n*”h]”hŒn”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1j›h³j(h´K6hj@ubjÈ)�”}”(hhh]”(j)�”}”(hXDisable idle states higher than *n* for cpus that are running timerlat threads to reduce exit from idle latencies. If *n* is -1, all idle states are disabled. On exit from timerlat, the idle state setting is restored to its original state before running timerlat.”h]”(hŒ Disable idle states higher than ”…”�”}”(hjqh²hh³Nh´NubjY)�”}”(hŒ*n*”h]”hŒn”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjqubhŒS for cpus that are running timerlat threads to reduce exit from idle latencies. If ”…”�”}”(hjqh²hh³Nh´NubjY)�”}”(hŒ*n*”h]”hŒn”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjqubhŒŽ is -1, all idle states are disabled. On exit from timerlat, the idle state setting is restored to its original state before running timerlat.”…”�”}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K1hjnubj)�”}”(hŒ+Requires rtla to be built with libcpupower.”h]”hŒ+Requires rtla to be built with libcpupower.”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K6hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÇhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•h³j(h´K6hj’h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÚh²hh³j(h´Nubj)�”}”(hŒ**-k**, **--kernel-threads**”h]”(jE)�”}”(hŒ**-k**”h]”hŒ-k”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÃubhŒ, ”…”�”}”(hjÃh²hh³Nh´NubjE)�”}”(hŒ**--kernel-threads**”h]”hŒ--kernel-threads”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K8hjÚh²hubj¥)�”}”(hŒ:Use timerlat kernel-space threads, in contrast of **-u**. ”h]”j)�”}”(hŒ9Use timerlat kernel-space threads, in contrast of **-u**.”h]”(hŒ2Use timerlat kernel-space threads, in contrast of ”…”�”}”(hjñh²hh³Nh´NubjE)�”}”(hŒ**-u**”h]”hŒ-u”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjñubhŒ.”…”�”}”(hjñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K:hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K:hjÚh²hubj)�”}”(hŒ**-u**, **--user-threads**”h]”(jE)�”}”(hŒ**-u**”h]”hŒ-u”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ, ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**--user-threads**”h]”hŒ--user-threads”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K>hjÚh²hubj)�”}”(hŒ**-U**, **--user-load**”h]”(jE)�”}”(hŒ**-U**”h]”hŒ-U”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj}ubhŒ, ”…”�”}”(hj}h²hh³Nh´NubjE)�”}”(hŒ**--user-load**”h]”hŒ --user-load”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KChjÚh²hubj¥)�”}”(hŒõSet timerlat to run without workload, waiting for the user to dispatch a per-cpu task that waits for a new period on the tracing/osnoise/per_cpu/cpu$ID/timerlat_fd. See linux/tools/rtla/example/timerlat_load.py for an example of user-load code. ”h]”j)�”}”(hŒôSet timerlat to run without workload, waiting for the user to dispatch a per-cpu task that waits for a new period on the tracing/osnoise/per_cpu/cpu$ID/timerlat_fd. See linux/tools/rtla/example/timerlat_load.py for an example of user-load code.”h]”hŒôSet timerlat to run without workload, waiting for the user to dispatch a per-cpu task that waits for a new period on the tracing/osnoise/per_cpu/cpu$ID/timerlat_fd. See linux/tools/rtla/example/timerlat_load.py for an example of user-load code.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KEhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KEhjÚh²hubj)�”}”(hŒ**--bpf-action** *bpf-program*”h]”(jE)�”}”(hŒ**--bpf-action**”h]”hŒ --bpf-action”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj¿ubhŒ ”…”�”}”(hj¿h²hh³Nh´NubjY)�”}”(hŒ *bpf-program*”h]”hŒ bpf-program”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KIhjÚh²hubj¥)�”}”(hXQLoads a BPF program from an ELF file and executes it when a latency threshold is exceeded. The BPF program must be a valid ELF file loadable with libbpf. The program must contain a function named ``action_handler``, stored in an ELF section with the ``tp_`` prefix. The prefix is used by libbpf to set BPF program type to BPF_PROG_TYPE_TRACEPOINT. The program receives a ``struct trace_event_raw_timerlat_sample`` parameter containing timerlat sample data. An example is provided in ``tools/tracing/rtla/example/timerlat_bpf_action.c``. This example demonstrates how to create a BPF program that prints latency information using bpf_trace_printk() when a threshold is exceeded. **Note**: BPF actions require BPF support to be available. If BPF is not available or disabled, the tool falls back to tracefs mode and BPF actions are not supported. ”h]”(j)�”}”(hŒZLoads a BPF program from an ELF file and executes it when a latency threshold is exceeded.”h]”hŒZLoads a BPF program from an ELF file and executes it when a latency threshold is exceeded.”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KKhjéubj)�”}”(hXThe BPF program must be a valid ELF file loadable with libbpf. The program must contain a function named ``action_handler``, stored in an ELF section with the ``tp_`` prefix. The prefix is used by libbpf to set BPF program type to BPF_PROG_TYPE_TRACEPOINT.”h]”(hŒiThe BPF program must be a valid ELF file loadable with libbpf. The program must contain a function named ”…”�”}”(hjûh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``action_handler``”h]”hŒaction_handler”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjûubhŒ$, stored in an ELF section with the ”…”�”}”(hjûh²hh³Nh´Nubj )�”}”(hŒ``tp_``”h]”hŒtp_”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjûubhŒZ prefix. The prefix is used by libbpf to set BPF program type to BPF_PROG_TYPE_TRACEPOINT.”…”�”}”(hjûh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KMhjéubj)�”}”(hŒlThe program receives a ``struct trace_event_raw_timerlat_sample`` parameter containing timerlat sample data.”h]”(hŒThe program receives a ”…”�”}”(hj/ h²hh³Nh´Nubj )�”}”(hŒ*``struct trace_event_raw_timerlat_sample``”h]”hŒ&struct trace_event_raw_timerlat_sample”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj/ ubhŒ+ parameter containing timerlat sample data.”…”�”}”(hj/ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KQhjéubj)�”}”(hŒÜAn example is provided in ``tools/tracing/rtla/example/timerlat_bpf_action.c``. This example demonstrates how to create a BPF program that prints latency information using bpf_trace_printk() when a threshold is exceeded.”h]”(hŒAn example is provided in ”…”�”}”(hjO h²hh³Nh´Nubj )�”}”(hŒ4``tools/tracing/rtla/example/timerlat_bpf_action.c``”h]”hŒ0tools/tracing/rtla/example/timerlat_bpf_action.c”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjO ubhŒŽ. This example demonstrates how to create a BPF program that prints latency information using bpf_trace_printk() when a threshold is exceeded.”…”�”}”(hjO h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KThjéubj)�”}”(hŒ¦**Note**: BPF actions require BPF support to be available. If BPF is not available or disabled, the tool falls back to tracefs mode and BPF actions are not supported.”h]”(jE)�”}”(hŒ**Note**”h]”hŒNote”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjo ubhŒž: BPF actions require BPF support to be available. If BPF is not available or disabled, the tool falls back to tracefs mode and BPF actions are not supported.”…”�”}”(hjo h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KXhjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KKhjÚh²hubj)�”}”(hŒ**--stack-format** *format*”h]”(jE)�”}”(hŒ**--stack-format**”h]”hŒ--stack-format”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj‘ ubhŒ ”…”�”}”(hj‘ h²hh³Nh´NubjY)�”}”(hŒ*format*”h]”hŒformat”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj‘ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K[hjÚh²hubj¥)�”}”(hXjAdjust the format of the stack trace printed during auto-analysis. The supported values for *format* are: * **truncate** Print the stack trace up to the first unknown address (default). * **skip** Skip unknown addresses. * **full** Print the entire stack trace, including unknown addresses. For unknown addresses, the raw pointer is printed. ”h]”(j)�”}”(hŒBAdjust the format of the stack trace printed during auto-analysis.”h]”hŒBAdjust the format of the stack trace printed during auto-analysis.”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K]hj» ubj)�”}”(hŒ&The supported values for *format* are:”h]”(hŒThe supported values for ”…”�”}”(hjÍ h²hh³Nh´NubjY)�”}”(hŒ*format*”h]”hŒformat”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÍ ubhŒ are:”…”�”}”(hjÍ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´K_hj» ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒP**truncate** Print the stack trace up to the first unknown address (default).”h]”j)�”}”(hjö h]”(jE)�”}”(hŒ **truncate**”h]”hŒtruncate”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjø ubhŒD Print the stack trace up to the first unknown address (default).”…”�”}”(hjø h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kahjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjï ubjó )�”}”(hŒ'**skip** Skip unknown addresses.”h]”j)�”}”(hj h]”(jE)�”}”(hŒ**skip**”h]”hŒskip”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj ubhŒ Skip unknown addresses.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kbhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjï ubjó )�”}”(hŒK**full** Print the entire stack trace, including unknown addresses. ”h]”j)�”}”(hŒJ**full** Print the entire stack trace, including unknown addresses.”h]”(jE)�”}”(hŒ**full**”h]”hŒfull”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjB ubhŒB Print the entire stack trace, including unknown addresses.”…”�”}”(hjB h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kchj> ubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjï ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jí h³j(h´Kahj» ubj)�”}”(hŒ2For unknown addresses, the raw pointer is printed.”h]”hŒ2For unknown addresses, the raw pointer is printed.”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kehj» ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´K]hjÚh²hubj)�”}”(hŒ**-A**, **--aligned** *us*”h]”(jE)�”}”(hŒ**-A**”h]”hŒ-A”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj€ ubhŒ, ”…”�”}”(hj€ h²hh³Nh´NubjE)�”}”(hŒ **--aligned**”h]”hŒ --aligned”…”�”}”(hj– h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj€ ubhŒ ”…”�”}”(hj€ h²hh³Nh´NubjY)�”}”(hŒ*us*”h]”hŒus”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj€ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´KghjÚh²hubj¥)�”}”(hX¨Align wake-up of timerlat threads to a set offset in microseconds. The alignment will be applied when the threads wake up at the start of tracing while the timer for the first cycle is armed. Each thread sets its timer to the wake-up time of the previous thread plus the alignment. This option may be used with any non-negative argument, including zero, which will align threads so that they wake up all at the same time. ”h]”(j)�”}”(hŒBAlign wake-up of timerlat threads to a set offset in microseconds.”h]”hŒBAlign wake-up of timerlat threads to a set offset in microseconds.”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kihj¼ ubj)�”}”(hŒÖThe alignment will be applied when the threads wake up at the start of tracing while the timer for the first cycle is armed. Each thread sets its timer to the wake-up time of the previous thread plus the alignment.”h]”hŒÖThe alignment will be applied when the threads wake up at the start of tracing while the timer for the first cycle is armed. Each thread sets its timer to the wake-up time of the previous thread plus the alignment.”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kkhj¼ ubj)�”}”(hŒ‹This option may be used with any non-negative argument, including zero, which will align threads so that they wake up all at the same time.”h]”hŒ‹This option may be used with any non-negative argument, including zero, which will align threads so that they wake up all at the same time.”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j(h´Kohj¼ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j(h´KihjÚh²hubj)�”}”(hŒ**-b**, **--bucket-size** *N*”h]”(jE)�”}”(hŒ**-b**”h]”hŒ-b”…”�”}”(hjô h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjð ubhŒ, ”…”�”}”(hjð h²hh³Nh´NubjE)�”}”(hŒ**--bucket-size**”h]”hŒ --bucket-size”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjð ubhŒ ”…”�”}”(hjð h²hh³Nh´NubjY)�”}”(hŒ*N*”h]”hŒN”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjð ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œ0Documentation/tools/rtla/common_hist_options.txt”h´KhjÚh²hubj¥)�”}”(hŒ-Set the histogram bucket size (default *1*). ”h]”j)�”}”(hŒ,Set the histogram bucket size (default *1*).”h]”(hŒ'Set the histogram bucket size (default ”…”�”}”(hj1 h²hh³Nh´NubjY)�”}”(hŒ*1*”h]”hŒ1”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj1 ubhŒ).”…”�”}”(hj1 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´Khj- ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´KhjÚh²hubj)�”}”(hŒ**-E**, **--entries** *N*”h]”(jE)�”}”(hŒ**-E**”h]”hŒ-E”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjW ubhŒ, ”…”�”}”(hjW h²hh³Nh´NubjE)�”}”(hŒ **--entries**”h]”hŒ --entries”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjW ubhŒ ”…”�”}”(hjW h²hh³Nh´NubjY)�”}”(hŒ*N*”h]”hŒN”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjW ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´KhjÚh²hubj¥)�”}”(hŒ:Set the number of entries of the histogram (default 256). ”h]”j)�”}”(hŒ9Set the number of entries of the histogram (default 256).”h]”hŒ9Set the number of entries of the histogram (default 256).”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´Khj“ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´KhjÚh²hubj)�”}”(hŒ**--no-header**”h]”jE)�”}”(hj­ h]”hŒ --no-header”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj« ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´K hjÚh²hubj¥)�”}”(hŒDo not print header. ”h]”j)�”}”(hŒDo not print header.”h]”hŒDo not print header.”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´K hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´K hjÚh²hubj)�”}”(hŒ**--no-summary**”h]”jE)�”}”(hjÜ h]”hŒ --no-summary”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´K hjÚh²hubj¥)�”}”(hŒDo not print summary. ”h]”j)�”}”(hŒDo not print summary.”h]”hŒDo not print summary.”…”�”}”(hjõ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´Khjñ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´KhjÚh²hubj)�”}”(hŒ**--no-index**”h]”jE)�”}”(hj h]”hŒ --no-index”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´KhjÚh²hubj¥)�”}”(hŒDo not print index. ”h]”j)�”}”(hŒDo not print index.”h]”hŒDo not print index.”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´KhjÚh²hubj)�”}”(hŒ**--with-zeros**”h]”jE)�”}”(hj: h]”hŒ --with-zeros”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj8 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´KhjÚh²hubj¥)�”}”(hŒPrint zero only entries. ”h]”j)�”}”(hŒPrint zero only entries.”h]”hŒPrint zero only entries.”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j, h´KhjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j, h´KhjÚh²hubj)�”}”(hŒ**-c**, **--cpus** *cpu-list*”h]”(jE)�”}”(hŒ**-c**”h]”hŒ-c”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjg ubhŒ, ”…”�”}”(hjg h²hh³Nh´NubjE)�”}”(hŒ **--cpus**”h]”hŒ--cpus”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjg ubhŒ ”…”�”}”(hjg h²hh³Nh´NubjY)�”}”(hŒ *cpu-list*”h]”hŒcpu-list”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjg ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œ+Documentation/tools/rtla/common_options.txt”h´KhjÚh²hubj¥)�”}”(hŒ…Set 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]”(hŒSet the ”…”�”}”(hj¨ h²hh³Nh´NubhŒ timerlat hist”…”�”}”(hj¨ h²hh³Nh´NubhŒ2 tracer to run the sample threads in the cpu-list.”…”�”}”(hj¨ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khj¤ ubj)�”}”(hŒBBy default, the |tool| tracer runs the sample threads on all CPUs.”h]”(hŒBy default, the ”…”�”}”(hj¾ h²hh³Nh´NubhŒ timerlat hist”…”�”}”(hj¾ h²hh³Nh´NubhŒ, tracer runs the sample threads on all CPUs.”…”�”}”(hj¾ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khj¤ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KhjÚh²hubj)�”}”(hŒ&**-H**, **--house-keeping** *cpu-list*”h]”(jE)�”}”(hŒ**-H**”h]”hŒ-H”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÚ ubhŒ, ”…”�”}”(hjÚ h²hh³Nh´NubjE)�”}”(hŒ**--house-keeping**”h]”hŒ--house-keeping”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÚ ubhŒ ”…”�”}”(hjÚ h²hh³Nh´NubjY)�”}”(hŒ *cpu-list*”h]”hŒcpu-list”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KhjÚh²hubj¥)�”}”(hŒ©Run 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)�”}”(hŒ4Run rtla control threads only on the given cpu-list.”h]”hŒ4Run rtla control threads only on the given cpu-list.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K hj ubj)�”}”(hŒrIf omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads.”h]”hŒrIf omitted, rtla will attempt to auto-migrate its main thread to any CPU that is not running any workload threads.”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´K hjÚh²hubj)�”}”(hŒ&**-d**, **--duration** *time[s|m|h|d]*”h]”(jE)�”}”(hŒ**-d**”h]”hŒ-d”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj< ubhŒ, ”…”�”}”(hj< h²hh³Nh´NubjE)�”}”(hŒ**--duration**”h]”hŒ --duration”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj< ubhŒ ”…”�”}”(hj< h²hh³Nh´NubjY)�”}”(hŒ*time[s|m|h|d]*”h]”hŒ time[s|m|h|d]”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj< ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K hjÚh²hubj¥)�”}”(hŒ!Set the duration of the session. ”h]”j)�”}”(hŒ Set the duration of the session.”h]”hŒ Set the duration of the session.”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjx ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KhjÚh²hubj)�”}”(hŒ**-D**, **--debug**”h]”(jE)�”}”(hŒ**-D**”h]”hŒ-D”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj� ubhŒ, ”…”�”}”(hj� h²hh³Nh´NubjE)�”}”(hŒ **--debug**”h]”hŒ--debug”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KhjÚh²hubj¥)�”}”(hŒPrint debug info. ”h]”j)�”}”(hŒPrint debug info.”h]”hŒPrint debug info.”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjº ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KhjÚh²hubj)�”}”(hŒ**-e**, **--event** *sys:event*”h]”(jE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÒ ubhŒ, ”…”�”}”(hjÒ h²hh³Nh´NubjE)�”}”(hŒ **--event**”h]”hŒ--event”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÒ ubhŒ ”…”�”}”(hjÒ h²hh³Nh´NubjY)�”}”(hŒ *sys:event*”h]”hŒ sys:event”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÒ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KhjÚh²hubj¥)�”}”(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)�”}”(hŒüEnable 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ŒEnable an event in the trace (”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-t**”h]”hŒ-t”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ7) session. The argument can be a specific event, e.g., ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ ”…”�”}”(hjh²hh³Nh´NubjY)�”}”(hŒ*sched:sched_switch*”h]”hŒsched:sched_switch”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjubhŒ), or all events of a system group, e.g., ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ ”…”�”}”hjsbjY)�”}”(hŒ*sched*”h]”hŒsched”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjubhŒ . Multiple ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ% are allowed. It is only active when ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-t**”h]”hŒ-t”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ or ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ**-a**”h]”hŒ-a”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ are set.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KhjÚh²hubj)�”}”(hŒ**--filter** **”h]”(jE)�”}”(hŒ **--filter**”h]”hŒ--filter”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÄubhŒ ”…”�”}”(hjÄh²hh³Nh´NubjY)�”}”(hŒ **”h]”hŒ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KhjÚh²hubj¥)�”}”(hŒØFilter 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)�”}”(hŒ¹Filter 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ŒFilter the previous ”…”�”}”(hjòh²hh³Nh´NubjE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjòubhŒ ”…”�”}”(hjòh²hh³Nh´NubjY)�”}”(hŒ *sys:event*”h]”hŒ sys:event”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjòubhŒ event with ”…”�”}”(hjòh²hh³Nh´NubjY)�”}”(hŒ **”h]”hŒ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjòubhŒ4. For further information about event filtering see ”…”�”}”(hjòh²hh³Nh´NubhŒ reference”“”)�”}”(hŒHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filtering”h]”hŒHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filtering”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j4uh1j0hjòubhŒ.”…”�”}”(hjòh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjîubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KhjÚh²hubj‘)�”}”(hhh]”j–)�”}”(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]”(jœ)�”}”(hŒ**--trigger** **”h]”(jE)�”}”(hŒ **--trigger**”h]”hŒ --trigger”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjfubhŒ ”…”�”}”(hjfh²hh³Nh´NubjY)�”}”(hŒ **”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j›h³j£ h´K,hjbubjÈ)�”}”(hhh]”(j)�”}”(hŒÙ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:”h]”(hŒ-Enable a trace event trigger to the previous ”…”�”}”(hj“h²hh³Nh´NubjE)�”}”(hŒ**-e**”h]”hŒ-e”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj“ubhŒ ”…”�”}”(hj“h²hh³Nh´NubjY)�”}”(hŒ *sys:event*”h]”hŒ sys:event”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj“ubhŒ . If the ”…”�”}”(hj“h²hh³Nh´NubjY)�”}”(hŒ*hist:*”h]”hŒhist:”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj“ubhŒX trigger is activated, the output histogram will be automatically saved to a file named ”…”�”}”(hj“h²hh³Nh´NubjY)�”}”(hŒ*system_event_hist.txt*”h]”hŒsystem_event_hist.txt”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj“ubhŒ. For example, the command:”…”�”}”(hj“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K"hj�ubj)�”}”(hŒ{rtla -t -e osnoise:irq_noise --trigger="hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount"”h]”hŒrtla -t -e osnoise:irq_noise --trigger=â€�hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcountâ€�”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K&hj�ubj)�”}”(hŒ}Will automatically save the content of the histogram associated to *osnoise:irq_noise* event in *osnoise_irq_noise_hist.txt*.”h]”(hŒCWill automatically save the content of the histogram associated to ”…”�”}”(hj÷h²hh³Nh´NubjY)�”}”(hŒ*osnoise:irq_noise*”h]”hŒosnoise:irq_noise”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj÷ubhŒ event in ”…”�”}”(hj÷h²hh³Nh´NubjY)�”}”(hŒ*osnoise_irq_noise_hist.txt*”h]”hŒosnoise_irq_noise_hist.txt”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj÷ubhŒ.”…”�”}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K(hj�ubj)�”}”(hŒxFor further information about event trigger see https://www.kernel.org/doc/html/latest/trace/events.html#event-triggers.”h]”(hŒ0For further information about event trigger see ”…”�”}”(hj)h²hh³Nh´Nubj1)�”}”(hŒGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggers”h]”hŒGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggers”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j3uh1j0hj)ubhŒ.”…”�”}”(hj)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K*hj�ubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K,hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•h³j£ h´K,hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÚh²hh³j£ h´Nubj)�”}”(hŒ>**-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period*”h]”(jE)�”}”(hŒ**-P**”h]”hŒ-P”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjjubhŒ, ”…”�”}”(hjjh²hh³Nh´NubjE)�”}”(hŒ**--priority**”h]”hŒ --priority”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjjubhŒ ”…”�”}”(hjjh²hh³Nh´NubjY)�”}”(hŒ'*o:prio|r:prio|f:prio|d:runtime:period*”h]”hŒ%o:prio|r:prio|f:prio|d:runtime:period”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K.hjÚh²hubj¥)�”}”(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ªh²hh³Nh´NubhŒ timerlat hist”…”�”}”(hjªh²hh³Nh´NubhŒ4 tracer threads, the format to set the priority are:”…”�”}”(hjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K0hj¦ubjî )�”}”(hhh]”(jó )�”}”(hŒ'*o:prio* - use SCHED_OTHER with *prio*;”h]”j)�”}”(hjÅh]”(jY)�”}”(hŒ*o:prio*”h]”hŒo:prio”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÇubhŒ - use SCHED_OTHER with ”…”�”}”(hjÇh²hh³Nh´NubjY)�”}”(hŒ*prio*”h]”hŒprio”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjÇubhŒ;”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K2hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjÀubjó )�”}”(hŒ$*r:prio* - use SCHED_RR with *prio*;”h]”j)�”}”(hjüh]”(jY)�”}”(hŒ*r:prio*”h]”hŒr:prio”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjþubhŒ - use SCHED_RR with ”…”�”}”(hjþh²hh³Nh´NubjY)�”}”(hŒ*prio*”h]”hŒprio”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjþubhŒ;”…”�”}”(hjþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K3hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjÀubjó )�”}”(hŒ&*f:prio* - use SCHED_FIFO with *prio*;”h]”j)�”}”(hj3h]”(jY)�”}”(hŒ*f:prio*”h]”hŒf:prio”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj5ubhŒ - use SCHED_FIFO with ”…”�”}”(hj5h²hh³Nh´NubjY)�”}”(hŒ*prio*”h]”hŒprio”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj5ubhŒ;”…”�”}”(hj5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K4hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjÀubjó )�”}”(hŒf*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. ”h]”j)�”}”(hŒe*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds.”h]”(jY)�”}”(hŒ$*d:runtime[us|ms|s]:period[us|ms|s]*”h]”hŒ"d:runtime[us|ms|s]:period[us|ms|s]”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjlubhŒ - use SCHED_DEADLINE with ”…”�”}”(hjlh²hh³Nh´NubjY)�”}”(hŒ *runtime*”h]”hŒruntime”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjlubhŒ and ”…”�”}”(hjlh²hh³Nh´NubjY)�”}”(hŒ*period*”h]”hŒperiod”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjlubhŒ in nanoseconds.”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K5hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jò hjÀubeh}”(h]”h ]”h"]”h$]”h&]”jj Œ-”uh1jí h³j£ h´K2hj¦ubj)�”}”(hŒÞ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]”(hŒ‘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 ”…”�”}”(hj¹h²hh³Nh´NubjY)�”}”(hŒ *osnoise*”h]”hŒosnoise”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¹ubhŒ and ”…”�”}”(hj¹h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¹ubhŒ5 tracer documentation for the running kernel version.”…”�”}”(hj¹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K7hj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´K0hjÚh²hubj)�”}”(hŒ **-C**, **--cgroup** \[*cgroup*]”h]”(jE)�”}”(hŒ**-C**”h]”hŒ-C”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjñubhŒ, ”…”�”}”(hjñh²hh³Nh´NubjE)�”}”(hŒ **--cgroup**”h]”hŒ--cgroup”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjñubhŒ [”…”�”}”(hjñh²hh³Nh´NubjY)�”}”(hŒ*cgroup*”h]”hŒcgroup”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjñubhŒ]”…”�”}”(hjñh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K9hjÚh²hubj¥)�”}”(hX€Set 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)�”}”(hŒÛSet 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ŒSet a ”…”�”}”(hj5h²hh³Nh´NubjY)�”}”(hŒ*cgroup*”h]”hŒcgroup”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj5ubhŒ# to the tracer’s threads. If the ”…”�”}”(hj5h²hh³Nh´NubjE)�”}”(hŒ**-C**”h]”hŒ-C”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj5ubhŒH option is passed without arguments, the tracer’s thread will inherit ”…”�”}”(hj5h²hh³Nh´NubjE)�”}”(hŒ**rtla**”h]”hŒrtla”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj5ubhŒ’s ”…”�”}”(hj5h²hh³Nh´NubjY)�”}”(hŒ*cgroup*”h]”hŒcgroup”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj5ubhŒ/. Otherwise, the threads will be placed on the ”…”�”}”(hj5h²hh³Nh´NubjY)�”}”(hŒ*cgroup*”h]”hŒcgroup”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj5ubhŒ passed to the option.”…”�”}”(hj5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K;hj1ubj)�”}”(hŒ¢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]”hŒ¤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.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K=hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´K;hjÚh²hubj)�”}”(hŒ**--warm-up** *s*”h]”(jE)�”}”(hŒ **--warm-up**”h]”hŒ --warm-up”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj±ubhŒ ”…”�”}”(hj±h²hh³Nh´NubjY)�”}”(hŒ*s*”h]”hŒs”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K?hjÚh²hubj¥)�”}”(hŒµAfter 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)�”}”(hŒ´After 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ßh²hh³Nh´NubjY)�”}”(hŒ*s*”h]”hŒs”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjßubhŒ… seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.”…”�”}”(hjßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KAhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KAhjÚh²hubj‘)�”}”(hhh]”j–)�”}”(hŒ“**--trace-buffer-size** *kB* Set the per-cpu trace buffer size in kB for the tracing output. If not set, the default tracefs buffer size is used. ”h]”(jœ)�”}”(hŒ**--trace-buffer-size** *kB*”h]”(jE)�”}”(hŒ**--trace-buffer-size**”h]”hŒ--trace-buffer-size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj ubhŒ ”…”�”}”(hj h²hh³Nh´NubjY)�”}”(hŒ*kB*”h]”hŒkB”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j›h³j£ h´KFhjubjÈ)�”}”(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.”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KDhj6ubj)�”}”(hŒ4If not set, the default tracefs buffer size is used.”h]”hŒ4If not set, the default tracefs buffer size is used.”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KFhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÇhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j•h³j£ h´KFhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j�hjÚh²hh³j£ h´Nubj)�”}”(hŒ**--on-threshold** *action*”h]”(jE)�”}”(hŒ**--on-threshold**”h]”hŒ--on-threshold”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjgubhŒ ”…”�”}”(hjgh²hh³Nh´NubjY)�”}”(hŒ*action*”h]”hŒaction”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KHhjÚh²hubj¥)�”}”(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)�”}”(hŒiDefines 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•h²hh³Nh´NubjE)�”}”(hjñh]”hŒ -a/--auto”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDh³Nh´Nhj•h²hubhŒ, ”…”�”}”(hj•h²hh³Nh´NubjE)�”}”(hjh]”hŒ-i/--irq”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDh³Nh´Nhj•h²hubhŒ, or ”…”�”}”(hj•h²hh³Nh´NubjE)�”}”(hjh]”hŒ -T/--thread”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDh³Nh´Nhj•h²hubhŒ.”…”�”}”(hj•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KJhj‘ubj)�”}”(hŒµ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.”h]”hŒµ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.”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KMhj‘ubj)�”}”(hŒSupported actions are:”h]”hŒSupported actions are:”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KQhj‘ubjî )�”}”(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]”jY)�”}”(hjûh]”hŒtrace[,file=]”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KShjõ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.”•m‰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.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KUhjõ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]”jY)�”}”(hj*h]”hŒsignal,num=,pid=”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KZhj$ubj)�”}”(hŒjSends signal to process. "parent" might be specified in place of pid to target the parent process of rtla.”h]”hŒnSends signal to process. “parentâ€� might be specified in place of pid to target the parent process of rtla.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K\hj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jò hjòubjó )�”}”(hŒ2*shell,command=* Execute shell command. ”h]”(j)�”}”(hŒ*shell,command=*”h]”jY)�”}”(hjYh]”hŒshell,command=”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K_hjSubj)�”}”(hŒExecute shell command.”h]”hŒExecute shell command.”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KahjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jò hjòubjó )�”}”(hŒM*continue* Continue tracing after actions are executed instead of stopping. ”h]”(j)�”}”(hŒ *continue*”h]”jY)�”}”(hjˆh]”hŒcontinue”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kchj‚ubj)�”}”(hŒ@Continue tracing after actions are executed instead of stopping.”h]”hŒ@Continue tracing after actions are executed instead of stopping.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kehj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jò hjòubeh}”(h]”h ]”h"]”h$]”h&]”jj j¸uh1jí h³j£ h´KShj‘ubj)�”}”(hŒExample:”h]”hŒExample:”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kghj‘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=parent”h]”(hŒ$ rtla ”…”�”}”(hjÅh²hh³Nh´NubhŒ timerlat hist”…”�”}”(hjÅh²hh³Nh´NubhŒ ”…”�”}”(hjÅh²hh³Nh´NubhŒ-T”…”�”}”(hjÅh²hh³Nh´NubhŒG 20 --on-threshold trace --on-threshold shell,command=â€�grep ipi_send ”…”�”}”(hjÅh²hh³Nh´NubhŒtimerlat”…”�”}”(hjÅh²hh³Nh´NubhŒ5_trace.txtâ€� --on-threshold signal,num=2,pid=parent”…”�”}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kihj‘ubj)�”}”(hŒ¾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.”h]”(hŒ4This will save a trace with the default filename “”…”�”}”(hjëh²hh³Nh´NubhŒtimerlat”…”�”}”(hjëh²hh³Nh´NubhŒŠ_trace.txtâ€�, print its lines that contain the text “ipi_sendâ€� on standard output, and send signal 2 (SIGINT) to the parent process.”…”�”}”(hjëh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kmhj‘ubj)�”}”(hŒPerformance Considerations:”h]”hŒPerformance Considerations:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kqhj‘ubj)�”}”(hŒ |actionsperf|”h]”(hŒ5For time-sensitive actions, it is recommended to run ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hjQh]”hŒ rtla timerlat”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDh³Nh´Nhjh²hubhŒ¾ with BPF support and RT priority. Note that due to implementational limitations, actions might be delayed up to one second after tracing is stopped if BPF mode is not available or disabled.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kshj‘ubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kuhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KJhjÚh²hubj)�”}”(hŒ**--on-end** *action*”h]”(jE)�”}”(hŒ **--on-end**”h]”hŒ--on-end”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjBubhŒ ”…”�”}”(hjBh²hh³Nh´NubjY)�”}”(hŒ*action*”h]”hŒaction”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KwhjÚh²hubj¥)�”}”(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)�”}”(hŒ7Defines an action to be executed at the end of tracing.”h]”hŒ7Defines an action to be executed at the end of tracing.”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kyhjlubj)�”}”(hŒ¯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.”h]”hŒ¯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.”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K{hjlubj)�”}”(hŒ�See the documentation for **--on-threshold** for the list of supported actions, with the exception that *continue* has no effect.”h]”(hŒSee the documentation for ”…”�”}”(hjŒh²hh³Nh´NubjE)�”}”(hŒ**--on-threshold**”h]”hŒ--on-threshold”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŒubhŒ< for the list of supported actions, with the exception that ”…”�”}”(hjŒh²hh³Nh´NubjY)�”}”(hŒ *continue*”h]”hŒcontinue”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhjŒubhŒ has no effect.”…”�”}”(hjŒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Khjlubj)�”}”(hŒExample:”h]”hŒExample:”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K‚hjlubj)�”}”(hŒ"$ rtla |tool| -d 5s --on-end trace”h]”(hŒ$ rtla ”…”�”}”(hjÌh²hh³Nh´NubhŒ timerlat hist”…”�”}”(hjÌh²hh³Nh´NubhŒ -d 5s --on-end trace”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K„hjlubj)�”}”(hŒKThis runs rtla with the default options, and saves trace output at the end.”h]”hŒKThis runs rtla with the default options, and saves trace output at the end.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´K†hjlubj)�”}”(hŒThis option cannot be unset.”h]”hŒThis option cannot be unset.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´Kˆhjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KyhjÚh²hubj)�”}”(hŒ**-h**, **--help**”h]”(jE)�”}”(hŒ**-h**”h]”hŒ-h”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubhŒ, ”…”�”}”(hjh²hh³Nh´NubjE)�”}”(hŒ **--help**”h]”hŒ--help”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KŠhjÚh²hubj¥)�”}”(hŒPrint help menu. ”h]”j)�”}”(hŒPrint help menu.”h]”hŒPrint help menu.”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j£ h´KŒhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j£ h´KŒhjÚh²hubj)�”}”(hŒ**--dump-tasks**”h]”jE)�”}”(hjHh]”hŒ --dump-tasks”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œ/Documentation/tools/rtla/common_timerlat_aa.txt”h´KhjÚh²hubj¥)�”}”(hŒUprints the task running on all CPUs if stop conditions are met (depends on !--no-aa) ”h]”j)�”}”(hŒTprints the task running on all CPUs if stop conditions are met (depends on !--no-aa)”h]”hŒTprints the task running on all CPUs if stop conditions are met (depends on !--no-aa)”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j]h´Khj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j]h´KhjÚh²hubj)�”}”(hŒ **--no-aa**”h]”jE)�”}”(hjxh]”hŒ--no-aa”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j]h´KhjÚh²hubj¥)�”}”(hŒ8disable auto-analysis, reducing rtla timerlat cpu usage ”h]”j)�”}”(hŒ7disable auto-analysis, reducing rtla timerlat cpu usage”h]”hŒ7disable auto-analysis, reducing rtla timerlat cpu usage”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j]h´Khj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¤h³j]h´KhjÚh²hubeh}”(h]”Œoptions”ah ]”h"]”Œoptions”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´KubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒEXAMPLE”h]”hŒEXAMPLE”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj­h²hh³hÆh´K%ubj)�”}”(hXŒIn the example below, **rtla timerlat hist** is set to run for *10* minutes, in the cpus *0-4*, *skipping zero* only lines. Moreover, **rtla timerlat hist** will change the priority of the *timerlat* threads to run under *SCHED_DEADLINE* priority, with a *100us* runtime every *1ms* period. The *1ms* period is also passed to the *timerlat* tracer. Auto-analysis is disabled to reduce overhead ::”h]”(hŒIn the example below, ”…”�”}”(hj¾h²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat hist**”h]”hŒrtla timerlat hist”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj¾ubhŒ is set to run for ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*10*”h]”hŒ10”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ minutes, in the cpus ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*0-4*”h]”hŒ0-4”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ, ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*skipping zero*”h]”hŒ skipping zero”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ only lines. Moreover, ”…”�”}”(hj¾h²hh³Nh´NubjE)�”}”(hŒ**rtla timerlat hist**”h]”hŒrtla timerlat hist”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj¾ubhŒ! will change the priority of the ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ threads to run under ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*SCHED_DEADLINE*”h]”hŒSCHED_DEADLINE”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ priority, with a ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*100us*”h]”hŒ100us”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ runtime every ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*1ms*”h]”hŒ1ms”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ period. The ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ*1ms*”h]”hŒ1ms”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ period is also passed to the ”…”�”}”(hj¾h²hh³Nh´NubjY)�”}”(hŒ *timerlat*”h]”hŒtimerlat”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jXhj¾ubhŒ5 tracer. Auto-analysis is disabled to reduce overhead”…”�”}”(hj¾h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´K&hj­h²hubhŒ literal_block”“”)�”}”(hX�[root@alien ~]# timerlat hist -d 10m -c 0-4 -P d:100us:1ms -p 1000 --no-aa # RTLA timerlat histogram # Time unit is microseconds (us) # Duration: 0 00:10:00 Index IRQ-000 Thr-000 IRQ-001 Thr-001 IRQ-002 Thr-002 IRQ-003 Thr-003 IRQ-004 Thr-004 0 276489 0 206089 0 466018 0 481102 0 205546 0 1 318327 35487 388149 30024 94531 48382 83082 71078 388026 55730 2 3282 122584 4019 126527 28231 109012 23311 89309 4568 98739 3 940 11815 837 9863 6209 16227 6895 17196 910 9780 4 444 17287 424 11574 2097 38443 2169 36736 462 13476 5 206 43291 255 25581 1223 101908 1304 101137 236 28913 6 132 101501 96 64584 635 213774 757 215471 99 73453 7 74 169347 65 124758 350 57466 441 53639 69 148573 8 53 85183 31 156751 229 9052 306 9026 39 139907 9 22 10387 12 42762 161 2554 225 2689 19 26192 10 13 1898 8 5770 114 1247 128 1405 13 3772 11 9 560 9 924 71 686 76 765 8 713 12 4 256 2 360 50 411 64 474 3 278 13 2 167 2 172 43 256 53 350 4 180 14 1 88 1 116 15 198 42 223 0 115 15 2 63 3 94 11 139 20 150 0 58 16 2 37 0 56 5 78 10 102 0 39 17 0 18 0 28 4 57 8 80 0 15 18 0 8 0 17 2 50 6 56 0 12 19 0 9 0 5 0 19 0 48 0 18 20 0 4 0 8 0 11 2 27 0 4 21 0 2 0 3 1 9 1 18 0 6 22 0 1 0 3 1 7 0 3 0 5 23 0 2 0 4 0 2 0 7 0 2 24 0 2 0 2 1 3 0 3 0 5 25 0 0 0 1 0 1 0 1 0 3 26 0 1 0 0 0 2 0 2 0 0 27 0 0 0 3 0 1 0 0 0 1 28 0 0 0 3 0 0 0 1 0 0 29 0 0 0 2 0 2 0 1 0 3 30 0 1 0 0 0 0 0 0 0 0 31 0 1 0 0 0 0 0 2 0 2 32 0 0 0 1 0 2 0 0 0 0 33 0 0 0 2 0 0 0 0 0 1 34 0 0 0 0 0 0 0 0 0 2 35 0 1 0 1 0 0 0 0 0 1 36 0 1 0 0 0 1 0 1 0 0 37 0 0 0 1 0 0 0 0 0 0 40 0 0 0 0 0 1 0 1 0 0 41 0 0 0 0 0 0 0 0 0 1 42 0 0 0 0 0 0 0 0 0 1 44 0 0 0 0 0 1 0 0 0 0 46 0 0 0 0 0 0 0 1 0 0 47 0 0 0 0 0 0 0 0 0 1 50 0 0 0 0 0 0 0 0 0 1 54 0 0 0 1 0 0 0 0 0 0 58 0 0 0 1 0 0 0 0 0 0 over: 0 0 0 0 0 0 0 0 0 0 count: 600002 600002 600002 600002 600002 600002 600002 600002 600002 600002 min: 0 1 0 1 0 1 0 1 0 1 avg: 0 5 0 5 0 4 0 4 0 5 max: 16 36 15 58 24 44 21 46 13 50”h]”hX�[root@alien ~]# timerlat hist -d 10m -c 0-4 -P d:100us:1ms -p 1000 --no-aa # RTLA timerlat histogram # Time unit is microseconds (us) # Duration: 0 00:10:00 Index IRQ-000 Thr-000 IRQ-001 Thr-001 IRQ-002 Thr-002 IRQ-003 Thr-003 IRQ-004 Thr-004 0 276489 0 206089 0 466018 0 481102 0 205546 0 1 318327 35487 388149 30024 94531 48382 83082 71078 388026 55730 2 3282 122584 4019 126527 28231 109012 23311 89309 4568 98739 3 940 11815 837 9863 6209 16227 6895 17196 910 9780 4 444 17287 424 11574 2097 38443 2169 36736 462 13476 5 206 43291 255 25581 1223 101908 1304 101137 236 28913 6 132 101501 96 64584 635 213774 757 215471 99 73453 7 74 169347 65 124758 350 57466 441 53639 69 148573 8 53 85183 31 156751 229 9052 306 9026 39 139907 9 22 10387 12 42762 161 2554 225 2689 19 26192 10 13 1898 8 5770 114 1247 128 1405 13 3772 11 9 560 9 924 71 686 76 765 8 713 12 4 256 2 360 50 411 64 474 3 278 13 2 167 2 172 43 256 53 350 4 180 14 1 88 1 116 15 198 42 223 0 115 15 2 63 3 94 11 139 20 150 0 58 16 2 37 0 56 5 78 10 102 0 39 17 0 18 0 28 4 57 8 80 0 15 18 0 8 0 17 2 50 6 56 0 12 19 0 9 0 5 0 19 0 48 0 18 20 0 4 0 8 0 11 2 27 0 4 21 0 2 0 3 1 9 1 18 0 6 22 0 1 0 3 1 7 0 3 0 5 23 0 2 0 4 0 2 0 7 0 2 24 0 2 0 2 1 3 0 3 0 5 25 0 0 0 1 0 1 0 1 0 3 26 0 1 0 0 0 2 0 2 0 0 27 0 0 0 3 0 1 0 0 0 1 28 0 0 0 3 0 0 0 1 0 0 29 0 0 0 2 0 2 0 1 0 3 30 0 1 0 0 0 0 0 0 0 0 31 0 1 0 0 0 0 0 2 0 2 32 0 0 0 1 0 2 0 0 0 0 33 0 0 0 2 0 0 0 0 0 1 34 0 0 0 0 0 0 0 0 0 2 35 0 1 0 1 0 0 0 0 0 1 36 0 1 0 0 0 1 0 1 0 0 37 0 0 0 1 0 0 0 0 0 0 40 0 0 0 0 0 1 0 1 0 0 41 0 0 0 0 0 0 0 0 0 1 42 0 0 0 0 0 0 0 0 0 1 44 0 0 0 0 0 1 0 0 0 0 46 0 0 0 0 0 0 0 1 0 0 47 0 0 0 0 0 0 0 0 0 1 50 0 0 0 0 0 0 0 0 0 1 54 0 0 0 1 0 0 0 0 0 0 58 0 0 0 1 0 0 0 0 0 0 over: 0 0 0 0 0 0 0 0 0 0 count: 600002 600002 600002 600002 600002 600002 600002 600002 600002 600002 min: 0 1 0 1 0 1 0 1 0 1 avg: 0 5 0 5 0 4 0 4 0 5 max: 16 36 15 58 24 44 21 46 13 50”…”�”}”hj”sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j’h³hÆh´K-hj­h²hubeh}”(h]”Œexample”ah ]”h"]”Œexample”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´K%ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒSEE ALSO”h]”hŒSEE ALSO”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj¬h²hh³hÆh´Khubj)�”}”(hŒ0**rtla-timerlat**\(1), **rtla-timerlat-top**\(1)”h]”(jE)�”}”(hŒ**rtla-timerlat**”h]”hŒ rtla-timerlat”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj½ubhŒ(1), ”…”�”}”(hj½h²hh³Nh´NubjE)�”}”(hŒ**rtla-timerlat-top**”h]”hŒrtla-timerlat-top”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj½ubhŒ(1)”…”�”}”(hj½h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´Kihj¬h²hubj)�”}”(hŒH`Timerlat tracer `__”h]”j1)�”}”(hjíh]”hŒTimerlat tracer”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒTimerlat tracer”Œrefuri”Œ2https://docs.kernel.org/trace/timerlat-tracer.html”uh1j0hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´Kkhj¬h²hubeh}”(h]”Œsee-also”ah ]”h"]”Œsee also”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´KhubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒAUTHOR”h]”hŒAUTHOR”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjh²hh³hÆh´Knubj)�”}”(hŒ:Written by Daniel Bristot de Oliveira ”h]”(hŒ'Written by Daniel Bristot de Oliveira <”…”�”}”(hjh²hh³Nh´Nubj1)�”}”(hŒbristot@kernel.org”h]”hŒbristot@kernel.org”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:bristot@kernel.org”uh1j0hjubhŒ>”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÆh´Kohjh²hubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hjCsbah}”(h]”h ]”h"]”h$]”h&]”j¢j£uh1jAhjh²hh³Œ,Documentation/tools/rtla/common_appendix.txt”h´Kubeh}”(h]”Œauthor”ah ]”h"]”Œauthor”ah$]”h&]”uh1hÇhhÜh²hh³hÆh´KnubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒUNSETTING OPTIONS”h]”hŒUNSETTING OPTIONS”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjZh²hh³jQh´Kubj)�”}”(hŒ{The effect of most command line options can be reverted by prepending "no-" to the long variant of the option, for example:”h]”hŒThe effect of most command line options can be reverted by prepending “no-â€� to the long variant of the option, for example:”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´KhjZh²hubj)�”}”(hŒ&$ rtla timerlat top -p 100 --no-period”h]”hŒ&$ rtla timerlat top -p 100 --no-period”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K hjZh²hubj)�”}”(hŒ7resets the period back to the default value of 1000 us.”h]”hŒ7resets the period back to the default value of 1000 us.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K hjZh²hubj)�”}”(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.”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K hjZh²hubeh}”(h]”Œunsetting-options”ah ]”h"]”Œunsetting options”ah$]”h&]”uh1hÇhhÜh²hh³jQh´KubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒSIGINT BEHAVIOR”h]”hŒSIGINT BEHAVIOR”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj«h²hh³jQh´Kubj)�”}”(hŒqOn the first SIGINT, RTLA exits after collecting all outstanding samples up to the point of receiving the signal.”h]”hŒqOn the first SIGINT, RTLA exits after collecting all outstanding samples up to the point of receiving the signal.”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´Khj«h²hubj)�”}”(hŒ•When receiving more than one SIGINT, RTLA discards any outstanding samples, and exits while displaying only samples that have already been processed.”h]”hŒ•When receiving more than one SIGINT, RTLA discards any outstanding samples, and exits while displaying only samples that have already been processed.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´Khj«h²hubj)�”}”(hŒaIf SIGINT is received during RTLA cleanup, RTLA exits immediately via the default signal handler.”h]”hŒaIf SIGINT is received during RTLA cleanup, RTLA exits immediately via the default signal handler.”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´Khj«h²hubj)�”}”(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.”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K hj«h²hubj)�”}”(hŒÎAlso 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]”hŒÎAlso 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.”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K%hj«h²hubeh}”(h]”Œsigint-behavior”ah ]”h"]”Œsigint behavior”ah$]”h&]”uh1hÇhhÜh²hh³jQh´KubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒ EXIT STATUS”h]”hŒ EXIT STATUS”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj h²hh³jQh´K*ubj“)�”}”(hŒÖ0 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”h]”hŒÖ0 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&]”j¢j£uh1j’h³jQh´K.hj h²hubeh}”(h]”Œ exit-status”ah ]”h"]”Œ exit status”ah$]”h&]”uh1hÇhhÜh²hh³jQh´K*ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒREPORTING BUGS”h]”hŒREPORTING BUGS”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj1h²hh³jQh´K4ubj)�”}”(hŒUReport bugs to and ”h]”(hŒReport bugs to <”…”�”}”(hjBh²hh³Nh´Nubj1)�”}”(hŒlinux-kernel@vger.kernel.org”h]”hŒlinux-kernel@vger.kernel.org”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ#mailto:linux-kernel@vger.kernel.org”uh1j0hjBubhŒ> and <”…”�”}”(hjBh²hh³Nh´Nubj1)�”}”(hŒ!linux-trace-devel@vger.kernel.org”h]”hŒ!linux-trace-devel@vger.kernel.org”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ(mailto:linux-trace-devel@vger.kernel.org”uh1j0hjBubhŒ>”…”�”}”(hjBh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K5hj1h²hubeh}”(h]”Œreporting-bugs”ah ]”h"]”Œreporting bugs”ah$]”h&]”uh1hÇhhÜh²hh³jQh´K4ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒLICENSE”h]”hŒLICENSE”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhj€h²hh³jQh´K9ubj)�”}”(hŒ6**rtla** is Free Software licensed under the GNU GPLv2”h]”(jE)�”}”(hŒ**rtla**”h]”hŒrtla”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj‘ubhŒ. is Free Software licensed under the GNU GPLv2”…”�”}”(hj‘h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K:hj€h²hubeh}”(h]”Œlicense”ah ]”h"]”Œlicense”ah$]”h&]”uh1hÇhhÜh²hh³jQh´K9ubhÈ)�”}”(hhh]”(hÍ)�”}”(hŒCOPYING”h]”hŒCOPYING”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjµh²hh³jQh´K=ubj)�”}”(hŒwCopyright \(C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).”h]”hŒwCopyright (C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jQh´K>hjµh²hubeh}”(h]”Œcopying”ah ]”h"]”Œcopying”ah$]”h&]”uh1hÇhhÜh²hh³jQh´K=ubeh}”(h]”Œ0histograms-of-the-operating-system-timer-latency”ah ]”h"]”Œ0histograms of the operating system timer latency”ah$]”h&]”uh1hÇhhÉh²hh³hÆh´Kubeh}”(h]”Œrtla-timerlat-hist”ah ]”h"]”Œrtla-timerlat-hist”ah$]”h&]”uh1hÇhhh²hh³hÆh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÆuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÌNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÆŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”(hÃh·j%jëj5j)jDj8jejGuŒsubstitution_names”}”(Œtool”hÃŒ threshold”j%Œ thresharg”j5Œtracer”jDŒ actionsperf”jeuŒrefnames”}”Œrefids”}”Œnameids”}”(jéjæjájÞjwjtj×jÔjªj§j©j¦j jjWjTj¨j¥jjj.j+j}jzj²j¯jÙjÖuŒ nametypes”}”(jé‰já‰jw‰j׉jª‰j©‰j ‰jW‰j¨‰j‰j.‰j}‰j²‰jÙ‰uh}”(jæhÉjÞhÜjtj/jÔjzj§jÚj¦j­jj¬jTjj¥jZjj«j+j jzj1j¯j€jÖjµuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ/Documentation/tools/rtla/rtla-timerlat-hist.rst”(NNNNt”†”aŒ decoration”Nh²hub.