Psphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget6/translations/zh_CN/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget6/translations/zh_TW/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget6/translations/it_IT/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget6/translations/ja_JP/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget6/translations/ko_KR/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget6/translations/sp_SP/tools/rtla/common_timerlat_optionsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsubstitution_definition)}(hI.. |threshold| replace:: **-a/--auto**, **-i/--irq**, or **-T/--thread**h](hstrong)}(h **-a/--auto**h]h -a/--auto}hhsbah}(h]h ]h"]h$]h&]uh1hhhubh, }hhsbh)}(h **-i/--irq**h]h-i/--irq}hhsbah}(h]h ]h"]h$]h&]uh1hhhubh, or }hhsbh)}(h**-T/--thread**h]h -T/--thread}hhsbah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"] thresholdah$]h&]uh1hhP/var/lib/git/docbuild/linux/Documentation/tools/rtla/common_timerlat_options.rsthKhhhhubh)}(h.. |thresharg| replace:: -Th]h-T}hhsbah}(h]h ]h"] threshargah$]h&]uh1hhhhKhhhhubh)}(h#.. |tracer| replace:: timerlat h]htimerlat}hhsbah}(h]h ]h"]tracerah$]h&]uh1hhhhKhhhhubh)}(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](h5For time-sensitive actions, it is recommended to run }hjsbh)}(h**rtla timerlat**h]h rtla timerlat}hj sbah}(h]h ]h"]h$]h&]uh1hhjubh 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.}hjsbeh}(h]h ]h"] actionsperfah$]h&]uh1hhhhKhhhhubh paragraph)}(h**-a**, **--auto** *us*h](h)}(h**-a**h]h-a}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubh, }(hj$hhhNhNubh)}(h **--auto**h]h--auto}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$ubh }(hj$hhhNhNubhemphasis)}(h*us*h]hus}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj$ubeh}(h]h ]h"]h$]h&]uh1j"hhhK hhhhubh 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]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 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 }(hjhhhhNhNubh)}(h**-T**h]h-T}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubh }(hjhhhhNhNubjM)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhubh }hjhsbh)}(h**-s**h]h-s}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubh }hjhsbjM)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhubh }(hjhhhhNhNubh)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubh. By default, }(hjhhhhNhNubjM)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhubh tracer uses FIFO:95 for }(hjhhhhNhNubjM)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhubh threads, thus equilavent to }(hjhhhhNhNubh)}(h**-P**h]h-P}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhubh }hjhsbjM)}(h*f:95*h]hf:95}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhubh.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK hjdubah}(h]h ]h"]h$]h&]uh1jbhhhK hhhhubj#)}(h**-p**, **--period** *us*h](h)}(h**-p**h]h-p}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h **--period**h]h--period}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubjM)}(h*us*h]hus}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubeh}(h]h ]h"]h$]h&]uh1j"hhhKhhhhubjc)}(h2Set the *timerlat* tracer period in microseconds. h]j#)}(h1Set the *timerlat* tracer period in microseconds.h](hSet the }(hj^hhhNhNubjM)}(h *timerlat*h]htimerlat}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj^ubh tracer period in microseconds.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhKhjZubah}(h]h ]h"]h$]h&]uh1jbhhhKhhhhubj#)}(h**-i**, **--irq** *us*h](h)}(h**-i**h]h-i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h **--irq**h]h--irq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubjM)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubeh}(h]h ]h"]h$]h&]uh1j"hhhKhhhhubjc)}(hCStop trace if the *IRQ* latency is higher than the argument in us. h]j#)}(hBStop trace if the *IRQ* latency is higher than the argument in us.h](hStop trace if the }(hjhhhNhNubjM)}(h*IRQ*h]hIRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh+ latency is higher than the argument in us.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhKhjubah}(h]h ]h"]h$]h&]uh1jbhhhKhhhhubj#)}(h**-T**, **--thread** *us*h](h)}(h**-T**h]h-T}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h **--thread**h]h--thread}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubjM)}(h*us*h]hus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubeh}(h]h ]h"]h$]h&]uh1j"hhhKhhhhubjc)}(hFStop trace if the *Thread* latency is higher than the argument in us. h]j#)}(hEStop trace if the *Thread* latency is higher than the argument in us.h](hStop trace if the }(hj*hhhNhNubjM)}(h*Thread*h]hThread}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj*ubh+ latency is higher than the argument in us.}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhKhj&ubah}(h]h ]h"]h$]h&]uh1jbhhhKhhhhubj#)}(h**-s**, **--stack** *us*h](h)}(h**-s**h]h-s}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubh, }(hjPhhhNhNubh)}(h **--stack**h]h--stack}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPubh }(hjPhhhNhNubjM)}(h*us*h]hus}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjPubeh}(h]h ]h"]h$]h&]uh1j"hhhKhhhhubjc)}(h[Save the stack trace at the *IRQ* if a *Thread* latency is higher than the argument in us. h]j#)}(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 }(hjhhhNhNubjM)}(h*IRQ*h]hIRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh if a }(hjhhhNhNubjM)}(h*Thread*h]hThread}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh+ latency is higher than the argument in us.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK hjubah}(h]h ]h"]h$]h&]uh1jbhhhK hhhhubj#)}(h**-t**, **--trace** \[*file*]h](h)}(h**-t**h]h-t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h **--trace**h]h--trace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh [}(hjhhhNhNubjM)}(h*file*h]hfile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK#hhhhubjc)}(h7Save the stopped trace to [*file|timerlat_trace.txt*]. h]j#)}(h6Save the stopped trace to [*file|timerlat_trace.txt*].h](hSave the stopped trace to [}(hj hhhNhNubjM)}(h*file|timerlat_trace.txt*h]hfile|timerlat_trace.txt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj ubh].}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK%hjubah}(h]h ]h"]h$]h&]uh1jbhhhK%hhhhubhdefinition_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](h)}(h**--dma-latency**h]h --dma-latency}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubh }(hj?hhhNhNubjM)}(h*us*h]hus}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj?ubeh}(h]h ]h"]h$]h&]uh1j=hhhK*hj9ubh definition)}(hhh]j#)}(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 }(hjnhhhNhNubjM)}(h*us*h]hus}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjnubh,, aiming to bound exit from idle latencies. }(hjnhhhNhNubjM)}(h *cyclictest*h]h cyclictest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjnubh sets this value to }(hjnhhhNhNubjM)}(h*0*h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjnubh by default, use }(hjnhhhNhNubh)}(h**--dma-latency**h]h --dma-latency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnubh }(hjnhhhNhNubjM)}(h*0*h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjnubh to have similar results.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK(hjkubah}(h]h ]h"]h$]h&]uh1jihj9ubeh}(h]h ]h"]h$]h&]uh1j7hhhK*hj4ubj8)}(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](h)}(h**--deepest-idle-state**h]h--deepest-idle-state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubjM)}(h*n*h]hn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubeh}(h]h ]h"]h$]h&]uh1j=hhhK2hjubjj)}(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 }(hjhhhNhNubjM)}(h*n*h]hn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubhS for cpus that are running timerlat threads to reduce exit from idle latencies. If }(hjhhhNhNubjM)}(h*n*h]hn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjubh is -1, all idle states are disabled. On exit from timerlat, the idle state setting is restored to its original state before running timerlat.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK-hjubj#)}(h+Requires rtla to be built with libcpupower.h]h+Requires rtla to be built with libcpupower.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hhhK2hjubeh}(h]h ]h"]h$]h&]uh1jihjubeh}(h]h ]h"]h$]h&]uh1j7hhhK2hj4hhubeh}(h]h ]h"]h$]h&]uh1j2hhhhhhhNubj#)}(h**-k**, **--kernel-threads**h](h)}(h**-k**h]h-k}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubh, }(hjehhhNhNubh)}(h**--kernel-threads**h]h--kernel-threads}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubeh}(h]h ]h"]h$]h&]uh1j"hhhK4hhhhubjc)}(h:Use timerlat kernel-space threads, in contrast of **-u**. h]j#)}(h9Use timerlat kernel-space threads, in contrast of **-u**.h](h2Use timerlat kernel-space threads, in contrast of }(hjhhhNhNubh)}(h**-u**h]h-u}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK6hjubah}(h]h ]h"]h$]h&]uh1jbhhhK6hhhhubj#)}(h**-u**, **--user-threads**h](h)}(h**-u**h]h-u}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h**--user-threads**h]h--user-threads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j"hhhK8hhhhubjc)}(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]j#)}(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. }(hjhhhNhNubh)}(h**--user-threads**h]h--user-threads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh& will be used unless the user specify }(hjhhhNhNubh)}(h**-k**h]h-k}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j"hhhK:hjubah}(h]h ]h"]h$]h&]uh1jbhhhK:hhhhubj#)}(h**-U**, **--user-load**h](h)}(h**-U**h]h-U}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h**--user-load**h]h --user-load}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j"hhhK?hhhhubjc)}(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]j#)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hhhKAhjIubah}(h]h ]h"]h$]h&]uh1jbhhhKAhhhhubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(titleN 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}(hhhhhhjjusubstitution_names}( thresholdhߌ thresharghtracerh actionsperfjurefnames}refids}nameids} nametypes}h} 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] decorationNhhub.