€•“Œ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/timers/highres”Œ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/timers/highres”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/timers/highres”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/timers/highres”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/timers/highres”Œ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/timers/highres”Œ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/timers/highres”Œ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Œ5High resolution timers and dynamic ticks design notes”h]”hŒ5High resolution timers and dynamic ticks design notes”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj5h²hh³hÊh´Nubj9)”}”(hŒ%timeofday and clock source management”h]”hÌ)”}”(hjSh]”hŒ%timeofday and clock source management”…””}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj5h²hh³hÊh´Nubj9)”}”(hŒclock event management”h]”hÌ)”}”(hjjh]”hŒclock event management”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjhubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj5h²hh³hÊh´Nubj9)”}”(hŒ#high resolution timer functionality”h]”hÌ)”}”(hjh]”hŒ#high resolution timer functionality”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj5h²hh³hÊh´Nubj9)”}”(hŒdynamic ticks ”h]”hÌ)”}”(hŒ dynamic ticks”h]”hŒ dynamic ticks”…””}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj5h²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j3h³hÊh´Khh·h²hubh¶)”}”(hhh]”(h»)”}”(hŒhrtimer base infrastructure”h]”hŒhrtimer base infrastructure”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¶h²hh³hÊh´KubhÌ)”}”(hŒ½The hrtimer base infrastructure was merged into the 2.6.16 kernel. Details of the base implementation are covered in Documentation/timers/hrtimers.rst. See also figure #2 (OLS slides p. 15)”h]”hŒ½The hrtimer base infrastructure was merged into the 2.6.16 kernel. Details of the base implementation are covered in Documentation/timers/hrtimers.rst. See also figure #2 (OLS slides p. 15)”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K!hj¶h²hubhÌ)”}”(hŒZThe main differences to the timer wheel, which holds the armed timer_list type timers are:”h]”hŒZThe main differences to the timer wheel, which holds the armed timer_list type timers are:”…””}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K%hj¶h²hubhŒ block_quote”“”)”}”(hŒj- time ordered enqueueing into a rb-tree - independent of ticks (the processing is based on nanoseconds) ”h]”j4)”}”(hhh]”(j9)”}”(hŒ&time ordered enqueueing into a rb-tree”h]”hÌ)”}”(hjîh]”hŒ&time ordered enqueueing into a rb-tree”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjéubj9)”}”(hŒ?independent of ticks (the processing is based on nanoseconds) ”h]”hÌ)”}”(hŒ=independent of ticks (the processing is based on nanoseconds)”h]”hŒ=independent of ticks (the processing is based on nanoseconds)”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjéubeh}”(h]”h ]”h"]”h$]”h&]”j´jµuh1j3h³hÊh´K(hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jãh³hÊh´K(hj¶h²hubeh}”(h]”Œhrtimer-base-infrastructure”ah ]”h"]”Œhrtimer base infrastructure”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒ%timeofday and clock source management”h]”hŒ%timeofday and clock source management”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj/h²hh³hÊh´K-ubhÌ)”}”(hXÒJohn Stultz's Generic Time Of Day (GTOD) framework moves a large portion of code out of the architecture-specific areas into a generic management framework, as illustrated in figure #3 (OLS slides p. 18). The architecture specific portion is reduced to the low level hardware details of the clock sources, which are registered in the framework and selected on a quality based decision. The low level code provides hardware setup and readout routines and initializes data structures, which are used by the generic time keeping code to convert the clock ticks to nanosecond based time values. All other time keeping related functionality is moved into the generic code. The GTOD base patch got merged into the 2.6.18 kernel.”h]”hXÔJohn Stultz’s Generic Time Of Day (GTOD) framework moves a large portion of code out of the architecture-specific areas into a generic management framework, as illustrated in figure #3 (OLS slides p. 18). The architecture specific portion is reduced to the low level hardware details of the clock sources, which are registered in the framework and selected on a quality based decision. The low level code provides hardware setup and readout routines and initializes data structures, which are used by the generic time keeping code to convert the clock ticks to nanosecond based time values. All other time keeping related functionality is moved into the generic code. The GTOD base patch got merged into the 2.6.18 kernel.”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hj/h²hubhÌ)”}”(hŒnFurther information about the Generic Time Of Day framework is available in the OLS 2005 Proceedings Volume 1:”h]”hŒnFurther information about the Generic Time Of Day framework is available in the OLS 2005 Proceedings Volume 1:”…””}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hj/h²hubjä)”}”(hŒ=http://www.linuxsymposium.org/2005/linuxsymposium_procv1.pdf ”h]”hÌ)”}”(hŒ