€•œPŒ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”Œ,/translations/zh_CN/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/pt_BR/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/tools/rtla/rtla-timerlat”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ rtla-timerlat”h]”hŒ rtla-timerlat”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒF/var/lib/git/docbuild/linux/Documentation/tools/rtla/rtla-timerlat.rst”h´Kubh¶)”}”(hhh]”(h»)”}”(hŒ+Measures the operating system timer latency”h]”hŒ+Measures 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”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´Khhøubah}”(h]”h ]”h"]”h$]”h&]”uh1höhhãubeh}”(h]”h ]”h"]”h$]”h&]”uh1háh³hÊh´KhhÞh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhhËh²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒSYNOPSIS”h]”hŒSYNOPSIS”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K ubhý)”}”(hŒ**rtla timerlat** [*MODE*] ...”h]”(hŒstrong”“”)”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…””}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj/ubhŒ [”…””}”(hj/h²hh³Nh´NubhŒemphasis”“”)”}”(hŒ*MODE*”h]”hŒMODE”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj/ubhŒ] ...”…””}”(hj/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K hjh²hubeh}”(h]”Œsynopsis”ah ]”h"]”Œsynopsis”ah$]”h&]”uh1hµhhËh²hh³hÊh´K ubh¶)”}”(hhh]”(h»)”}”(hŒ DESCRIPTION”h]”hŒ DESCRIPTION”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjih²hh³hÊh´Kubhý)”}”(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 ”…””}”(hjzh²hh³Nh´Nubj4)”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjzubhŒ tool is an interface for the ”…””}”(hjzh²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjzubhŒ tracer. The ”…””}”(hjzh²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjzubhŒî 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.”…””}”(hjzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³Œ8Documentation/tools/rtla/common_timerlat_description.txt”h´Khjih²hubhý)”}”(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´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj¿ubhŒ_ tracer outputs information in two ways. It periodically prints the timer latency at the timer ”…””}”(hj¿h²hh³Nh´NubjH)”}”(hŒ*IRQ*”h]”hŒIRQ”…””}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj¿ubhŒ handler and the ”…””}”(hj¿h²hh³Nh´NubjH)”}”(hŒ*Thread*”h]”hŒThread”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj¿ubhŒI handler. It also enables the trace of the most relevant information via ”…””}”(hj¿h²hh³Nh´Nubj4)”}”(hŒ **osnoise:**”h]”hŒosnoise:”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj¿ubhŒ tracepoints.”…””}”(hj¿h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³j¾h´Khjih²hubhý)”}”(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 ”…””}”(hjh²hh³Nh´Nubj4)”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubhŒ tool sets the options of the ”…””}”(hjh²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjubhŒ« 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 ”…””}”(hjh²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjubhŒ tracer. If either BPF or the ”…””}”(hjh²hh³Nh´Nubj4)”}”(hŒ**osnoise:timerlat_sample**”h]”hŒosnoise:timerlat_sample”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubhŒ/ tracepoint it attaches to is unavailable, the ”…””}”(hjh²hh³Nh´Nubj4)”}”(hŒ**rtla timerlat**”h]”hŒ rtla timerlat”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubhŒS tool falls back to using tracefs to process the data asynchronously in user space.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³j¾h´K hjih²hubhý)”}”(hŒøThe **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]”(hŒThe ”…””}”(hj}h²hh³Nh´Nubj4)”}”(hŒ**rtla timerlat top**”h]”hŒrtla timerlat top”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj}ubhŒ9 mode displays a summary of the periodic output from the ”…””}”(hj}h²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj}ubhŒ tracer. The ”…””}”(hj}h²hh³Nh´Nubj4)”}”(hŒ**rtla timerlat hist**”h]”hŒrtla timerlat hist”…””}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj}ubhŒy mode displays a histogram of each tracer event occurrence. For further details, please refer to the respective man page.”…””}”(hj}h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´Khjih²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hµhhËh²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒMODES”h]”hŒMODES”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÉh²hh³hÊh´Kubhý)”}”(hŒ**top**”h]”j4)”}”(hjÜh]”hŒtop”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´KhjÉh²hubhŒ block_quote”“”)”}”(hŒ+Prints the summary from *timerlat* tracer. ”h]”hý)”}”(hŒ*Prints the summary from *timerlat* tracer.”h]”(hŒPrints the summary from ”…””}”(hj÷h²hh³Nh´NubjH)”}”(hŒ *timerlat*”h]”hŒtimerlat”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhj÷ubhŒ tracer.”…””}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´Khjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jñh³hÊh´KhjÉh²hubhý)”}”(hŒ**hist**”h]”j4)”}”(hjh]”hŒhist”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´KhjÉh²hubjò)”}”(hŒ(Prints a histogram of timerlat samples. ”h]”hý)”}”(hŒ'Prints a histogram of timerlat samples.”h]”hŒ'Prints a histogram of timerlat samples.”…””}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jñh³hÊh´K hjÉh²hubhý)”}”(hŒEIf no *MODE* is given, the top mode is called, passing the arguments.”h]”(hŒIf no ”…””}”(hjLh²hh³Nh´NubjH)”}”(hŒ*MODE*”h]”hŒMODE”…””}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jGhjLubhŒ9 is given, the top mode is called, passing the arguments.”…””}”(hjLh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K"hjÉh²hubeh}”(h]”Œmodes”ah ]”h"]”Œmodes”ah$]”h&]”uh1hµhhËh²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒOPTIONS”h]”hŒOPTIONS”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjth²hh³hÊh´K%ubhý)”}”(hŒ**-h**, **--help**”h]”(j4)”}”(hŒ**-h**”h]”hŒ-h”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj…ubhŒ, ”…””}”(hj…h²hh³Nh´Nubj4)”}”(hŒ **--help**”h]”hŒ--help”…””}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K&hjth²hubjò)”}”(hŒDisplay the help text. ”h]”hý)”}”(hŒDisplay the help text.”h]”hŒDisplay the help text.”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K(hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jñh³hÊh´K(hjth²hubhý)”}”(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.”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K*hjth²hubeh}”(h]”Œoptions”ah ]”h"]”Œoptions”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´K-ubhý)”}”(hŒ5**rtla-timerlat-top**\(1), **rtla-timerlat-hist**\(1)”h]”(j4)”}”(hŒ**rtla-timerlat-top**”h]”hŒrtla-timerlat-top”…””}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjîubhŒ(1), ”…””}”(hjîh²hh³Nh´Nubj4)”}”(hŒ**rtla-timerlat-hist**”h]”hŒrtla-timerlat-hist”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjîubhŒ(1)”…””}”(hjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K.hjÝh²hubhý)”}”(hŒH`Timerlat tracer `__”h]”hŒ reference”“”)”}”(hjh]”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”uh1j hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K0hjÝh²hubeh}”(h]”Œsee-also”ah ]”h"]”Œsee also”ah$]”h&]”uh1hµhhËh²hh³hÊh´K-ubh¶)”}”(hhh]”(h»)”}”(hŒAUTHOR”h]”hŒAUTHOR”…””}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjAh²hh³hÊh´K3ubhý)”}”(hŒ:Written by Daniel Bristot de Oliveira ”h]”(hŒ'Written by Daniel Bristot de Oliveira <”…””}”(hjRh²hh³Nh´Nubj!)”}”(hŒbristot@kernel.org”h]”hŒbristot@kernel.org”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:bristot@kernel.org”uh1j hjRubhŒ>”…””}”(hjRh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÊh´K4hjAh²hubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hjvsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jthjAh²hh³Œ,Documentation/tools/rtla/common_appendix.txt”h´Kubeh}”(h]”Œauthor”ah ]”h"]”Œauthor”ah$]”h&]”uh1hµhhËh²hh³hÊh´K3ubh¶)”}”(hhh]”(h»)”}”(hŒSIGINT BEHAVIOR”h]”hŒSIGINT BEHAVIOR”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³j†h´Kubhý)”}”(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&]”uh1hüh³j†h´Khjh²hubhý)”}”(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&]”uh1hüh³j†h´K hjh²hubhý)”}”(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&]”uh1hüh³j†h´K hjh²hubhý)”}”(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&]”uh1hüh³j†h´Khjh²hubhý)”}”(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&]”uh1hüh³j†h´Khjh²hubeh}”(h]”Œsigint-behavior”ah ]”h"]”Œsigint behavior”ah$]”h&]”uh1hµhhËh²hh³j†h´Kubh¶)”}”(hhh]”(h»)”}”(hŒ EXIT STATUS”h]”hŒ EXIT STATUS”…””}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjîh²hh³j†h´KubhŒ literal_block”“”)”}”(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”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”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j„j…uh1jÿh³j†h´Khjîh²hubeh}”(h]”Œ exit-status”ah ]”h"]”Œ exit status”ah$]”h&]”uh1hµhhËh²hh³j†h´Kubh¶)”}”(hhh]”(h»)”}”(hŒREPORTING BUGS”h]”hŒREPORTING BUGS”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³j†h´K"ubhý)”}”(hŒUReport bugs to and ”h]”(hŒReport bugs to <”…””}”(hj(h²hh³Nh´Nubj!)”}”(hŒlinux-kernel@vger.kernel.org”h]”hŒlinux-kernel@vger.kernel.org”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ#mailto:linux-kernel@vger.kernel.org”uh1j hj(ubhŒ> and <”…””}”(hj(h²hh³Nh´Nubj!)”}”(hŒ!linux-trace-devel@vger.kernel.org”h]”hŒ!linux-trace-devel@vger.kernel.org”…””}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ(mailto:linux-trace-devel@vger.kernel.org”uh1j hj(ubhŒ>”…””}”(hj(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³j†h´K#hjh²hubeh}”(h]”Œreporting-bugs”ah ]”h"]”Œreporting bugs”ah$]”h&]”uh1hµhhËh²hh³j†h´K"ubh¶)”}”(hhh]”(h»)”}”(hŒLICENSE”h]”hŒLICENSE”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjfh²hh³j†h´K'ubhý)”}”(hŒ6**rtla** is Free Software licensed under the GNU GPLv2”h]”(j4)”}”(hŒ**rtla**”h]”hŒrtla”…””}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjwubhŒ. is Free Software licensed under the GNU GPLv2”…””}”(hjwh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³j†h´K(hjfh²hubeh}”(h]”Œlicense”ah ]”h"]”Œlicense”ah$]”h&]”uh1hµhhËh²hh³j†h´K'ubh¶)”}”(hhh]”(h»)”}”(hŒCOPYING”h]”hŒCOPYING”…””}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj›h²hh³j†h´K+ubhý)”}”(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&]”uh1hüh³j†h´K,hj›h²hubeh}”(h]”Œcopying”ah ]”h"]”Œcopying”ah$]”h&]”uh1hµhhËh²hh³j†h´K+ubeh}”(h]”Œ+measures-the-operating-system-timer-latency”ah ]”h"]”Œ+measures the operating system timer latency”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œ rtla-timerlat”ah ]”h"]”Œ rtla-timerlat”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”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jÏjÌjÇjÄjfjcjÆjÃjqjnjÚj×j>j;jŒj‰jëjèjjjcj`j˜j•j¿j¼uŒ nametypes”}”(jωjljjf‰jƉjq‰jÚ‰j>‰jŒ‰jë‰j‰jc‰j˜‰j¿‰uh}”(jÌh·jÄhËjcjjÃjijnjÉj×jtj;jÝj‰jAjèjjjîj`jj•jfj¼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.rst”(NNNNt”†”aŒ decoration”Nh²hub.