sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget1/translations/zh_CN/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/tools/rtla/rtla-timerlat-histmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hrtla-timerlat-histh]hrtla-timerlat-hist}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhK/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-timerlat-hist.rsthKubh)}(hhh](h)}(h0Histograms of the operating system timer latencyh]h0Histograms of the operating system timer latency}(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&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSYNOPSISh]hSYNOPSIS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK ubh)}(h&**rtla timerlat hist** [*OPTIONS*] ...h](hstrong)}(h**rtla timerlat hist**h]hrtla timerlat hist}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [}(hjhhhNhNubhemphasis)}(h *OPTIONS*h]hOPTIONS}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh] ...}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj hhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h DESCRIPTIONh]h DESCRIPTION}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUhhhhhKubh)}(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](hThe }(hjfhhhNhNubj )}(h**rtla timerlat**h]h rtla timerlat}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh tool is an interface for the }(hjfhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjfubh tracer. The }(hjfhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjfubh 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.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh8Documentation/tools/rtla/common_timerlat_description.rsthKhjUhhubh)}(hThe *timerlat* tracer outputs information in two ways. It periodically prints the timer latency at the timer *IRQ* handler and the *Thread* handler. It also enable the trace of the most relevant information via **osnoise:** tracepoints.h](hThe }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh_ tracer outputs information in two ways. It periodically prints the timer latency at the timer }(hjhhhNhNubj4)}(h*IRQ*h]hIRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh handler and the }(hjhhhNhNubj4)}(h*Thread*h]hThread}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubhH handler. It also enable the trace of the most relevant information via }(hjhhhNhNubj )}(h **osnoise:**h]hosnoise:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh tracepoints.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjUhhubh)}(hThe **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](hThe }(hjhhhNhNubj )}(h**rtla timerlat hist**h]hrtla timerlat hist}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhh displays a histogram of each tracer event occurrence. This tool uses the periodic information, and the }(hjhhhNhNubj )}(h **osnoise:**h]hosnoise:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh( tracepoints are enabled when using the }(hjhhhNhNubj )}(h**-T**h]h-T}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh option.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjUhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOPTIONSh]hOPTIONS}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhhhhhKubh)}(h**-a**, **--auto** *us*h](j )}(h**-a**h]h-a}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh, }(hj^hhhNhNubj )}(h **--auto**h]h--auto}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh }(hj^hhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj^ubeh}(h]h ]h"]h$]h&]uh1hh4Documentation/tools/rtla/common_timerlat_options.rsthKhjMhhubh 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 equilavent to **-P** *f:95*. h]h)}(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 equilavent 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 }(hjhhhNhNubj )}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh }hjsbj )}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }hjsbj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh }(hjhhhNhNubj )}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. By default, }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh tracer uses FIFO:95 for }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh threads, thus equilavent to }(hjhhhNhNubj )}(h**-P**h]h-P}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }hjsbj4)}(h*f:95*h]hf:95}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-p**, **--period** *us*h](j )}(h**-p**h]h-p}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh, }(hjWhhhNhNubj )}(h **--period**h]h--period}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh }(hjWhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjWubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(h2Set the *timerlat* tracer period in microseconds. h]h)}(h1Set the *timerlat* tracer period in microseconds.h](hSet the }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh tracer period in microseconds.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjhK hjMhhubh)}(h**-i**, **--irq** *us*h](j )}(h**-i**h]h-i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h **--irq**h]h--irq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1hhjhK hjMhhubj)}(hCStop trace if the *IRQ* latency is higher than the argument in us. h]h)}(hBStop trace if the *IRQ* latency is higher than the argument in us.h](hStop trace if the }(hjhhhNhNubj4)}(h*IRQ*h]hIRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh+ latency is higher than the argument in us.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-T**, **--thread** *us*h](j )}(h**-T**h]h-T}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh, }(hj#hhhNhNubj )}(h **--thread**h]h--thread}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh }(hj#hhhNhNubj4)}(h*us*h]hus}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj#ubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(hFStop trace if the *Thread* latency is higher than the argument in us. h]h)}(hEStop trace if the *Thread* latency is higher than the argument in us.h](hStop trace if the }(hjchhhNhNubj4)}(h*Thread*h]hThread}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjcubh+ latency is higher than the argument in us.}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj_ubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-s**, **--stack** *us*h](j )}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h **--stack**h]h--stack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(h[Save the stack trace at the *IRQ* if a *Thread* latency is higher than the argument in us. h]h)}(hZSave the stack trace at the *IRQ* if a *Thread* latency is higher than the argument in us.h](hSave the stack trace at the }(hjhhhNhNubj4)}(h*IRQ*h]hIRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh if a }(hjhhhNhNubj4)}(h*Thread*h]hThread}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh+ latency is higher than the argument in us.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-t**, **--trace** \[*file*]h](j )}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h **--trace**h]h--trace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [}(hjhhhNhNubj4)}(h*file*h]hfile}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(h7Save the stopped trace to [*file|timerlat_trace.txt*]. h]h)}(h6Save the stopped trace to [*file|timerlat_trace.txt*].h](hSave the stopped trace to [}(hjEhhhNhNubj4)}(h*file|timerlat_trace.txt*h]hfile|timerlat_trace.txt}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjEubh].}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjAubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubhdefinition_list)}(hhh](hdefinition_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](hterm)}(h**--dma-latency** *us*h](j )}(h**--dma-latency**h]h --dma-latency}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubh }(hjxhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjxubeh}(h]h ]h"]h$]h&]uh1jvhjhK hjrubh definition)}(hhh]h)}(hSet 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 }(hjhhhNhNubj4)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh,, aiming to bound exit from idle latencies. }(hjhhhNhNubj4)}(h *cyclictest*h]h cyclictest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh sets this value to }(hjhhhNhNubj4)}(h*0*h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh by default, use }(hjhhhNhNubj )}(h**--dma-latency**h]h --dma-latency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*0*h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh to have similar results.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jphjhK hjmubjq)}(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](jw)}(h**--deepest-idle-state** *n*h](j )}(h**--deepest-idle-state**h]h--deepest-idle-state}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*n*h]hn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1jvhjhK(hjubj)}(hhh](h)}(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 }(hjLhhhNhNubj4)}(h*n*h]hn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjLubhS for cpus that are running timerlat threads to reduce exit from idle latencies. If }(hjLhhhNhNubj4)}(h*n*h]hn}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjLubh is -1, all idle states are disabled. On exit from timerlat, the idle state setting is restored to its original state before running timerlat.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK#hjIubh)}(h+Requires rtla to be built with libcpupower.h]h+Requires rtla to be built with libcpupower.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK(hjIubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jphjhK(hjmhhubeh}(h]h ]h"]h$]h&]uh1jkhjMhhhjhNubh)}(h**-k**, **--kernel-threads**h](j )}(h**-k**h]h-k}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h**--kernel-threads**h]h--kernel-threads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhK*hjMhhubj)}(h:Use timerlat kernel-space threads, in contrast of **-u**. h]h)}(h9Use timerlat kernel-space threads, in contrast of **-u**.h](h2Use timerlat kernel-space threads, in contrast of }(hjhhhNhNubj )}(h**-u**h]h-u}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjhK,hjMhhubh)}(h**-u**, **--user-threads**h](j )}(h**-u**h]h-u}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h**--user-threads**h]h--user-threads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhjhK.hjMhhubj)}(hX;Set timerlat to run without a workload, and then dispatches user-space workloads to wait on the timerlat_fd. Once the workload is awakes, it goes to sleep again adding so the measurement for the kernel-to-user and user-to-kernel to the tracer output. **--user-threads** will be used unless the user specify **-k**. h]h)}(hX:Set timerlat to run without a workload, and then dispatches user-space workloads to wait on the timerlat_fd. Once the workload is awakes, it goes to sleep again adding so the measurement for the kernel-to-user and user-to-kernel to the tracer output. **--user-threads** will be used unless the user specify **-k**.h](hSet timerlat to run without a workload, and then dispatches user-space workloads to wait on the timerlat_fd. Once the workload is awakes, it goes to sleep again adding so the measurement for the kernel-to-user and user-to-kernel to the tracer output. }(hj hhhNhNubj )}(h**--user-threads**h]h--user-threads}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh& will be used unless the user specify }(hj hhhNhNubj )}(h**-k**h]h-k}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjhK0hjMhhubh)}(h**-U**, **--user-load**h](j )}(h**-U**h]h-U}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh, }(hjXhhhNhNubj )}(h**--user-load**h]h --user-load}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1hhjhK5hjMhhubj)}(hSet 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/sample/timerlat_load.py for an example of user-load code. h]h)}(hSet 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/sample/timerlat_load.py for an example of user-load code.h]hSet 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/sample/timerlat_load.py for an example of user-load code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1jhjhK7hjMhhubh)}(h**-b**, **--bucket-size** *N*h](j )}(h**-b**h]h-b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h**--bucket-size**h]h --bucket-size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*N*h]hN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1hh0Documentation/tools/rtla/common_hist_options.rsthKhjMhhubj)}(h-Set the histogram bucket size (default *1*). h]h)}(h,Set the histogram bucket size (default *1*).h](h'Set the histogram bucket size (default }(hjhhhNhNubj4)}(h*1*h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-E**, **--entries** *N*h](j )}(h**-E**h]h-E}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h **--entries**h]h --entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*N*h]hN}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(h:Set the number of entries of the histogram (default 256). h]h)}(h9Set the number of entries of the histogram (default 256).h]h9Set the number of entries of the histogram (default 256).}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj=ubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**--no-header**h]j )}(hjWh]h --no-header}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhjhK hjMhhubj)}(hDo not print header. h]h)}(hDo not print header.h]hDo not print header.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjlubah}(h]h ]h"]h$]h&]uh1jhjhK hjMhhubh)}(h**--no-summary**h]j )}(hjh]h --no-summary}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhK hjMhhubj)}(hDo not print summary. h]h)}(hDo not print summary.h]hDo not print summary.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**--no-index**h]j )}(hjh]h --no-index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(hDo not print index. h]h)}(hDo not print index.h]hDo not print index.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**--with-zeros**h]j )}(hjh]h --with-zeros}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(hPrint zero only entries. h]h)}(hPrint zero only entries.h]hPrint zero only entries.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h**-c**, **--cpus** *cpu-list*h](j )}(h**-c**h]h-c}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, }(hj hhhNhNubj )}(h **--cpus**h]h--cpus}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(h *cpu-list*h]hcpu-list}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubeh}(h]h ]h"]h$]h&]uh1hh+Documentation/tools/rtla/common_options.rsthKhjMhhubj)}(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.}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhjN ubah}(h]h ]h"]h$]h&]uh1jhjM hKhjMhhubh)}(h&**-H**, **--house-keeping** *cpu-list*h](j )}(h**-H**h]h-H}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubh, }(hjf hhhNhNubj )}(h**--house-keeping**h]h--house-keeping}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubh }(hjf hhhNhNubj4)}(h *cpu-list*h]hcpu-list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjf ubeh}(h]h ]h"]h$]h&]uh1hhjM hKhjMhhubj)}(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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhj ubah}(h]h ]h"]h$]h&]uh1jhjM hKhjMhhubh)}(h&**-d**, **--duration** *time[s|m|h|d]*h](j )}(h**-d**h]h-d}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, }(hj hhhNhNubj )}(h**--duration**h]h --duration}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(h*time[s|m|h|d]*h]h time[s|m|h|d]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubeh}(h]h ]h"]h$]h&]uh1hhjM hK hjMhhubj)}(h!Set the duration of the session. h]h)}(h Set the duration of the session.h]h Set the duration of the session.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hK hj ubah}(h]h ]h"]h$]h&]uh1jhjM hK hjMhhubh)}(h**-D**, **--debug**h](j )}(h**-D**h]h-D}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, }(hj hhhNhNubj )}(h **--debug**h]h--debug}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhjM hK hjMhhubj)}(hPrint debug info. h]h)}(hPrint debug info.h]hPrint debug info.}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhj8 ubah}(h]h ]h"]h$]h&]uh1jhjM hKhjMhhubh)}(h**-e**, **--event** *sys:event*h](j )}(h**-e**h]h-e}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP ubh, }(hjP hhhNhNubj )}(h **--event**h]h--event}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP ubh }(hjP hhhNhNubj4)}(h *sys:event*h]h sys:event}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjP ubeh}(h]h ]h"]h$]h&]uh1hhjM hKhjMhhubj)}(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 (}(hj hhhNhNubj )}(h**-t**h]h-t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh7) session. The argument can be a specific event, e.g., }(hj hhhNhNubj )}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(h*sched:sched_switch*h]hsched:sched_switch}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh), or all events of a system group, e.g., }(hj hhhNhNubj )}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }hj sbj4)}(h*sched*h]hsched}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh . Multiple }(hj hhhNhNubj )}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh% are allowed. It is only active when }(hj hhhNhNubj )}(h**-t**h]h-t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh or }(hj hhhNhNubj )}(h**-a**h]h-a}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh are set.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hKhj ubah}(h]h ]h"]h$]h&]uh1jhjM hKhjMhhubh)}(h**--filter** **h](j )}(h **--filter**h]h--filter}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubh }(hj4 hhhNhNubj4)}(h **h]h}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj4 ubeh}(h]h ]h"]h$]h&]uh1hhjM hKhjMhhubj)}(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 }(hjb hhhNhNubj )}(h**-e**h]h-e}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb ubh }(hjb hhhNhNubj4)}(h *sys:event*h]h sys:event}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjb ubh event with }(hjb hhhNhNubj4)}(h **h]h}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjb ubh4. For further information about event filtering see }(hjb hhhNhNubh reference)}(hHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filteringh]hHhttps://www.kernel.org/doc/html/latest/trace/events.html#event-filtering}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hjb ubh.}(hjb hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hKhj^ ubah}(h]h ]h"]h$]h&]uh1jhjM hKhjMhhubjl)}(hhh]jq)}(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](jw)}(h**--trigger** **h](j )}(h **--trigger**h]h --trigger}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(h **h]h }(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubeh}(h]h ]h"]h$]h&]uh1jvhjM hK"hj ubj)}(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 }(hj hhhNhNubj )}(h**-e**h]h-e}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(h *sys:event*h]h sys:event}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh . If the }(hj hhhNhNubj4)}(h*hist:*h]hhist:}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubhX trigger is activated, the output histogram will be automatically saved to a file named }(hj hhhNhNubj4)}(h*system_event_hist.txt*h]hsystem_event_hist.txt}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh. For example, the command:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hKhj ubh)}(h{rtla -t -e osnoise:irq_noise --trigger="hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount"h]hrtla -t -e osnoise:irq_noise --trigger=”hist:key=desc,duration/1000:sort=desc,duration/1000:vals=hitcount”}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhj ubh)}(h}Will automatically save the content of the histogram associated to *osnoise:irq_noise* event in *osnoise_irq_noise_hist.txt*.h](hCWill automatically save the content of the histogram associated to }(hjY hhhNhNubj4)}(h*osnoise:irq_noise*h]hosnoise:irq_noise}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjY ubh event in }(hjY hhhNhNubj4)}(h*osnoise_irq_noise_hist.txt*h]hosnoise_irq_noise_hist.txt}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjY ubh.}(hjY hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK hj ubh)}(hxFor further information about event trigger see https://www.kernel.org/doc/html/latest/trace/events.html#event-triggers.h](h0For further information about event trigger see }(hj hhhNhNubj )}(hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggersh]hGhttps://www.kernel.org/doc/html/latest/trace/events.html#event-triggers}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK"hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jphjM hK"hj ubah}(h]h ]h"]h$]h&]uh1jkhjMhhhjM hNubh)}(h>**-P**, **--priority** *o:prio|r:prio|f:prio|d:runtime:period*h](j )}(h**-P**h]h-P}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, }(hj hhhNhNubj )}(h**--priority**h]h --priority}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh }(hj hhhNhNubj4)}(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&]uh1j3hj ubeh}(h]h ]h"]h$]h&]uh1hhjM hK$hjMhhubj)}(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&]uh1hhjM hK&hj ubh bullet_list)}(hhh](h list_item)}(h'*o:prio* - use SCHED_OTHER with *prio*;h]h)}(hj h](j4)}(h*o:prio*h]ho:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh - use SCHED_OTHER with }(hj hhhNhNubj4)}(h*prio*h]hprio}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK(hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h$*r:prio* - use SCHED_RR with *prio*;h]h)}(hjL h](j4)}(h*r:prio*h]hr:prio}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjN ubh - use SCHED_RR with }(hjN hhhNhNubj4)}(h*prio*h]hprio}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjN ubh;}(hjN hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK)hjJ ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h&*f:prio* - use SCHED_FIFO with *prio*;h]h)}(hj h](j4)}(h*f:prio*h]hf:prio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh - use SCHED_FIFO with }(hj hhhNhNubj4)}(h*prio*h]hprio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK*hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hf*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds. h]h)}(he*d:runtime[us|ms|s]:period[us|ms|s]* - use SCHED_DEADLINE with *runtime* and *period* in nanoseconds.h](j4)}(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&]uh1j3hj ubh - use SCHED_DEADLINE with }(hj hhhNhNubj4)}(h *runtime*h]hruntime}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh and }(hj hhhNhNubj4)}(h*period*h]hperiod}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj ubh in nanoseconds.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK+hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]bullet-uh1j hjM hK(hj ubeh}(h]h ]h"]h$]h&]uh1jhjM hK&hjMhhubh)}(h **-C**, **--cgroup**\[*=cgroup*]h](j )}(h**-C**h]h-C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj )}(h **--cgroup**h]h--cgroup}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh[}(hjhhhNhNubj4)}(h *=cgroup*h]h=cgroup}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK-hjMhhubj)}(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 }(hjThhhNhNubj4)}(h*cgroup*h]hcgroup}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjTubh# to the tracer’s threads. If the }(hjThhhNhNubj )}(h**-C**h]h-C}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubhH option is passed without arguments, the tracer’s thread will inherit }(hjThhhNhNubj )}(h**rtla**h]hrtla}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh’s }(hjThhhNhNubj4)}(h*cgroup*h]hcgroup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjTubh/. Otherwise, the threads will be placed on the }(hjThhhNhNubj4)}(h*cgroup*h]hcgroup}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjTubh passed to the option.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK/hjPubah}(h]h ]h"]h$]h&]uh1jhjM hK/hjMhhubh)}(h**--warm-up** *s*h](j )}(h **--warm-up**h]h --warm-up}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*s*h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1hhjM hK1hjMhhubj)}(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 }(hjhhhNhNubj4)}(h*s*h]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh seconds before starting collecting the data, allowing the system to warm-up. Statistical data generated during warm-up is discarded.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjM hK3hjubah}(h]h ]h"]h$]h&]uh1jhjM hK3hjMhhubjl)}(hhh]jq)}(h]**--trace-buffer-size** *kB* Set the per-cpu trace buffer size in kB for the tracing output. h](jw)}(h**--trace-buffer-size** *kB*h](j )}(h**--trace-buffer-size**h]h--trace-buffer-size}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh }(hjhhhNhNubj4)}(h*kB*h]hkB}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubeh}(h]h ]h"]h$]h&]uh1jvhjM hK6hjubj)}(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.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hK6hjGubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jphjM hK6hjubah}(h]h ]h"]h$]h&]uh1jkhjMhhhjM hNubh)}(h**-h**, **--help**h](j )}(h**-h**h]h-h}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh, }(hjjhhhNhNubj )}(h **--help**h]h--help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1hhjM hK8hjMhhubj)}(hPrint help menu. h]h)}(hPrint help menu.h]hPrint help menu.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hK:hjubah}(h]h ]h"]h$]h&]uh1jhjM hK:hjMhhubh)}(h**--dump-tasks**h]j )}(hjh]h --dump-tasks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh/Documentation/tools/rtla/common_timerlat_aa.rsthKhjMhhubj)}(hUprints the task running on all CPUs if stop conditions are met (depends on !--no-aa) h]h)}(hTprints the task running on all CPUs if stop conditions are met (depends on !--no-aa)h]hTprints the task running on all CPUs if stop conditions are met (depends on !--no-aa)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubh)}(h **--no-aa**h]j )}(hjh]h--no-aa}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhjhKhjMhhubj)}(h8disable auto-analysis, reducing rtla timerlat cpu usage h]h)}(h7disable auto-analysis, reducing rtla timerlat cpu usageh]h7disable auto-analysis, reducing rtla timerlat cpu usage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjMhhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEXAMPLEh]hEXAMPLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK#ubh)}(hXIn 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](hIn the example below, }(hj$hhhNhNubj )}(h**rtla timerlat hist**h]hrtla timerlat hist}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh is set to run for }(hj$hhhNhNubj4)}(h*10*h]h10}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh minutes, in the cpus }(hj$hhhNhNubj4)}(h*0-4*h]h0-4}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh, }(hj$hhhNhNubj4)}(h*skipping zero*h]h skipping zero}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh only lines. Moreover, }(hj$hhhNhNubj )}(h**rtla timerlat hist**h]hrtla timerlat hist}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh! will change the priority of the }(hj$hhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh threads to run under }(hj$hhhNhNubj4)}(h*SCHED_DEADLINE*h]hSCHED_DEADLINE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh priority, with a }(hj$hhhNhNubj4)}(h*100us*h]h100us}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh runtime every }(hj$hhhNhNubj4)}(h*1ms*h]h1ms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh period. The }(hj$hhhNhNubj4)}(h*1ms*h]h1ms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh period is also passed to the }(hj$hhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj$ubh5 tracer. Auto-analysis is disabled to reduce overhead}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hjhhubh 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 50h]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}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhK+hjhhubeh}(h]exampleah ]h"]exampleah$]h&]uh1hhhhhhhhK#ubh)}(hhh](h)}(hSEE ALSOh]hSEE ALSO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKfubh)}(h0**rtla-timerlat**\(1), **rtla-timerlat-top**\(1)h](j )}(h**rtla-timerlat**h]h rtla-timerlat}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh(1), }(hj#hhhNhNubj )}(h**rtla-timerlat-top**h]hrtla-timerlat-top}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh(1)}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKghjhhubh)}(hd*timerlat* tracer documentation: h](j4)}(h *timerlat*h]htimerlat}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjQubh tracer documentation: <}(hjQhhhNhNubj )}(hAhttps://www.kernel.org/doc/html/latest/trace/timerlat-tracer.htmlh]hAhttps://www.kernel.org/doc/html/latest/trace/timerlat-tracer.html}(hjghhhNhNubah}(h]h ]h"]h$]h&]refurijiuh1j hjQubh>}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKihjhhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhKfubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKlubh)}(h:Written by Daniel Bristot de Oliveira h](h'Written by Daniel Bristot de Oliveira <}(hjhhhNhNubj )}(hbristot@kernel.orgh]hbristot@kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bristot@kernel.orguh1j hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKmhjhhubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhKlubeh}(h]0histograms-of-the-operating-system-timer-latencyah ]h"]0histograms of the operating system timer latencyah$]h&]uh1hhhhhhhhKubeh}(h]rtla-timerlat-histah ]h"]rtla-timerlat-histah$]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}(jjjjjRjOjJjGjj jj jjjju nametypes}(jjjRjJjjjjuh}(jhjhjOj jGjUj jMj jjjjju 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-timerlat-hist.rst(NNNNta decorationNhhub.