Csphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget,/translations/zh_CN/tools/rtla/rtla-timerlatmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/zh_TW/tools/rtla/rtla-timerlatmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/it_IT/tools/rtla/rtla-timerlatmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ja_JP/tools/rtla/rtla-timerlatmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ko_KR/tools/rtla/rtla-timerlatmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/sp_SP/tools/rtla/rtla-timerlatmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h rtla-timerlath]h rtla-timerlat}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhF/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-timerlat.rsthKubh)}(hhh](h)}(h+Measures the operating system timer latencyh]h+Measures 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** [*MODE*] ...h](hstrong)}(h**rtla timerlat**h]h rtla timerlat}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [}(hjhhhNhNubhemphasis)}(h*MODE*h]hMODE}(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 enables 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&]uh1j3hjubhI handler. It also enables 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)}(hXThe **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](hThe }(hjhhhNhNubj )}(h**rtla timerlat**h]h rtla timerlat}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh tool sets the options of the }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh 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 }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh tracer. If either BPF or the }(hjhhhNhNubj )}(h**osnoise:timerlat_sample**h]hosnoise:timerlat_sample}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/ tracepoint it attaches to is unavailable, the }(hjhhhNhNubj )}(h**rtla timerlat**h]h rtla timerlat}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhS tool falls back to using tracefs to process the data asynchronously in user space.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhK hjUhhubh)}(hThe **rtla timerlat top** mode displays a summary of the periodic output from the *timerlat* tracer. The **rtla timerlat hist** mode displays a histogram of each tracer event occurrence. For further details, please refer to the respective man page.h](hThe }(hjihhhNhNubj )}(h**rtla timerlat top**h]hrtla timerlat top}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh9 mode displays a summary of the periodic output from the }(hjihhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjiubh tracer. The }(hjihhhNhNubj )}(h**rtla timerlat hist**h]hrtla timerlat hist}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubhy mode displays a histogram of each tracer event occurrence. For further details, please refer to the respective man page.}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjUhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMODESh]hMODES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(h**top**h]j )}(hjh]htop}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(h+Prints the summary from *timerlat* tracer. h]h)}(h*Prints the summary from *timerlat* tracer.h](hPrints the summary from }(hjhhhNhNubj4)}(h *timerlat*h]htimerlat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh tracer.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubh)}(h**hist**h]j )}(hj h]hhist}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(h(Prints a histogram of timerlat samples. h]h)}(h'Prints a histogram of timerlat samples.h]h'Prints a histogram of timerlat samples.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj ubah}(h]h ]h"]h$]h&]uh1jhhhK hjhhubh)}(hEIf no *MODE* is given, the top mode is called, passing the arguments.h](hIf no }(hj8hhhNhNubj4)}(h*MODE*h]hMODE}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj8ubh9 is given, the top mode is called, passing the arguments.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjhhubeh}(h]modesah ]h"]modesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOPTIONSh]hOPTIONS}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hhhhhK%ubh)}(h**-h**, **--help**h](j )}(h**-h**h]h-h}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }(hjqhhhNhNubj )}(h **--help**h]h--help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1hhhhK&hj`hhubj)}(hDisplay the help text. h]h)}(hDisplay the help text.h]hDisplay the help text.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhhhK(hj`hhubh)}(h?For other options, see the man page for the corresponding mode.h]h?For other options, see the man page for the corresponding mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hj`hhubeh}(h]optionsah ]h"]optionsah$]h&]uh1hhhhhhhhK%ubh)}(hhh](h)}(hSEE ALSOh]hSEE ALSO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK-ubh)}(h5**rtla-timerlat-top**\(1), **rtla-timerlat-hist**\(1)h](j )}(h**rtla-timerlat-top**h]hrtla-timerlat-top}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh(1), }(hjhhhNhNubj )}(h**rtla-timerlat-hist**h]hrtla-timerlat-hist}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh(1)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK.hjhhubh)}(hd*timerlat* tracer documentation: h](j4)}(h *timerlat*h]htimerlat}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh tracer documentation: <}(hjhhhNhNubh reference)}(hAhttps://www.kernel.org/doc/html/latest/trace/timerlat-tracer.htmlh]hAhttps://www.kernel.org/doc/html/latest/trace/timerlat-tracer.html}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij"uh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hjhhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1hhhhhhhhK-ubh)}(hhh](h)}(hAUTHORh]hAUTHOR}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhK3ubh)}(h:Written by Daniel Bristot de Oliveira h](h'Written by Daniel Bristot de Oliveira <}(hjRhhhNhNubj)}(hbristot@kernel.orgh]hbristot@kernel.org}(hjZhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bristot@kernel.orguh1jhjRubh>}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK4hjAhhubeh}(h]authorah ]h"]authorah$]h&]uh1hhhhhhhhK3ubh)}(hhh](h)}(hREPORTING BUGSh]hREPORTING BUGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hhh,Documentation/tools/rtla/common_appendix.rsthKubh)}(hUReport bugs to and h](hReport bugs to <}(hjhhhNhNubj)}(hlinux-kernel@vger.kernel.orgh]hlinux-kernel@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri#mailto:linux-kernel@vger.kernel.orguh1jhjubh> and <}(hjhhhNhNubj)}(h!linux-trace-devel@vger.kernel.orgh]h!linux-trace-devel@vger.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:linux-trace-devel@vger.kernel.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhj|hhubeh}(h]reporting-bugsah ]h"]reporting bugsah$]h&]uh1hhhhhhjhKubh)}(hhh](h)}(hLICENSEh]hLICENSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhKubh)}(h6**rtla** is Free Software licensed under the GNU GPLv2h](j )}(h**rtla**h]hrtla}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. is Free Software licensed under the GNU GPLv2}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjhhubeh}(h]licenseah ]h"]licenseah$]h&]uh1hhhhhhjhKubh)}(hhh](h)}(hCOPYINGh]hCOPYING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhjhK ubh)}(hwCopyright \(C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).h]hwCopyright (C) 2021 Red Hat, Inc. Free use of this software is granted under the terms of the GNU Public License (GPL).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjhhubeh}(h]copyingah ]h"]copyingah$]h&]uh1hhhhhhjhK ubeh}(h]+measures-the-operating-system-timer-latencyah ]h"]+measures the operating system timer latencyah$]h&]uh1hhhhhhhhKubeh}(h] rtla-timerlatah ]h"] rtla-timerlatah$]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_handlerj[error_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}(j5j2j-j*jRjOjjj]jZjjj>j;jyjvjjjjj%j"u nametypes}(j5j-jRjj]jj>jyjjj%uh}(j2hj*hjOj jjUjZjjj`j;jjvjAjj|jjj"ju 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.rst(NNNNta decorationNhhub.