€•Œ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/core-api/tracepoint”Œ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/core-api/tracepoint”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/core-api/tracepoint”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/core-api/tracepoint”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/core-api/tracepoint”Œ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/core-api/tracepoint”Œ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/core-api/tracepoint”Œ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ŒThe Linux Kernel Tracepoint API”h]”hŒThe Linux Kernel Tracepoint API”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint.rst”h´KubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hh×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÕhhÒh³hÊh´KubhŒ field_body”“”)�”}”(hŒ Jason Baron”h]”hŒ paragraph”“”)�”}”(hhéh]”hŒ Jason Baron”…”�”}”(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²hubhÑ)�”}”(hhh]”(hÖ)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÕhjh³hÊh´Kubhæ)�”}”(hŒWilliam Cohen ”h]”hì)�”}”(hŒ William Cohen”h]”hŒ William Cohen”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1håhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÐh³hÊh´KhhÍh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj;h²hh³hÊh´K ubhì)�”}”(hXTracepoints are static probe points that are located in strategic points throughout the kernel. 'Probes' register/unregister with tracepoints via a callback mechanism. The 'probes' are strictly typed functions that are passed a unique set of parameters defined by each tracepoint.”h]”hX Tracepoints are static probe points that are located in strategic points throughout the kernel. ‘Probes’ register/unregister with tracepoints via a callback mechanism. The ‘probes’ are strictly typed functions that are passed a unique set of parameters defined by each tracepoint.”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´K hj;h²hubhì)�”}”(hŒçFrom this simple callback mechanism, 'probes' can be used to profile, debug, and understand kernel behavior. There are a number of tools that provide a framework for using 'probes'. These tools include Systemtap, ftrace, and LTTng.”h]”hŒïFrom this simple callback mechanism, ‘probes’ can be used to profile, debug, and understand kernel behavior. There are a number of tools that provide a framework for using ‘probes’. These tools include Systemtap, ftrace, and LTTng.”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj;h²hubhì)�”}”(hX0Tracepoints are defined in a number of header files via various macros. Thus, the purpose of this document is to provide a clear accounting of the available tracepoints. The intention is to understand not only what tracepoints are available but also to understand where future tracepoints might be added.”h]”hX0Tracepoints are defined in a number of header files via various macros. Thus, the purpose of this document is to provide a clear accounting of the available tracepoints. The intention is to understand not only what tracepoints are available but also to understand where future tracepoints might be added.”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj;h²hubhì)�”}”(hXThe API presented has functions of the form: ``trace_tracepointname(function parameters)``. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the ``Documentation/trace/*`` directory.”h]”(hŒ-The API presented has functions of the form: ”…”�”}”(hjvh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ-``trace_tracepointname(function parameters)``”h]”hŒ)trace_tracepointname(function parameters)”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjvubhŒ›. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the ”…”�”}”(hjvh²hh³Nh´Nubj)�”}”(hŒ``Documentation/trace/*``”h]”hŒDocumentation/trace/*”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjvubhŒ directory.”…”�”}”(hjvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÊh´Khj;h²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)�”}”(hhh]”(h»)�”}”(hŒIRQ”h]”hŒIRQ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj²h²hh³hÊh´K"ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ$trace_irq_handler_entry (C function)”Œc.trace_irq_handler_entry”hNt”auh1jÃhj²h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ@void trace_irq_handler_entry (int irq, struct irqaction *action)”h]”hŒdesc_signature_line”“”)�”}”(hŒ?void trace_irq_handler_entry(int irq, struct irqaction *action)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jåhjáh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K+ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j÷hjáh²hh³jöh´K+ubhŒ desc_name”“”)�”}”(hŒtrace_irq_handler_entry”h]”hŒ desc_sig_name”“”)�”}”(hŒtrace_irq_handler_entry”h]”hŒtrace_irq_handler_entry”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jhjáh²hh³jöh´K+ubhŒdesc_parameterlist”“”)�”}”(hŒ#(int irq, struct irqaction *action)”h]”(hŒdesc_parameter”“”)�”}”(hŒint irq”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj1ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj1ubj)�”}”(hŒirq”h]”hŒirq”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj+ubj0)�”}”(hŒstruct irqaction *action”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jjhjfubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjfubh)�”}”(hhh]”j)�”}”(hŒ irqaction”h]”hŒ irqaction”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jŽŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j¨Œ ASTIdentifier”“”)�”}”j£jsbŒc.trace_irq_handler_entry”†”asbuh1hhjfubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjfubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jÃhjfubj)�”}”(hŒaction”h]”hŒaction”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj+ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjáh²hh³jöh´K+ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(Œ add_permalink”ˆuh1jߌsphinx_line_type”Œ declarator”hjÛh²hh³jöh´K+ubah}”(h]”jÒah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jÙh³jöh´K+hjÖh²hubhŒ desc_content”“”)�”}”(hhh]”hì)�”}”(hŒ0called immediately before the irq action handler”h]”hŒ0called immediately before the irq action handler”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K+hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÖh²hh³jöh´K+ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”Œdomain”j¡Œobjtype”j Œdesctype”j Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jÔh²hhj²h³Nh´NubhŒ container”“”)�”}”(hX�**Parameters** ``int irq`` irq number ``struct irqaction *action`` pointer to struct irqaction **Description** The struct irqaction pointed to by **action** contains various information about the handler, including the device name, **action->name**, and the device id, **action->dev_id**. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.”h]”(hì)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hj2h]”hŒ Parameters”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K/hj,ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``int irq`` irq number ”h]”(hŒterm”“”)�”}”(hŒ ``int irq``”h]”j)�”}”(hjYh]”hŒint irq”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K,hjQubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hŒ irq number”h]”hŒ irq number”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jnh´K,hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1johjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jnh´K,hjLubjP)�”}”(hŒ9``struct irqaction *action`` pointer to struct irqaction ”h]”(jV)�”}”(hŒ``struct irqaction *action``”h]”j)�”}”(hj”h]”hŒstruct irqaction *action”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K-hjŽubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct irqaction”h]”hŒpointer to struct irqaction”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j©h´K-hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1johjŽubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j©h´K-hjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj,ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÏh]”hŒ Description”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K/hj,ubhì)�”}”(hXThe struct irqaction pointed to by **action** contains various information about the handler, including the device name, **action->name**, and the device id, **action->dev_id**. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.”h]”(hŒ#The struct irqaction pointed to by ”…”�”}”(hjåh²hh³Nh´Nubj5)�”}”(hŒ **action**”h]”hŒaction”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjåubhŒL contains various information about the handler, including the device name, ”…”�”}”(hjåh²hh³Nh´Nubj5)�”}”(hŒ**action->name**”h]”hŒ action->name”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjåubhŒ, and the device id, ”…”�”}”(hjåh²hh³Nh´Nubj5)�”}”(hŒ**action->dev_id**”h]”hŒaction->dev_id”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjåubhŒi. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.”…”�”}”(hjåh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K.hj,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ#trace_irq_handler_exit (C function)”Œc.trace_irq_handler_exit”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒHvoid trace_irq_handler_exit (int irq, struct irqaction *action, int ret)”h]”jà)�”}”(hŒGvoid trace_irq_handler_exit(int irq, struct irqaction *action, int ret)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjFh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KIubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjFh²hh³jXh´KIubj )�”}”(hŒtrace_irq_handler_exit”h]”j)�”}”(hŒtrace_irq_handler_exit”h]”hŒtrace_irq_handler_exit”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjgubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjFh²hh³jXh´KIubj*)�”}”(hŒ,(int irq, struct irqaction *action, int ret)”h]”(j0)�”}”(hŒint irq”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjƒubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjƒubj)�”}”(hŒirq”h]”hŒirq”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjƒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjubj0)�”}”(hŒstruct irqaction *action”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj¸ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¸ubh)�”}”(hhh]”j)�”}”(hŒ irqaction”h]”hŒ irqaction”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj×ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jÜŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jmsbŒc.trace_irq_handler_exit”†”asbuh1hhj¸ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¸ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¸ubj)�”}”(hŒaction”h]”hŒaction”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjubj0)�”}”(hŒint ret”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj*ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj*ubj)�”}”(hŒret”h]”hŒret”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjFh²hh³jXh´KIubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjBh²hh³jXh´KIubah}”(h]”j=ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jXh´KIhj?h²hubj)�”}”(hhh]”hì)�”}”(hŒ7called immediately after the irq action handler returns”h]”hŒ7called immediately after the irq action handler returns”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KIhjqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?h²hh³jXh´KIubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jŒj&jŒj'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hXÈ**Parameters** ``int irq`` irq number ``struct irqaction *action`` pointer to struct irqaction ``int ret`` return value **Description** If the **ret** value is set to IRQ_HANDLED, then we know that the corresponding **action->handler** successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj–h]”hŒ Parameters”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KMhj�ubjK)�”}”(hhh]”(jP)�”}”(hŒ``int irq`` irq number ”h]”(jV)�”}”(hŒ ``int irq``”h]”j)�”}”(hjµh]”hŒint irq”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KJhj¯ubjp)�”}”(hhh]”hì)�”}”(hŒ irq number”h]”hŒ irq number”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÊh´KJhjËubah}”(h]”h ]”h"]”h$]”h&]”uh1johj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jÊh´KJhj¬ubjP)�”}”(hŒ9``struct irqaction *action`` pointer to struct irqaction ”h]”(jV)�”}”(hŒ``struct irqaction *action``”h]”j)�”}”(hjîh]”hŒstruct irqaction *action”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KKhjèubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct irqaction”h]”hŒpointer to struct irqaction”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´KKhjubah}”(h]”h ]”h"]”h$]”h&]”uh1johjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jh´KKhj¬ubjP)�”}”(hŒ``int ret`` return value ”h]”(jV)�”}”(hŒ ``int ret``”h]”j)�”}”(hj'h]”hŒint ret”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KLhj!ubjp)�”}”(hhh]”hì)�”}”(hŒ return value”h]”hŒ return value”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j<h´KLhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j<h´KLhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj�ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjbh]”hŒ Description”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KNhj�ubhì)�”}”(hX5If the **ret** value is set to IRQ_HANDLED, then we know that the corresponding **action->handler** successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.”h]”(hŒIf the ”…”�”}”(hjxh²hh³Nh´Nubj5)�”}”(hŒ**ret**”h]”hŒret”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjxubhŒB value is set to IRQ_HANDLED, then we know that the corresponding ”…”�”}”(hjxh²hh³Nh´Nubj5)�”}”(hŒ**action->handler**”h]”hŒaction->handler”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjxubhŒÒ successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.”…”�”}”(hjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KMhj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ trace_softirq_entry (C function)”Œc.trace_softirq_entry”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ.void trace_softirq_entry (unsigned int vec_nr)”h]”jà)�”}”(hŒ-void trace_softirq_entry(unsigned int vec_nr)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÇh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´Kzubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÇh²hh³jÙh´Kzubj )�”}”(hŒtrace_softirq_entry”h]”j)�”}”(hŒtrace_softirq_entry”h]”hŒtrace_softirq_entry”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjèubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjÇh²hh³jÙh´Kzubj*)�”}”(hŒ(unsigned int vec_nr)”h]”j0)�”}”(hŒunsigned int vec_nr”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubj)�”}”(hŒvec_nr”h]”hŒvec_nr”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjÇh²hh³jÙh´Kzubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjÃh²hh³jÙh´Kzubah}”(h]”j¾ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jÙh´KzhjÀh²hubj)�”}”(hhh]”hì)�”}”(hŒ-called immediately before the softirq handler”h]”hŒ-called immediately before the softirq handler”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´Kzhjgh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀh²hh³jÙh´Kzubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j‚j&j‚j'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hŒ¹**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjŒh]”hŒ Parameters”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K~hj†ubjK)�”}”(hhh]”jP)�”}”(hŒ.``unsigned int vec_nr`` softirq vector number ”h]”(jV)�”}”(hŒ``unsigned int vec_nr``”h]”j)�”}”(hj«h]”hŒunsigned int vec_nr”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K{hj¥ubjp)�”}”(hhh]”hì)�”}”(hŒsoftirq vector number”h]”hŒsoftirq vector number”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÀh´K{hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1johj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jÀh´K{hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj†ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjæh]”hŒ Description”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K}hj†ubhì)�”}”(hŒgWhen used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.”h]”hŒgWhen used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K|hj†ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_softirq_exit (C function)”Œc.trace_softirq_exit”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ-void trace_softirq_exit (unsigned int vec_nr)”h]”jà)�”}”(hŒ,void trace_softirq_exit(unsigned int vec_nr)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj'h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´Kˆubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj'h²hh³j9h´Kˆubj )�”}”(hŒtrace_softirq_exit”h]”j)�”}”(hŒtrace_softirq_exit”h]”hŒtrace_softirq_exit”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj'h²hh³j9h´Kˆubj*)�”}”(hŒ(unsigned int vec_nr)”h]”j0)�”}”(hŒunsigned int vec_nr”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjdubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjdubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjdubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjdubj)�”}”(hŒvec_nr”h]”hŒvec_nr”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjdubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj`ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj'h²hh³j9h´Kˆubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj#h²hh³j9h´Kˆubah}”(h]”jah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j9h´Kˆhj h²hubj)�”}”(hhh]”hì)�”}”(hŒ4called immediately after the softirq handler returns”h]”hŒ4called immediately after the softirq handler returns”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KˆhjÇh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³j9h´Kˆubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jâj&jâj'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hŒº**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjìh]”hŒ Parameters”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KŒhjæubjK)�”}”(hhh]”jP)�”}”(hŒ.``unsigned int vec_nr`` softirq vector number ”h]”(jV)�”}”(hŒ``unsigned int vec_nr``”h]”j)�”}”(hj h]”hŒunsigned int vec_nr”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K‰hj ubjp)�”}”(hhh]”hì)�”}”(hŒsoftirq vector number”h]”hŒsoftirq vector number”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K‰hj! ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j h´K‰hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjæubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjF h]”hŒ Description”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K‹hjæubhì)�”}”(hŒhWhen used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.”h]”hŒhWhen used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KŠhjæubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ trace_softirq_raise (C function)”Œc.trace_softirq_raise”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ.void trace_softirq_raise (unsigned int vec_nr)”h]”jà)�”}”(hŒ-void trace_softirq_raise(unsigned int vec_nr)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj‡ h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K–ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj‡ h²hh³j™ h´K–ubj )�”}”(hŒtrace_softirq_raise”h]”j)�”}”(hŒtrace_softirq_raise”h]”hŒtrace_softirq_raise”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¨ ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj‡ h²hh³j™ h´K–ubj*)�”}”(hŒ(unsigned int vec_nr)”h]”j0)�”}”(hŒunsigned int vec_nr”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÄ ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÄ ubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÄ ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÄ ubj)�”}”(hŒvec_nr”h]”hŒvec_nr”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÄ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjÀ ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj‡ h²hh³j™ h´K–ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjƒ h²hh³j™ h´K–ubah}”(h]”j~ ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j™ h´K–hj€ h²hubj)�”}”(hhh]”hì)�”}”(hŒ+called immediately when a softirq is raised”h]”hŒ+called immediately when a softirq is raised”…”�”}”(hj* h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K–hj' h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€ h²hh³j™ h´K–ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jB j&jB j'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hŒ¿**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjL h]”hŒ Parameters”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KšhjF ubjK)�”}”(hhh]”jP)�”}”(hŒ.``unsigned int vec_nr`` softirq vector number ”h]”(jV)�”}”(hŒ``unsigned int vec_nr``”h]”j)�”}”(hjk h]”hŒunsigned int vec_nr”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hji ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K—hje ubjp)�”}”(hhh]”hì)�”}”(hŒsoftirq vector number”h]”hŒsoftirq vector number”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j€ h´K—hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1johje ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j€ h´K—hjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjF ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj¦ h]”hŒ Description”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj¤ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K™hjF ubhì)�”}”(hŒmWhen used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.”h]”hŒmWhen used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K˜hjF ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ trace_tasklet_entry (C function)”Œc.trace_tasklet_entry”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ?void trace_tasklet_entry (struct tasklet_struct *t, void *func)”h]”jà)�”}”(hŒ>void trace_tasklet_entry(struct tasklet_struct *t, void *func)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjç h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K·ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjç h²hh³jù h´K·ubj )�”}”(hŒtrace_tasklet_entry”h]”j)�”}”(hŒtrace_tasklet_entry”h]”hŒtrace_tasklet_entry”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjç h²hh³jù h´K·ubj*)�”}”(hŒ&(struct tasklet_struct *t, void *func)”h]”(j0)�”}”(hŒstruct tasklet_struct *t”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj$ ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj$ ubh)�”}”(hhh]”j)�”}”(hŒtasklet_struct”h]”hŒtasklet_struct”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjC ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jH Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j sbŒc.trace_tasklet_entry”†”asbuh1hhj$ ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj$ ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj$ ubj)�”}”(hŒt”h]”hŒt”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj$ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj ubj0)�”}”(hŒ void *func”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj– ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj– ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj¶ h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj– ubj)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj– ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjç h²hh³jù h´K·ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjã h²hh³jù h´K·ubah}”(h]”jÞ ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jù h´K·hjà h²hubj)�”}”(hhh]”hì)�”}”(hŒ,called immediately before the tasklet is run”h]”hŒ,called immediately before the tasklet is run”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K·hjê h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjà h²hh³jù h´K·ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j j&j j'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hŒ¸**Parameters** ``struct tasklet_struct *t`` tasklet pointer ``void *func`` tasklet callback or function being run **Description** Used to find individual tasklet execution time”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K»hj ubjK)�”}”(hhh]”(jP)�”}”(hŒ-``struct tasklet_struct *t`` tasklet pointer ”h]”(jV)�”}”(hŒ``struct tasklet_struct *t``”h]”j)�”}”(hj. h]”hŒstruct tasklet_struct *t”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj, ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K¸hj( ubjp)�”}”(hhh]”hì)�”}”(hŒtasklet pointer”h]”hŒtasklet pointer”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jC h´K¸hjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj( ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jC h´K¸hj% ubjP)�”}”(hŒ6``void *func`` tasklet callback or function being run ”h]”(jV)�”}”(hŒ``void *func``”h]”j)�”}”(hjg h]”hŒ void *func”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K¹hja ubjp)�”}”(hhh]”hì)�”}”(hŒ&tasklet callback or function being run”h]”hŒ&tasklet callback or function being run”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j| h´K¹hj} ubah}”(h]”h ]”h"]”h$]”h&]”uh1johja ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j| h´K¹hj% ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj¢ h]”hŒ Description”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´K»hj ubhì)�”}”(hŒ.Used to find individual tasklet execution time”h]”hŒ.Used to find individual tasklet execution time”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´Kºhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_tasklet_exit (C function)”Œc.trace_tasklet_exit”hNt”auh1jÃhj²h²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ>void trace_tasklet_exit (struct tasklet_struct *t, void *func)”h]”jà)�”}”(hŒ=void trace_tasklet_exit(struct tasklet_struct *t, void *func)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjã h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÅubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjã h²hh³jõ h´KÅubj )�”}”(hŒtrace_tasklet_exit”h]”j)�”}”(hŒtrace_tasklet_exit”h]”hŒtrace_tasklet_exit”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjã h²hh³jõ h´KÅubj*)�”}”(hŒ&(struct tasklet_struct *t, void *func)”h]”(j0)�”}”(hŒstruct tasklet_struct *t”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj ubh)�”}”(hhh]”j)�”}”(hŒtasklet_struct”h]”hŒtasklet_struct”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj? ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jD Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j sbŒc.trace_tasklet_exit”†”asbuh1hhj ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj ubj)�”}”(hjƒ h]”hŒt”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj ubj0)�”}”(hŒ void *func”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj‘ ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj‘ ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj‘ ubj)�”}”(hŒfunc”h]”hŒfunc”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‘ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjã h²hh³jõ h´KÅubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjß h²hh³jõ h´KÅubah}”(h]”jÚ ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jõ h´KÅhjÜ h²hubj)�”}”(hhh]”hì)�”}”(hŒ+called immediately after the tasklet is run”h]”hŒ+called immediately after the tasklet is run”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÅhjå h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÜ h²hh³jõ h´KÅubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jj&jj'‰j(‰j)‰uh1jÔh²hhj²h³Nh´Nubj+)�”}”(hŒ¸**Parameters** ``struct tasklet_struct *t`` tasklet pointer ``void *func`` tasklet callback or function being run **Description** Used to find individual tasklet execution time”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÉhjubjK)�”}”(hhh]”(jP)�”}”(hŒ-``struct tasklet_struct *t`` tasklet pointer ”h]”(jV)�”}”(hŒ``struct tasklet_struct *t``”h]”j)�”}”(hj)h]”hŒstruct tasklet_struct *t”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÆhj#ubjp)�”}”(hhh]”hì)�”}”(hŒtasklet pointer”h]”hŒtasklet pointer”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j>h´KÆhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j>h´KÆhj ubjP)�”}”(hŒ6``void *func`` tasklet callback or function being run ”h]”(jV)�”}”(hŒ``void *func``”h]”j)�”}”(hjbh]”hŒ void *func”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÇhj\ubjp)�”}”(hhh]”hì)�”}”(hŒ&tasklet callback or function being run”h]”hŒ&tasklet callback or function being run”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jwh´KÇhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1johj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jwh´KÇhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj�h]”hŒ Description”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÉhjubhì)�”}”(hŒ.Used to find individual tasklet execution time”h]”hŒ.Used to find individual tasklet execution time”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.h”h´KÈhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj²h²hh³Nh´Nubeh}”(h]”Œirq”ah ]”h"]”Œirq”ah$]”h&]”uh1hµhh·h²hh³hÊh´K"ubh¶)�”}”(hhh]”(h»)�”}”(hŒSIGNAL”h]”hŒSIGNAL”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÑh²hh³hÊh´K(ubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ"trace_signal_generate (C function)”Œc.trace_signal_generate”hNt”auh1jÃhjÑh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒrvoid trace_signal_generate (int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)”h]”jà)�”}”(hŒqvoid trace_signal_generate(int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj÷h²hh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K%ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj÷h²hh³j h´K%ubj )�”}”(hŒtrace_signal_generate”h]”j)�”}”(hŒtrace_signal_generate”h]”hŒtrace_signal_generate”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj÷h²hh³j h´K%ubj*)�”}”(hŒW(int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)”h]”(j0)�”}”(hŒint sig”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj4ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj4ubj)�”}”(hŒsig”h]”hŒsig”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj0ubj0)�”}”(hŒstruct kernel_siginfo *info”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjiubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjiubh)�”}”(hhh]”j)�”}”(hŒkernel_siginfo”h]”hŒkernel_siginfo”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjˆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j�Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jsbŒc.trace_signal_generate”†”asbuh1hhjiubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjiubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjiubj)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjiubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj0ubj0)�”}”(hŒstruct task_struct *task”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÛubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÛubh)�”}”(hhh]”j)�”}”(hŒ task_struct”h]”hŒ task_struct”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjúubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jÿŒmodname”NŒ classname”Nj§jª)�”}”j­]”j§Œc.trace_signal_generate”†”asbuh1hhjÛubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÛubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÛubj)�”}”(hŒtask”h]”hŒtask”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj0ubj0)�”}”(hŒ int group”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjKubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjKubj)�”}”(hŒgroup”h]”hŒgroup”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj0ubj0)�”}”(hŒ int result”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj€ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj€ubj)�”}”(hŒresult”h]”hŒresult”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj0ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj÷h²hh³j h´K%ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjóh²hh³j h´K%ubah}”(h]”jîah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j h´K%hjðh²hubj)�”}”(hhh]”hì)�”}”(hŒ!called when a signal is generated”h]”hŒ!called when a signal is generated”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K%hjÇh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjðh²hh³j h´K%ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jâj&jâj'‰j(‰j)‰uh1jÔh²hhjÑh³Nh´Nubj+)�”}”(hX**Parameters** ``int sig`` signal number ``struct kernel_siginfo *info`` pointer to struct siginfo ``struct task_struct *task`` pointer to struct task_struct ``int group`` shared or private ``int result`` TRACE_SIGNAL_* **Description** Current process sends a 'sig' signal to 'task' process with 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, 'info' is not a pointer and you can't access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjìh]”hŒ Parameters”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K)hjæubjK)�”}”(hhh]”(jP)�”}”(hŒ``int sig`` signal number ”h]”(jV)�”}”(hŒ ``int sig``”h]”j)�”}”(hj h]”hŒint sig”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K&hjubjp)�”}”(hhh]”hì)�”}”(hŒ signal number”h]”hŒ signal number”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j h´K&hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j h´K&hjubjP)�”}”(hŒ:``struct kernel_siginfo *info`` pointer to struct siginfo ”h]”(jV)�”}”(hŒ``struct kernel_siginfo *info``”h]”j)�”}”(hjDh]”hŒstruct kernel_siginfo *info”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K'hj>ubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct siginfo”h]”hŒpointer to struct siginfo”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jYh´K'hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1johj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jYh´K'hjubjP)�”}”(hŒ;``struct task_struct *task`` pointer to struct task_struct ”h]”(jV)�”}”(hŒ``struct task_struct *task``”h]”j)�”}”(hj}h]”hŒstruct task_struct *task”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K(hjwubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct task_struct”h]”hŒpointer to struct task_struct”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j’h´K(hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j’h´K(hjubjP)�”}”(hŒ ``int group`` shared or private ”h]”(jV)�”}”(hŒ ``int group``”h]”j)�”}”(hj¶h]”hŒ int group”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K)hj°ubjp)�”}”(hhh]”hì)�”}”(hŒshared or private”h]”hŒshared or private”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jËh´K)hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1johj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jËh´K)hjubjP)�”}”(hŒ``int result`` TRACE_SIGNAL_* ”h]”(jV)�”}”(hŒ``int result``”h]”j)�”}”(hjïh]”hŒ int result”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K*hjéubjp)�”}”(hhh]”hì)�”}”(hŒTRACE_SIGNAL_*”h]”hŒTRACE_SIGNAL_*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jh´K*hjubah}”(h]”h ]”h"]”h$]”h&]”uh1johjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jh´K*hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjæubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj*h]”hŒ Description”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K,hjæubhì)�”}”(hXCurrent process sends a 'sig' signal to 'task' process with 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, 'info' is not a pointer and you can't access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.”h]”hX3Current process sends a ‘sig’ signal to ‘task’ process with ‘info’ siginfo. If ‘info’ is SEND_SIG_NOINFO or SEND_SIG_PRIV, ‘info’ is not a pointer and you can’t access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´K+hjæubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjÑh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ!trace_signal_deliver (C function)”Œc.trace_signal_deliver”hNt”auh1jÃhjÑh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒXvoid trace_signal_deliver (int sig, struct kernel_siginfo *info, struct k_sigaction *ka)”h]”jà)�”}”(hŒWvoid trace_signal_deliver(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjkh²hh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KSubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjkh²hh³j}h´KSubj )�”}”(hŒtrace_signal_deliver”h]”j)�”}”(hŒtrace_signal_deliver”h]”hŒtrace_signal_deliver”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŒubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjkh²hh³j}h´KSubj*)�”}”(hŒ>(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)”h]”(j0)�”}”(hŒint sig”h]”(jæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj¨ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¨ubj)�”}”(hŒsig”h]”hŒsig”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¤ubj0)�”}”(hŒstruct kernel_siginfo *info”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÝubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÝubh)�”}”(hhh]”j)�”}”(hŒkernel_siginfo”h]”hŒkernel_siginfo”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjüubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j’sbŒc.trace_signal_deliver”†”asbuh1hhjÝubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÝubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÝubj)�”}”(hŒinfo”h]”hŒinfo”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÝubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¤ubj0)�”}”(hŒstruct k_sigaction *ka”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjOubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjOubh)�”}”(hhh]”j)�”}”(hŒ k_sigaction”h]”hŒ k_sigaction”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jsŒmodname”NŒ classname”Nj§jª)�”}”j­]”jŒc.trace_signal_deliver”†”asbuh1hhjOubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjOubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjOubj)�”}”(hŒka”h]”hŒka”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjkh²hh³j}h´KSubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjgh²hh³j}h´KSubah}”(h]”jbah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j}h´KShjdh²hubj)�”}”(hhh]”hì)�”}”(hŒ!called when a signal is delivered”h]”hŒ!called when a signal is delivered”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KShjÑh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdh²hh³j}h´KSubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jìj&jìj'‰j(‰j)‰uh1jÔh²hhjÑh³Nh´Nubj+)�”}”(hX]**Parameters** ``int sig`` signal number ``struct kernel_siginfo *info`` pointer to struct siginfo ``struct k_sigaction *ka`` pointer to struct k_sigaction **Description** A 'sig' signal is delivered to current process with 'info' siginfo, and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or SIG_DFL. Note that some signals reported by signal_generate tracepoint can be lost, ignored or modified (by debugger) before hitting this tracepoint. This means, this can show which signals are actually delivered, but matching generated signals and delivered signals may not be correct.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjöh]”hŒ Parameters”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KWhjðubjK)�”}”(hhh]”(jP)�”}”(hŒ``int sig`` signal number ”h]”(jV)�”}”(hŒ ``int sig``”h]”j)�”}”(hjh]”hŒint sig”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KThjubjp)�”}”(hhh]”hì)�”}”(hŒ signal number”h]”hŒ signal number”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j*h´KThj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j*h´KThj ubjP)�”}”(hŒ:``struct kernel_siginfo *info`` pointer to struct siginfo ”h]”(jV)�”}”(hŒ``struct kernel_siginfo *info``”h]”j)�”}”(hjNh]”hŒstruct kernel_siginfo *info”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KUhjHubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct siginfo”h]”hŒpointer to struct siginfo”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jch´KUhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1johjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jch´KUhj ubjP)�”}”(hŒ9``struct k_sigaction *ka`` pointer to struct k_sigaction ”h]”(jV)�”}”(hŒ``struct k_sigaction *ka``”h]”j)�”}”(hj‡h]”hŒstruct k_sigaction *ka”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KVhj�ubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct k_sigaction”h]”hŒpointer to struct k_sigaction”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jœh´KVhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jœh´KVhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjðubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÂh]”hŒ Description”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KXhjðubhì)�”}”(hX¦A 'sig' signal is delivered to current process with 'info' siginfo, and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or SIG_DFL. Note that some signals reported by signal_generate tracepoint can be lost, ignored or modified (by debugger) before hitting this tracepoint. This means, this can show which signals are actually delivered, but matching generated signals and delivered signals may not be correct.”h]”hX²A ‘sig’ signal is delivered to current process with ‘info’ siginfo, and it will be handled by ‘ka’. ka->sa.sa_handler can be SIG_IGN or SIG_DFL. Note that some signals reported by signal_generate tracepoint can be lost, ignored or modified (by debugger) before hitting this tracepoint. This means, this can show which signals are actually delivered, but matching generated signals and delivered signals may not be correct.”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œa/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.h”h´KWhjðubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjÑh²hh³Nh´Nubeh}”(h]”Œsignal”ah ]”h"]”Œsignal”ah$]”h&]”uh1hµhh·h²hh³hÊh´K(ubh¶)�”}”(hhh]”(h»)�”}”(hŒBlock IO”h]”hŒBlock IO”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjöh²hh³hÊh´K.ubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ%trace_block_touch_buffer (C function)”Œc.trace_block_touch_buffer”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ6void trace_block_touch_buffer (struct buffer_head *bh)”h]”jà)�”}”(hŒ5void trace_block_touch_buffer(struct buffer_head *bh)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K1ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjh²hh³j.h´K1ubj )�”}”(hŒtrace_block_touch_buffer”h]”j)�”}”(hŒtrace_block_touch_buffer”h]”hŒtrace_block_touch_buffer”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj=ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjh²hh³j.h´K1ubj*)�”}”(hŒ(struct buffer_head *bh)”h]”j0)�”}”(hŒstruct buffer_head *bh”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjYubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjYubh)�”}”(hhh]”j)�”}”(hŒ buffer_head”h]”hŒ buffer_head”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j}Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jCsbŒc.trace_block_touch_buffer”†”asbuh1hhjYubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjYubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjYubj)�”}”(hŒbh”h]”hŒbh”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j•hjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjUubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjh²hh³j.h´K1ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjh²hh³j.h´K1ubah}”(h]”jah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j.h´K1hjh²hubj)�”}”(hhh]”hì)�”}”(hŒmark a buffer accessed”h]”hŒmark a buffer accessed”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K1hjÝh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j.h´K1ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jøj&jøj'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒt**Parameters** ``struct buffer_head *bh`` buffer_head being touched **Description** Called from touch_buffer().”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K5hjüubjK)�”}”(hhh]”jP)�”}”(hŒ5``struct buffer_head *bh`` buffer_head being touched ”h]”(jV)�”}”(hŒ``struct buffer_head *bh``”h]”j)�”}”(hj!h]”hŒstruct buffer_head *bh”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K2hjubjp)�”}”(hhh]”hì)�”}”(hŒbuffer_head being touched”h]”hŒbuffer_head being touched”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j6h´K2hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j6h´K2hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjüubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj\h]”hŒ Description”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K4hjüubhì)�”}”(hŒCalled from touch_buffer().”h]”hŒCalled from touch_buffer().”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K3hjüubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ%trace_block_dirty_buffer (C function)”Œc.trace_block_dirty_buffer”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ6void trace_block_dirty_buffer (struct buffer_head *bh)”h]”jà)�”}”(hŒ5void trace_block_dirty_buffer(struct buffer_head *bh)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj�h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K>ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj�h²hh³j¯h´K>ubj )�”}”(hŒtrace_block_dirty_buffer”h]”j)�”}”(hŒtrace_block_dirty_buffer”h]”hŒtrace_block_dirty_buffer”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¾ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj�h²hh³j¯h´K>ubj*)�”}”(hŒ(struct buffer_head *bh)”h]”j0)�”}”(hŒstruct buffer_head *bh”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÚubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÚubh)�”}”(hhh]”j)�”}”(hŒ buffer_head”h]”hŒ buffer_head”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jþŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jÄsbŒc.trace_block_dirty_buffer”†”asbuh1hhjÚubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÚubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÚubj)�”}”(hŒbh”h]”hŒbh”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÚubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjÖubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj�h²hh³j¯h´K>ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj™h²hh³j¯h´K>ubah}”(h]”j”ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j¯h´K>hj–h²hubj)�”}”(hhh]”hì)�”}”(hŒmark a buffer dirty”h]”hŒmark a buffer dirty”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K>hj^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj–h²hh³j¯h´K>ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jyj&jyj'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒy**Parameters** ``struct buffer_head *bh`` buffer_head being dirtied **Description** Called from mark_buffer_dirty().”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjƒh]”hŒ Parameters”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KBhj}ubjK)�”}”(hhh]”jP)�”}”(hŒ5``struct buffer_head *bh`` buffer_head being dirtied ”h]”(jV)�”}”(hŒ``struct buffer_head *bh``”h]”j)�”}”(hj¢h]”hŒstruct buffer_head *bh”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K?hjœubjp)�”}”(hhh]”hì)�”}”(hŒbuffer_head being dirtied”h]”hŒbuffer_head being dirtied”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j·h´K?hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j·h´K?hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj}ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÝh]”hŒ Description”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KAhj}ubhì)�”}”(hŒ Called from mark_buffer_dirty().”h]”hŒ Called from mark_buffer_dirty().”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K@hj}ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ#trace_block_rq_requeue (C function)”Œc.trace_block_rq_requeue”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ0void trace_block_rq_requeue (struct request *rq)”h]”jà)�”}”(hŒ/void trace_block_rq_requeue(struct request *rq)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KLubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjh²hh³j0h´KLubj )�”}”(hŒtrace_block_rq_requeue”h]”j)�”}”(hŒtrace_block_rq_requeue”h]”hŒtrace_block_rq_requeue”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj?ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjh²hh³j0h´KLubj*)�”}”(hŒ(struct request *rq)”h]”j0)�”}”(hŒstruct request *rq”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj[ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj[ubh)�”}”(hhh]”j)�”}”(hŒrequest”h]”hŒrequest”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jEsbŒc.trace_block_rq_requeue”†”asbuh1hhj[ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj[ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj[ubj)�”}”(hŒrq”h]”hŒrq”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjWubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjh²hh³j0h´KLubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjh²hh³j0h´KLubah}”(h]”jah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j0h´KLhjh²hubj)�”}”(hhh]”hì)�”}”(hŒ&place block IO request back on a queue”h]”hŒ&place block IO request back on a queue”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KLhjßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j0h´KLubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%júj&júj'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒõ**Parameters** ``struct request *rq`` block IO operation request **Description** The block operation request **rq** is being placed back into queue **q**. For some reason the request was not completed and needs to be put back in the queue.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KPhjþubjK)�”}”(hhh]”jP)�”}”(hŒ2``struct request *rq`` block IO operation request ”h]”(jV)�”}”(hŒ``struct request *rq``”h]”j)�”}”(hj#h]”hŒstruct request *rq”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KMhjubjp)�”}”(hhh]”hì)�”}”(hŒblock IO operation request”h]”hŒblock IO operation request”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j8h´KMhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j8h´KMhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj^h]”hŒ Description”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KOhjþubhì)�”}”(hŒŸThe block operation request **rq** is being placed back into queue **q**. For some reason the request was not completed and needs to be put back in the queue.”h]”(hŒThe block operation request ”…”�”}”(hjth²hh³Nh´Nubj5)�”}”(hŒ**rq**”h]”hŒrq”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjtubhŒ! is being placed back into queue ”…”�”}”(hjth²hh³Nh´Nubj5)�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjtubhŒW. For some reason the request was not completed and needs to be put back in the queue.”…”�”}”(hjth²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KNhjþubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ$trace_block_rq_complete (C function)”Œc.trace_block_rq_complete”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ\void trace_block_rq_complete (struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”jà)�”}”(hŒ[void trace_block_rq_complete(struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÃh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kœubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÃh²hh³jÕh´Kœubj )�”}”(hŒtrace_block_rq_complete”h]”j)�”}”(hŒtrace_block_rq_complete”h]”hŒtrace_block_rq_complete”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjäubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjÃh²hh³jÕh´Kœubj*)�”}”(hŒ?(struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”(j0)�”}”(hŒstruct request *rq”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubh)�”}”(hhh]”j)�”}”(hŒrequest”h]”hŒrequest”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j$Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jêsbŒc.trace_block_rq_complete”†”asbuh1hhjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjubj)�”}”(hŒrq”h]”hŒrq”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjüubj0)�”}”(hŒblk_status_t error”h]”(h)�”}”(hhh]”j)�”}”(hŒ blk_status_t”h]”hŒ blk_status_t”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjvubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j{Œmodname”NŒ classname”Nj§jª)�”}”j­]”j>Œc.trace_block_rq_complete”†”asbuh1hhjrubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjrubj)�”}”(hŒerror”h]”hŒerror”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjrubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjüubj0)�”}”(hŒunsigned int nr_bytes”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjºubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjºubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjºubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjºubj)�”}”(hŒnr_bytes”h]”hŒnr_bytes”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjºubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjüubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjÃh²hh³jÕh´Kœubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj¿h²hh³jÕh´Kœubah}”(h]”jºah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jÕh´Kœhj¼h²hubj)�”}”(hhh]”hì)�”}”(hŒ-block IO operation completed by device driver”h]”hŒ-block IO operation completed by device driver”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kœhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼h²hh³jÕh´Kœubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j8j&j8j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hXð**Parameters** ``struct request *rq`` block operations request ``blk_status_t error`` status code ``unsigned int nr_bytes`` number of completed bytes **Description** The block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the **rq->bio** is ``NULL``, then there is absolutely no additional work to do for the request. If **rq->bio** is non-NULL then there is additional work required to complete the request.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjBh]”hŒ Parameters”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K hj<ubjK)�”}”(hhh]”(jP)�”}”(hŒ0``struct request *rq`` block operations request ”h]”(jV)�”}”(hŒ``struct request *rq``”h]”j)�”}”(hjah]”hŒstruct request *rq”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K�hj[ubjp)�”}”(hhh]”hì)�”}”(hŒblock operations request”h]”hŒblock operations request”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jvh´K�hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1johj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jvh´K�hjXubjP)�”}”(hŒ#``blk_status_t error`` status code ”h]”(jV)�”}”(hŒ``blk_status_t error``”h]”j)�”}”(hjšh]”hŒblk_status_t error”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kžhj”ubjp)�”}”(hhh]”hì)�”}”(hŒ status code”h]”hŒ status code”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¯h´Kžhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j¯h´KžhjXubjP)�”}”(hŒ4``unsigned int nr_bytes`` number of completed bytes ”h]”(jV)�”}”(hŒ``unsigned int nr_bytes``”h]”j)�”}”(hjÓh]”hŒunsigned int nr_bytes”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KŸhjÍubjp)�”}”(hhh]”hì)�”}”(hŒnumber of completed bytes”h]”hŒnumber of completed bytes”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jèh´KŸhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jèh´KŸhjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj<ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K¡hj<ubhì)�”}”(hX?The block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the **rq->bio** is ``NULL``, then there is absolutely no additional work to do for the request. If **rq->bio** is non-NULL then there is additional work required to complete the request.”h]”(hŒ‰The block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the ”…”�”}”(hj$h²hh³Nh´Nubj5)�”}”(hŒ **rq->bio**”h]”hŒrq->bio”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj$ubhŒ is ”…”�”}”(hj$h²hh³Nh´Nubj)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj$ubhŒH, then there is absolutely no additional work to do for the request. If ”…”�”}”(hj$h²hh³Nh´Nubj5)�”}”(hŒ **rq->bio**”h]”hŒrq->bio”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj$ubhŒL is non-NULL then there is additional work required to complete the request.”…”�”}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K hj<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ!trace_block_rq_error (C function)”Œc.trace_block_rq_error”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒYvoid trace_block_rq_error (struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”jà)�”}”(hŒXvoid trace_block_rq_error(struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj…h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K¯ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj…h²hh³j—h´K¯ubj )�”}”(hŒtrace_block_rq_error”h]”j)�”}”(hŒtrace_block_rq_error”h]”hŒtrace_block_rq_error”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¦ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj…h²hh³j—h´K¯ubj*)�”}”(hŒ?(struct request *rq, blk_status_t error, unsigned int nr_bytes)”h]”(j0)�”}”(hŒstruct request *rq”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÂubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÂubh)�”}”(hhh]”j)�”}”(hŒrequest”h]”hŒrequest”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjáubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jæŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j¬sbŒc.trace_block_rq_error”†”asbuh1hhjÂubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÂubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÂubj)�”}”(hŒrq”h]”hŒrq”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÂubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¾ubj0)�”}”(hŒblk_status_t error”h]”(h)�”}”(hhh]”j)�”}”(hŒ blk_status_t”h]”hŒ blk_status_t”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j=Œmodname”NŒ classname”Nj§jª)�”}”j­]”jŒc.trace_block_rq_error”†”asbuh1hhj4ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj4ubj)�”}”(hŒerror”h]”hŒerror”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¾ubj0)�”}”(hŒunsigned int nr_bytes”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj|ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj|ubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj|ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj|ubj)�”}”(hŒnr_bytes”h]”hŒnr_bytes”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¾ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj…h²hh³j—h´K¯ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj�h²hh³j—h´K¯ubah}”(h]”j|ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j—h´K¯hj~h²hubj)�”}”(hhh]”hì)�”}”(hŒ2block IO operation error reported by device driver”h]”hŒ2block IO operation error reported by device driver”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K¯hjßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~h²hh³j—h´K¯ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%júj&júj'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hX2**Parameters** ``struct request *rq`` block operations request ``blk_status_t error`` status code ``unsigned int nr_bytes`` number of completed bytes **Description** The block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K³hjþubjK)�”}”(hhh]”(jP)�”}”(hŒ0``struct request *rq`` block operations request ”h]”(jV)�”}”(hŒ``struct request *rq``”h]”j)�”}”(hj#h]”hŒstruct request *rq”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K°hjubjp)�”}”(hhh]”hì)�”}”(hŒblock operations request”h]”hŒblock operations request”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j8h´K°hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j8h´K°hjubjP)�”}”(hŒ#``blk_status_t error`` status code ”h]”(jV)�”}”(hŒ``blk_status_t error``”h]”j)�”}”(hj\h]”hŒblk_status_t error”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K±hjVubjp)�”}”(hhh]”hì)�”}”(hŒ status code”h]”hŒ status code”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jqh´K±hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1johjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jqh´K±hjubjP)�”}”(hŒ4``unsigned int nr_bytes`` number of completed bytes ”h]”(jV)�”}”(hŒ``unsigned int nr_bytes``”h]”j)�”}”(hj•h]”hŒunsigned int nr_bytes”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K²hj�ubjp)�”}”(hhh]”hì)�”}”(hŒnumber of completed bytes”h]”hŒnumber of completed bytes”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jªh´K²hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jªh´K²hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjþubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÐh]”hŒ Description”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K´hjþubhì)�”}”(hŒ�The block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.”h]”hŒ�The block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´K³hjþubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ$trace_block_rq_tag_wait (C function)”Œc.trace_block_rq_tag_wait”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒvoid trace_block_rq_tag_wait (struct request_queue *q, struct blk_mq_hw_ctx *hctx, bool is_sched_tag, unsigned int alloc_flags)”h]”jà)�”}”(hŒ~void trace_block_rq_tag_wait(struct request_queue *q, struct blk_mq_hw_ctx *hctx, bool is_sched_tag, unsigned int alloc_flags)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kæubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjh²hh³j#h´Kæubj )�”}”(hŒtrace_block_rq_tag_wait”h]”j)�”}”(hŒtrace_block_rq_tag_wait”h]”hŒtrace_block_rq_tag_wait”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj2ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjh²hh³j#h´Kæubj*)�”}”(hŒb(struct request_queue *q, struct blk_mq_hw_ctx *hctx, bool is_sched_tag, unsigned int alloc_flags)”h]”(j0)�”}”(hŒstruct request_queue *q”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjNubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjNubh)�”}”(hhh]”j)�”}”(hŒ request_queue”h]”hŒ request_queue”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jrŒmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j8sbŒc.trace_block_rq_tag_wait”†”asbuh1hhjNubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjNubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjNubj)�”}”(hŒq”h]”hŒq”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjJubj0)�”}”(hŒstruct blk_mq_hw_ctx *hctx”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÀubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÀubh)�”}”(hhh]”j)�”}”(hŒ blk_mq_hw_ctx”h]”hŒ blk_mq_hw_ctx”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjßubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jäŒmodname”NŒ classname”Nj§jª)�”}”j­]”jŒŒc.trace_block_rq_tag_wait”†”asbuh1hhjÀubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÀubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÀubj)�”}”(hŒhctx”h]”hŒhctx”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÀubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjJubj0)�”}”(hŒbool is_sched_tag”h]”(jæ)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj0 ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj0 ubj)�”}”(hŒ is_sched_tag”h]”hŒ is_sched_tag”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj0 ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjJubj0)�”}”(hŒunsigned int alloc_flags”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhje ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hje ubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhje ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hje ubj)�”}”(hŒ alloc_flags”h]”hŒ alloc_flags”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhje ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjJubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjh²hh³j#h´Kæubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj h²hh³j#h´Kæubah}”(h]”jah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j#h´Kæhj h²hubj)�”}”(hhh]”hì)�”}”(hŒ,triggered when a request is starved of a tag”h]”hŒ,triggered when a request is starved of a tag”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´KæhjÈ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj h²hh³j#h´Kæubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jã j&jã j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hXE**Parameters** ``struct request_queue *q`` request queue of the target device ``struct blk_mq_hw_ctx *hctx`` hardware context of the request experiencing starvation ``bool is_sched_tag`` indicates whether the starved pool is the software scheduler ``unsigned int alloc_flags`` allocation flags dictating the specific tag pool **Description** Called immediately before the submitting context is forced to block due to the exhaustion of available tags (i.e., physical hardware driver tags, software scheduler tags, or reserved tags). This trace point indicates that the context will be placed into an uninterruptible state via sbitmap_prepare_to_wait(). If a tag is not acquired in the final lockless retry, the context will yield the CPU via io_schedule() until an active request completes and relinquishes its assigned tag.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjí h]”hŒ Parameters”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kêhjç ubjK)�”}”(hhh]”(jP)�”}”(hŒ?``struct request_queue *q`` request queue of the target device ”h]”(jV)�”}”(hŒ``struct request_queue *q``”h]”j)�”}”(hj !h]”hŒstruct request_queue *q”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj !ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kçhj!ubjp)�”}”(hhh]”hì)�”}”(hŒ"request queue of the target device”h]”hŒ"request queue of the target device”…”�”}”(hj%!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j!!h´Kçhj"!ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j!!h´Kçhj!ubjP)�”}”(hŒW``struct blk_mq_hw_ctx *hctx`` hardware context of the request experiencing starvation ”h]”(jV)�”}”(hŒ``struct blk_mq_hw_ctx *hctx``”h]”j)�”}”(hjE!h]”hŒstruct blk_mq_hw_ctx *hctx”…”�”}”(hjG!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjC!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kèhj?!ubjp)�”}”(hhh]”hì)�”}”(hŒ7hardware context of the request experiencing starvation”h]”hŒ7hardware context of the request experiencing starvation”…”�”}”(hj^!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jZ!h´Kèhj[!ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj?!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jZ!h´Kèhj!ubjP)�”}”(hŒS``bool is_sched_tag`` indicates whether the starved pool is the software scheduler ”h]”(jV)�”}”(hŒ``bool is_sched_tag``”h]”j)�”}”(hj~!h]”hŒbool is_sched_tag”…”�”}”(hj€!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj|!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Kéhjx!ubjp)�”}”(hhh]”hì)�”}”(hŒ``struct request_queue *q`` queue holding the block operation ”h]”(jV)�”}”(hŒ``struct request_queue *q``”h]”j)�”}”(hjÎ+h]”hŒstruct request_queue *q”…”�”}”(hjÐ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjÌ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MhhjÈ+ubjp)�”}”(hhh]”hì)�”}”(hŒ!queue holding the block operation”h]”hŒ!queue holding the block operation”…”�”}”(hjç+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jã+h´Mhhjä+ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÈ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jã+h´MhhjÅ+ubjP)�”}”(hŒ.``struct bio *bio`` block operation completed ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hj,h]”hŒstruct bio *bio”…”�”}”(hj ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mihj,ubjp)�”}”(hhh]”hì)�”}”(hŒblock operation completed”h]”hŒblock operation completed”…”�”}”(hj ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j,h´Mihj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j,h´MihjÅ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj©+ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjB,h]”hŒ Description”…”�”}”(hjD,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj@,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mkhj©+ubhì)�”}”(hŒ\This tracepoint indicates there is no further work to do on this block IO operation **bio**.”h]”(hŒTThis tracepoint indicates there is no further work to do on this block IO operation ”…”�”}”(hjX,h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hj`,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjX,ubhŒ.”…”�”}”(hjX,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mjhj©+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ&trace_block_bio_backmerge (C function)”Œc.trace_block_bio_backmerge”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ0void trace_block_bio_backmerge (struct bio *bio)”h]”jà)�”}”(hŒ/void trace_block_bio_backmerge(struct bio *bio)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj™,h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj•,h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M§ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj•,h²hh³j§,h´M§ubj )�”}”(hŒtrace_block_bio_backmerge”h]”j)�”}”(hŒtrace_block_bio_backmerge”h]”hŒtrace_block_bio_backmerge”…”�”}”(hjº,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¶,ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj•,h²hh³j§,h´M§ubj*)�”}”(hŒ(struct bio *bio)”h]”j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjÖ,h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÒ,ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÒ,ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjô,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjñ,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jö,Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j¼,sbŒc.trace_block_bio_backmerge”†”asbuh1hhjÒ,ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÒ,ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj"-h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÒ,ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj/-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÒ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjÎ,ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj•,h²hh³j§,h´M§ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj‘,h²hh³j§,h´M§ubah}”(h]”jŒ,ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j§,h´M§hjŽ,h²hubj)�”}”(hhh]”hì)�”}”(hŒ;merging block operation to the end of an existing operation”h]”hŒ;merging block operation to the end of an existing operation”…”�”}”(hjY-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M§hjV-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŽ,h²hh³j§,h´M§ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jq-j&jq-j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒ›**Parameters** ``struct bio *bio`` new block operation to merge **Description** Merging block request **bio** to the end of an existing block request.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj{-h]”hŒ Parameters”…”�”}”(hj}-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjy-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M«hju-ubjK)�”}”(hhh]”jP)�”}”(hŒ1``struct bio *bio`` new block operation to merge ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hjš-h]”hŒstruct bio *bio”…”�”}”(hjœ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj˜-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M¨hj”-ubjp)�”}”(hhh]”hì)�”}”(hŒnew block operation to merge”h]”hŒnew block operation to merge”…”�”}”(hj³-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¯-h´M¨hj°-ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj”-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j¯-h´M¨hj‘-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhju-ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÕ-h]”hŒ Description”…”�”}”(hj×-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÓ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mªhju-ubhì)�”}”(hŒFMerging block request **bio** to the end of an existing block request.”h]”(hŒMerging block request ”…”�”}”(hjë-h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hjó-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjë-ubhŒ) to the end of an existing block request.”…”�”}”(hjë-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M©hju-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ'trace_block_bio_frontmerge (C function)”Œc.trace_block_bio_frontmerge”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ1void trace_block_bio_frontmerge (struct bio *bio)”h]”jà)�”}”(hŒ0void trace_block_bio_frontmerge(struct bio *bio)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj,.h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj(.h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M²ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj(.h²hh³j:.h´M²ubj )�”}”(hŒtrace_block_bio_frontmerge”h]”j)�”}”(hŒtrace_block_bio_frontmerge”h]”hŒtrace_block_bio_frontmerge”…”�”}”(hjM.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjI.ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj(.h²hh³j:.h´M²ubj*)�”}”(hŒ(struct bio *bio)”h]”j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hji.h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhje.ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hje.ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj‡.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj„.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j‰.Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jO.sbŒc.trace_block_bio_frontmerge”†”asbuh1hhje.ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hje.ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjµ.h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhje.ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjÂ.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhje.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hja.ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj(.h²hh³j:.h´M²ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj$.h²hh³j:.h´M²ubah}”(h]”j.ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j:.h´M²hj!.h²hubj)�”}”(hhh]”hì)�”}”(hŒAmerging block operation to the beginning of an existing operation”h]”hŒAmerging block operation to the beginning of an existing operation”…”�”}”(hjì.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M²hjé.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj!.h²hh³j:.h´M²ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j/j&j/j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒ¦**Parameters** ``struct bio *bio`` new block operation to merge **Description** Merging block IO operation **bio** to the beginning of an existing block request.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj/h]”hŒ Parameters”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj /ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M¶hj/ubjK)�”}”(hhh]”jP)�”}”(hŒ1``struct bio *bio`` new block operation to merge ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hj-/h]”hŒstruct bio *bio”…”�”}”(hj//h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj+/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M³hj'/ubjp)�”}”(hhh]”hì)�”}”(hŒnew block operation to merge”h]”hŒnew block operation to merge”…”�”}”(hjF/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jB/h´M³hjC/ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj'/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jB/h´M³hj$/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj/ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjh/h]”hŒ Description”…”�”}”(hjj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjf/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mµhj/ubhì)�”}”(hŒQMerging block IO operation **bio** to the beginning of an existing block request.”h]”(hŒMerging block IO operation ”…”�”}”(hj~/h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hj†/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj~/ubhŒ/ to the beginning of an existing block request.”…”�”}”(hj~/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M´hj/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ"trace_block_bio_queue (C function)”Œc.trace_block_bio_queue”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ,void trace_block_bio_queue (struct bio *bio)”h]”jà)�”}”(hŒ+void trace_block_bio_queue(struct bio *bio)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¿/h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj»/h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M½ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj»/h²hh³jÍ/h´M½ubj )�”}”(hŒtrace_block_bio_queue”h]”j)�”}”(hŒtrace_block_bio_queue”h]”hŒtrace_block_bio_queue”…”�”}”(hjà/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÜ/ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj»/h²hh³jÍ/h´M½ubj*)�”}”(hŒ(struct bio *bio)”h]”j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjü/h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjø/ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjø/ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j0Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jâ/sbŒc.trace_block_bio_queue”†”asbuh1hhjø/ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjø/ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjH0h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjø/ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjU0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjø/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjô/ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj»/h²hh³jÍ/h´M½ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj·/h²hh³jÍ/h´M½ubah}”(h]”j²/ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jÍ/h´M½hj´/h²hubj)�”}”(hhh]”hì)�”}”(hŒ'putting new block IO operation in queue”h]”hŒ'putting new block IO operation in queue”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M½hj|0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´/h²hh³jÍ/h´M½ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j—0j&j—0j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒ‹**Parameters** ``struct bio *bio`` new block operation **Description** About to place the block IO operation **bio** into queue **q**.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj¡0h]”hŒ Parameters”…”�”}”(hj£0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjŸ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÁhj›0ubjK)�”}”(hhh]”jP)�”}”(hŒ(``struct bio *bio`` new block operation ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hjÀ0h]”hŒstruct bio *bio”…”�”}”(hjÂ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj¾0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M¾hjº0ubjp)�”}”(hhh]”hì)�”}”(hŒnew block operation”h]”hŒnew block operation”…”�”}”(hjÙ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÕ0h´M¾hjÖ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjº0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jÕ0h´M¾hj·0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj›0ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjû0h]”hŒ Description”…”�”}”(hjý0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjù0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÀhj›0ubhì)�”}”(hŒ?About to place the block IO operation **bio** into queue **q**.”h]”(hŒ&About to place the block IO operation ”…”�”}”(hj1h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj1ubhŒ into queue ”…”�”}”(hj1h²hh³Nh´Nubj5)�”}”(hŒ**q**”h]”hŒq”…”�”}”(hj+1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj1ubhŒ.”…”�”}”(hj1h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M¿hj›0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_block_getrq (C function)”Œc.trace_block_getrq”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ(void trace_block_getrq (struct bio *bio)”h]”jà)�”}”(hŒ'void trace_block_getrq(struct bio *bio)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjd1h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj`1h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÈubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj`1h²hh³jr1h´MÈubj )�”}”(hŒtrace_block_getrq”h]”j)�”}”(hŒtrace_block_getrq”h]”hŒtrace_block_getrq”…”�”}”(hj…1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�1ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj`1h²hh³jr1h´MÈubj*)�”}”(hŒ(struct bio *bio)”h]”j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj¡1h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj�1ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj�1ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj¿1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¼1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jÁ1Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j‡1sbŒc.trace_block_getrq”†”asbuh1hhj�1ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj�1ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjí1h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj�1ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjú1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj™1ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj`1h²hh³jr1h´MÈubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj\1h²hh³jr1h´MÈubah}”(h]”jW1ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jr1h´MÈhjY1h²hubj)�”}”(hhh]”hì)�”}”(hŒ9get a free request entry in queue for block IO operations”h]”hŒ9get a free request entry in queue for block IO operations”…”�”}”(hj$2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÈhj!2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjY1h²hh³jr1h´MÈubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%j<2j&j<2j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒ²**Parameters** ``struct bio *bio`` pending block IO operation (can be ``NULL``) **Description** A request struct has been allocated to handle the block IO operation **bio**.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjF2h]”hŒ Parameters”…”�”}”(hjH2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjD2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÌhj@2ubjK)�”}”(hhh]”jP)�”}”(hŒA``struct bio *bio`` pending block IO operation (can be ``NULL``) ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hje2h]”hŒstruct bio *bio”…”�”}”(hjg2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjc2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÉhj_2ubjp)�”}”(hhh]”hì)�”}”(hŒ,pending block IO operation (can be ``NULL``)”h]”(hŒ#pending block IO operation (can be ”…”�”}”(hj~2h²hh³Nh´Nubj)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj†2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj~2ubhŒ)”…”�”}”(hj~2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jz2h´MÉhj{2ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj_2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jz2h´MÉhj\2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhj@2ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj²2h]”hŒ Description”…”�”}”(hj´2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj°2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MËhj@2ubhì)�”}”(hŒMA request struct has been allocated to handle the block IO operation **bio**.”h]”(hŒEA request struct has been allocated to handle the block IO operation ”…”�”}”(hjÈ2h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hjÐ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÈ2ubhŒ.”…”�”}”(hjÈ2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÊhj@2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ5trace_blk_zone_append_update_request_bio (C function)”Œ*c.trace_blk_zone_append_update_request_bio”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒBvoid trace_blk_zone_append_update_request_bio (struct request *rq)”h]”jà)�”}”(hŒAvoid trace_blk_zone_append_update_request_bio(struct request *rq)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj3h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÓubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj3h²hh³j3h´MÓubj )�”}”(hŒ(trace_blk_zone_append_update_request_bio”h]”j)�”}”(hŒ(trace_blk_zone_append_update_request_bio”h]”hŒ(trace_blk_zone_append_update_request_bio”…”�”}”(hj*3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj&3ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj3h²hh³j3h´MÓubj*)�”}”(hŒ(struct request *rq)”h]”j0)�”}”(hŒstruct request *rq”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjF3h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjB3ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjB3ubh)�”}”(hhh]”j)�”}”(hŒrequest”h]”hŒrequest”…”�”}”(hjd3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhja3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jf3Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j,3sbŒ*c.trace_blk_zone_append_update_request_bio”†”asbuh1hhjB3ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjB3ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj’3h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjB3ubj)�”}”(hŒrq”h]”hŒrq”…”�”}”(hjŸ3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjB3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj>3ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj3h²hh³j3h´MÓubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj3h²hh³j3h´MÓubah}”(h]”jü2ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j3h´MÓhjþ2h²hubj)�”}”(hhh]”hì)�”}”(hŒ#update bio sector after zone append”h]”hŒ#update bio sector after zone append”…”�”}”(hjÉ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÓhjÆ3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþ2h²hh³j3h´MÓubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%já3j&já3j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒ´**Parameters** ``struct request *rq`` the completed request that sets the bio sector **Description** Update the bio's bi_sector after a zone append command has been completed.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjë3h]”hŒ Parameters”…”�”}”(hjí3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjé3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M×hjå3ubjK)�”}”(hhh]”jP)�”}”(hŒF``struct request *rq`` the completed request that sets the bio sector ”h]”(jV)�”}”(hŒ``struct request *rq``”h]”j)�”}”(hj 4h]”hŒstruct request *rq”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÔhj4ubjp)�”}”(hhh]”hì)�”}”(hŒ.the completed request that sets the bio sector”h]”hŒ.the completed request that sets the bio sector”…”�”}”(hj#4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j4h´MÔhj 4ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j4h´MÔhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhjå3ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjE4h]”hŒ Description”…”�”}”(hjG4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjC4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÖhjå3ubhì)�”}”(hŒJUpdate the bio's bi_sector after a zone append command has been completed.”h]”hŒLUpdate the bio’s bi_sector after a zone append command has been completed.”…”�”}”(hj[4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÕhjå3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_block_plug (C function)”Œc.trace_block_plug”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ/void trace_block_plug (struct request_queue *q)”h]”jà)�”}”(hŒ.void trace_block_plug(struct request_queue *q)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŠ4h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj†4h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÞubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj†4h²hh³j˜4h´MÞubj )�”}”(hŒtrace_block_plug”h]”j)�”}”(hŒtrace_block_plug”h]”hŒtrace_block_plug”…”�”}”(hj«4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj§4ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj†4h²hh³j˜4h´MÞubj*)�”}”(hŒ(struct request_queue *q)”h]”j0)�”}”(hŒstruct request_queue *q”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjÇ4h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÃ4ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÃ4ubh)�”}”(hhh]”j)�”}”(hŒ request_queue”h]”hŒ request_queue”…”�”}”(hjå4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjâ4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jç4Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j­4sbŒc.trace_block_plug”†”asbuh1hhjÃ4ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÃ4ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÃ4ubj)�”}”(hj­h]”hŒq”…”�”}”(hj 5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÃ4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj¿4ubah}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj†4h²hh³j˜4h´MÞubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj‚4h²hh³j˜4h´MÞubah}”(h]”j}4ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j˜4h´MÞhj4h²hubj)�”}”(hhh]”hì)�”}”(hŒ)keep operations requests in request queue”h]”hŒ)keep operations requests in request queue”…”�”}”(hjI5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MÞhjF5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4h²hh³j˜4h´MÞubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%ja5j&ja5j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hX**Parameters** ``struct request_queue *q`` request queue to plug **Description** Plug the request queue **q**. Do not allow block operation requests to be sent to the device driver. Instead, accumulate requests in the queue to improve throughput performance of the block device.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjk5h]”hŒ Parameters”…”�”}”(hjm5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hji5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mâhje5ubjK)�”}”(hhh]”jP)�”}”(hŒ2``struct request_queue *q`` request queue to plug ”h]”(jV)�”}”(hŒ``struct request_queue *q``”h]”j)�”}”(hjŠ5h]”hŒstruct request_queue *q”…”�”}”(hjŒ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjˆ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mßhj„5ubjp)�”}”(hhh]”hì)�”}”(hŒrequest queue to plug”h]”hŒrequest queue to plug”…”�”}”(hj£5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŸ5h´Mßhj 5ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj„5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jŸ5h´Mßhj�5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jJhje5ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjÅ5h]”hŒ Description”…”�”}”(hjÇ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÃ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Máhje5ubhì)�”}”(hŒÆPlug the request queue **q**. Do not allow block operation requests to be sent to the device driver. Instead, accumulate requests in the queue to improve throughput performance of the block device.”h]”(hŒPlug the request queue ”…”�”}”(hjÛ5h²hh³Nh´Nubj5)�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjã5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÛ5ubhŒª. Do not allow block operation requests to be sent to the device driver. Instead, accumulate requests in the queue to improve throughput performance of the block device.”…”�”}”(hjÛ5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Màhje5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_block_unplug (C function)”Œc.trace_block_unplug”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒTvoid trace_block_unplug (struct request_queue *q, unsigned int depth, bool explicit)”h]”jà)�”}”(hŒSvoid trace_block_unplug(struct request_queue *q, unsigned int depth, bool explicit)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj6h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj6h²hh³j*6h´M ubj )�”}”(hŒtrace_block_unplug”h]”j)�”}”(hŒtrace_block_unplug”h]”hŒtrace_block_unplug”…”�”}”(hj=6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj96ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj6h²hh³j*6h´M ubj*)�”}”(hŒ<(struct request_queue *q, unsigned int depth, bool explicit)”h]”(j0)�”}”(hŒstruct request_queue *q”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjY6h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjU6ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjU6ubh)�”}”(hhh]”j)�”}”(hŒ request_queue”h]”hŒ request_queue”…”�”}”(hjw6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjt6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jy6Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j?6sbŒc.trace_block_unplug”†”asbuh1hhjU6ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjU6ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj¥6h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjU6ubj)�”}”(hj­h]”hŒq”…”�”}”(hj²6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjU6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjQ6ubj0)�”}”(hŒunsigned int depth”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÊ6h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÆ6ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÆ6ubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjæ6h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjÆ6ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÆ6ubj)�”}”(hŒdepth”h]”hŒdepth”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÆ6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjQ6ubj0)�”}”(hŒ bool explicit”h]”(jæ)�”}”(hj6 h]”hŒbool”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj7ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj7ubj)�”}”(hŒexplicit”h]”hŒexplicit”…”�”}”(hj67h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjQ6ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj6h²hh³j*6h´M ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj6h²hh³j*6h´M ubah}”(h]”j6ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j*6h´M hj6h²hubj)�”}”(hhh]”hì)�”}”(hŒ/release of operations requests in request queue”h]”hŒ/release of operations requests in request queue”…”�”}”(hj`7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M hj]7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6h²hh³j*6h´M ubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jx7j&jx7j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hXU**Parameters** ``struct request_queue *q`` request queue to unplug ``unsigned int depth`` number of requests just added to the queue ``bool explicit`` whether this was an explicit unplug, or one from schedule() **Description** Unplug request queue **q** because device driver is scheduled to work on elements in the request queue.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hj‚7h]”hŒ Parameters”…”�”}”(hj„7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj€7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhj|7ubjK)�”}”(hhh]”(jP)�”}”(hŒ4``struct request_queue *q`` request queue to unplug ”h]”(jV)�”}”(hŒ``struct request_queue *q``”h]”j)�”}”(hj¡7h]”hŒstruct request_queue *q”…”�”}”(hj£7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjŸ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M hj›7ubjp)�”}”(hhh]”hì)�”}”(hŒrequest queue to unplug”h]”hŒrequest queue to unplug”…”�”}”(hjº7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j¶7h´M hj·7ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj›7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j¶7h´M hj˜7ubjP)�”}”(hŒB``unsigned int depth`` number of requests just added to the queue ”h]”(jV)�”}”(hŒ``unsigned int depth``”h]”j)�”}”(hjÚ7h]”hŒunsigned int depth”…”�”}”(hjÜ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjØ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M hjÔ7ubjp)�”}”(hhh]”hì)�”}”(hŒ*number of requests just added to the queue”h]”hŒ*number of requests just added to the queue”…”�”}”(hjó7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jï7h´M hjð7ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjÔ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jï7h´M hj˜7ubjP)�”}”(hŒN``bool explicit`` whether this was an explicit unplug, or one from schedule() ”h]”(jV)�”}”(hŒ``bool explicit``”h]”j)�”}”(hj8h]”hŒ bool explicit”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M hj 8ubjp)�”}”(hhh]”hì)�”}”(hŒ;whether this was an explicit unplug, or one from schedule()”h]”hŒ;whether this was an explicit unplug, or one from schedule()”…”�”}”(hj,8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j(8h´M hj)8ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj 8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j(8h´M hj˜7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj|7ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjN8h]”hŒ Description”…”�”}”(hjP8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjL8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhj|7ubhì)�”}”(hŒgUnplug request queue **q** because device driver is scheduled to work on elements in the request queue.”h]”(hŒUnplug request queue ”…”�”}”(hjd8h²hh³Nh´Nubj5)�”}”(hŒ**q**”h]”hŒq”…”�”}”(hjl8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjd8ubhŒM because device driver is scheduled to work on elements in the request queue.”…”�”}”(hjd8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhj|7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒtrace_block_split (C function)”Œc.trace_block_split”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒAvoid trace_block_split (struct bio *bio, unsigned int new_sector)”h]”jà)�”}”(hŒ@void trace_block_split(struct bio *bio, unsigned int new_sector)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¥8h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj¡8h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¡8h²hh³j³8h´Mubj )�”}”(hŒtrace_block_split”h]”j)�”}”(hŒtrace_block_split”h]”hŒtrace_block_split”…”�”}”(hjÆ8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÂ8ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj¡8h²hh³j³8h´Mubj*)�”}”(hŒ*(struct bio *bio, unsigned int new_sector)”h]”(j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjâ8h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjÞ8ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjï8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÞ8ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjý8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j9Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jÈ8sbŒc.trace_block_split”†”asbuh1hhjÞ8ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÞ8ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj.9h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjÞ8ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj;9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÞ8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjÚ8ubj0)�”}”(hŒunsigned int new_sector”h]”(jæ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjT9h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjP9ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjP9ubjæ)�”}”(hŒint”h]”hŒint”…”�”}”(hjp9h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjP9ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjP9ubj)�”}”(hŒ new_sector”h]”hŒ new_sector”…”�”}”(hjŒ9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjP9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjÚ8ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj¡8h²hh³j³8h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj�8h²hh³j³8h´Mubah}”(h]”j˜8ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³j³8h´Mhjš8h²hubj)�”}”(hhh]”hì)�”}”(hŒ.split a single bio struct into two bio structs”h]”hŒ.split a single bio struct into two bio structs”…”�”}”(hj¶9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhj³9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjš8h²hh³j³8h´Mubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jÎ9j&jÎ9j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hXŠ**Parameters** ``struct bio *bio`` block operation being split ``unsigned int new_sector`` The starting sector for the new bio **Description** The bio request **bio** needs to be split into two bio requests. The newly created **bio** request starts at **new_sector**. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjØ9h]”hŒ Parameters”…”�”}”(hjÚ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÖ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MhjÒ9ubjK)�”}”(hhh]”(jP)�”}”(hŒ0``struct bio *bio`` block operation being split ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hj÷9h]”hŒstruct bio *bio”…”�”}”(hjù9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjõ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhjñ9ubjp)�”}”(hhh]”hì)�”}”(hŒblock operation being split”h]”hŒblock operation being split”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j :h´Mhj :ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjñ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j :h´Mhjî9ubjP)�”}”(hŒ@``unsigned int new_sector`` The starting sector for the new bio ”h]”(jV)�”}”(hŒ``unsigned int new_sector``”h]”j)�”}”(hj0:h]”hŒunsigned int new_sector”…”�”}”(hj2:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj.:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mhj*:ubjp)�”}”(hhh]”hì)�”}”(hŒ#The starting sector for the new bio”h]”hŒ#The starting sector for the new bio”…”�”}”(hjI:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jE:h´MhjF:ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj*:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jE:h´Mhjî9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÒ9ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hjk:h]”hŒ Description”…”�”}”(hjm:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hji:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MhjÒ9ubhì)�”}”(hŒóThe bio request **bio** needs to be split into two bio requests. The newly created **bio** request starts at **new_sector**. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.”h]”(hŒThe bio request ”…”�”}”(hj�:h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hj‰:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj�:ubhŒ= needs to be split into two bio requests. The newly created ”…”�”}”(hj�:h²hh³Nh´Nubj5)�”}”(hŒ**bio**”h]”hŒbio”…”�”}”(hj›:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj�:ubhŒ request starts at ”…”�”}”(hj�:h²hh³Nh´Nubj5)�”}”(hŒ**new_sector**”h]”hŒ new_sector”…”�”}”(hj­:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj�:ubhŒw. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.”…”�”}”(hj�:h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MhjÒ9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ"trace_block_bio_remap (C function)”Œc.trace_block_bio_remap”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒFvoid trace_block_bio_remap (struct bio *bio, dev_t dev, sector_t from)”h]”jà)�”}”(hŒEvoid trace_block_bio_remap(struct bio *bio, dev_t dev, sector_t from)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjæ:h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhjâ:h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MAubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ:h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjâ:h²hh³jô:h´MAubj )�”}”(hŒtrace_block_bio_remap”h]”j)�”}”(hŒtrace_block_bio_remap”h]”hŒtrace_block_bio_remap”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj;ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhjâ:h²hh³jô:h´MAubj*)�”}”(hŒ+(struct bio *bio, dev_t dev, sector_t from)”h]”(j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj#;h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj;ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj;ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjA;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj>;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jC;Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£j ;sbŒc.trace_block_bio_remap”†”asbuh1hhj;ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj;ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjo;h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj;ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj|;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj;ubj0)�”}”(hŒ dev_t dev”h]”(h)�”}”(hhh]”j)�”}”(hŒdev_t”h]”hŒdev_t”…”�”}”(hj˜;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj•;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jš;Œmodname”NŒ classname”Nj§jª)�”}”j­]”j];Œc.trace_block_bio_remap”†”asbuh1hhj‘;ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj‘;ubj)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÄ;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‘;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj;ubj0)�”}”(hŒ sector_t from”h]”(h)�”}”(hhh]”j)�”}”(hŒsector_t”h]”hŒsector_t”…”�”}”(hjà;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÝ;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jâ;Œmodname”NŒ classname”Nj§jª)�”}”j­]”j];Œc.trace_block_bio_remap”†”asbuh1hhjÙ;ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÙ;ubj)�”}”(hŒfrom”h]”hŒfrom”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÙ;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hj;ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hjâ:h²hh³jô:h´MAubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hjÞ:h²hh³jô:h´MAubah}”(h]”jÙ:ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jô:h´MAhjÛ:h²hubj)�”}”(hhh]”hì)�”}”(hŒ2map request for a logical device to the raw device”h]”hŒ2map request for a logical device to the raw device”…”�”}”(hj6<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MAhj3<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ:h²hh³jô:h´MAubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jN<j&jN<j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hŒþ**Parameters** ``struct bio *bio`` revised operation ``dev_t dev`` original device for the operation ``sector_t from`` original sector for the operation **Description** An operation for a logical device has been mapped to the raw block device.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjX<h]”hŒ Parameters”…”�”}”(hjZ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjV<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MEhjR<ubjK)�”}”(hhh]”(jP)�”}”(hŒ&``struct bio *bio`` revised operation ”h]”(jV)�”}”(hŒ``struct bio *bio``”h]”j)�”}”(hjw<h]”hŒstruct bio *bio”…”�”}”(hjy<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hju<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MBhjq<ubjp)�”}”(hhh]”hì)�”}”(hŒrevised operation”h]”hŒrevised operation”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŒ<h´MBhj�<ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjq<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jŒ<h´MBhjn<ubjP)�”}”(hŒ0``dev_t dev`` original device for the operation ”h]”(jV)�”}”(hŒ ``dev_t dev``”h]”j)�”}”(hj°<h]”hŒ dev_t dev”…”�”}”(hj²<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj®<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MChjª<ubjp)�”}”(hhh]”hì)�”}”(hŒ!original device for the operation”h]”hŒ!original device for the operation”…”�”}”(hjÉ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jÅ<h´MChjÆ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjª<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jÅ<h´MChjn<ubjP)�”}”(hŒ4``sector_t from`` original sector for the operation ”h]”(jV)�”}”(hŒ``sector_t from``”h]”j)�”}”(hjé<h]”hŒ sector_t from”…”�”}”(hjë<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjç<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MDhjã<ubjp)�”}”(hhh]”hì)�”}”(hŒ!original sector for the operation”h]”hŒ!original sector for the operation”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jþ<h´MDhjÿ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjã<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jþ<h´MDhjn<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjR<ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj$=h]”hŒ Description”…”�”}”(hj&=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj"=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MFhjR<ubhì)�”}”(hŒJAn operation for a logical device has been mapped to the raw block device.”h]”hŒJAn operation for a logical device has been mapped to the raw block device.”…”�”}”(hj:=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MEhjR<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ!trace_block_rq_remap (C function)”Œc.trace_block_rq_remap”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒHvoid trace_block_rq_remap (struct request *rq, dev_t dev, sector_t from)”h]”jà)�”}”(hŒGvoid trace_block_rq_remap(struct request *rq, dev_t dev, sector_t from)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hji=h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhje=h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mjubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hje=h²hh³jw=h´Mjubj )�”}”(hŒtrace_block_rq_remap”h]”j)�”}”(hŒtrace_block_rq_remap”h]”hŒtrace_block_rq_remap”…”�”}”(hjŠ=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj†=ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhje=h²hh³jw=h´Mjubj*)�”}”(hŒ.(struct request *rq, dev_t dev, sector_t from)”h]”(j0)�”}”(hŒstruct request *rq”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hj¦=h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhj¢=ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¢=ubh)�”}”(hhh]”j)�”}”(hŒrequest”h]”hŒrequest”…”�”}”(hjÄ=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÁ=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jÆ=Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jŒ=sbŒc.trace_block_rq_remap”†”asbuh1hhj¢=ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¢=ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hjò=h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhj¢=ubj)�”}”(hŒrq”h]”hŒrq”…”�”}”(hjÿ=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¢=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjž=ubj0)�”}”(hŒ dev_t dev”h]”(h)�”}”(hhh]”j)�”}”(hŒdev_t”h]”hŒdev_t”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j>Œmodname”NŒ classname”Nj§jª)�”}”j­]”jà=Œc.trace_block_rq_remap”†”asbuh1hhj>ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj>ubj)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjG>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjž=ubj0)�”}”(hŒ sector_t from”h]”(h)�”}”(hhh]”j)�”}”(hŒsector_t”h]”hŒsector_t”…”�”}”(hjc>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj`>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”je>Œmodname”NŒ classname”Nj§jª)�”}”j­]”jà=Œc.trace_block_rq_remap”†”asbuh1hhj\>ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj\>ubj)�”}”(hŒfrom”h]”hŒfrom”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj\>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hjž=ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hje=h²hh³jw=h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hja=h²hh³jw=h´Mjubah}”(h]”j\=ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jw=h´Mjhj^=h²hubj)�”}”(hhh]”hì)�”}”(hŒ)map request for a block operation request”h]”hŒ)map request for a block operation request”…”�”}”(hj¹>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mjhj¶>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^=h²hh³jw=h´Mjubeh}”(h]”h ]”(j¡Œfunction”eh"]”h$]”h&]”j$j¡j%jÑ>j&jÑ>j'‰j(‰j)‰uh1jÔh²hhjöh³Nh´Nubj+)�”}”(hX^**Parameters** ``struct request *rq`` block IO operation request ``dev_t dev`` device for the operation ``sector_t from`` original sector for the operation **Description** The block operation request **rq** in **q** has been remapped. The block operation request **rq** holds the current information and **from** hold the original sector.”h]”(hì)�”}”(hŒ**Parameters**”h]”j5)�”}”(hjÛ>h]”hŒ Parameters”…”�”}”(hjÝ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÙ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MnhjÕ>ubjK)�”}”(hhh]”(jP)�”}”(hŒ2``struct request *rq`` block IO operation request ”h]”(jV)�”}”(hŒ``struct request *rq``”h]”j)�”}”(hjú>h]”hŒstruct request *rq”…”�”}”(hjü>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjø>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mkhjô>ubjp)�”}”(hhh]”hì)�”}”(hŒblock IO operation request”h]”hŒblock IO operation request”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j?h´Mkhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjô>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j?h´Mkhjñ>ubjP)�”}”(hŒ'``dev_t dev`` device for the operation ”h]”(jV)�”}”(hŒ ``dev_t dev``”h]”j)�”}”(hj3?h]”hŒ dev_t dev”…”�”}”(hj5?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj1?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mlhj-?ubjp)�”}”(hhh]”hì)�”}”(hŒdevice for the operation”h]”hŒdevice for the operation”…”�”}”(hjL?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jH?h´MlhjI?ubah}”(h]”h ]”h"]”h$]”h&]”uh1johj-?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jH?h´Mlhjñ>ubjP)�”}”(hŒ4``sector_t from`` original sector for the operation ”h]”(jV)�”}”(hŒ``sector_t from``”h]”j)�”}”(hjl?h]”hŒ sector_t from”…”�”}”(hjn?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´Mmhjf?ubjp)�”}”(hhh]”hì)�”}”(hŒ!original sector for the operation”h]”hŒ!original sector for the operation”…”�”}”(hj…?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³j�?h´Mmhj‚?ubah}”(h]”h ]”h"]”h$]”h&]”uh1johjf?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³j�?h´Mmhjñ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjÕ>ubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj§?h]”hŒ Description”…”�”}”(hj©?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj¥?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MohjÕ>ubhì)�”}”(hŒ§The block operation request **rq** in **q** has been remapped. The block operation request **rq** holds the current information and **from** hold the original sector.”h]”(hŒThe block operation request ”…”�”}”(hj½?h²hh³Nh´Nubj5)�”}”(hŒ**rq**”h]”hŒrq”…”�”}”(hjÅ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj½?ubhŒ in ”…”�”}”(hj½?h²hh³Nh´Nubj5)�”}”(hŒ**q**”h]”hŒq”…”�”}”(hj×?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj½?ubhŒ1 has been remapped. The block operation request ”…”�”}”(hj½?h²hh³Nh´Nubj5)�”}”(hŒ**rq**”h]”hŒrq”…”�”}”(hjé?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj½?ubhŒ# holds the current information and ”…”�”}”(hj½?h²hh³Nh´Nubj5)�”}”(hŒ**from**”h]”hŒfrom”…”�”}”(hjû?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj½?ubhŒ hold the original sector.”…”�”}”(hj½?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´MnhjÕ>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hjöh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ#trace_blkdev_zone_mgmt (C function)”Œc.trace_blkdev_zone_mgmt”hNt”auh1jÃhjöh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒBvoid trace_blkdev_zone_mgmt (struct bio *bio, sector_t nr_sectors)”h]”jà)�”}”(hŒAvoid trace_blkdev_zone_mgmt(struct bio *bio, sector_t nr_sectors)”h]”(jæ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj4@h²hh³Nh´Nubah}”(h]”h ]”jòah"]”h$]”h&]”uh1jåhj0@h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.h”h´M–ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj0@h²hh³jB@h´M–ubj )�”}”(hŒtrace_blkdev_zone_mgmt”h]”j)�”}”(hŒtrace_blkdev_zone_mgmt”h]”hŒtrace_blkdev_zone_mgmt”…”�”}”(hjU@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjQ@ubah}”(h]”h ]”(j"j#eh"]”h$]”h&]”j'j(uh1jhj0@h²hh³jB@h´M–ubj*)�”}”(hŒ&(struct bio *bio, sector_t nr_sectors)”h]”(j0)�”}”(hŒstruct bio *bio”h]”(jk)�”}”(hjnh]”hŒstruct”…”�”}”(hjq@h²hh³Nh´Nubah}”(h]”h ]”jwah"]”h$]”h&]”uh1jjhjm@ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjm@ubh)�”}”(hhh]”j)�”}”(hŒbio”h]”hŒbio”…”�”}”(hj�@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŒ@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”j‘@Œmodname”NŒ classname”Nj§jª)�”}”j­]”j°)�”}”j£jW@sbŒc.trace_blkdev_zone_mgmt”†”asbuh1hhjm@ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjm@ubjÄ)�”}”(hjÇh]”hŒ*”…”�”}”(hj½@h²hh³Nh´Nubah}”(h]”h ]”jÐah"]”h$]”h&]”uh1jÃhjm@ubj)�”}”(hŒbio”h]”hŒbio”…”�”}”(hjÊ@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjm@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hji@ubj0)�”}”(hŒsector_t nr_sectors”h]”(h)�”}”(hhh]”j)�”}”(hŒsector_t”h]”hŒsector_t”…”�”}”(hjæ@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjã@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¡Œreftype”j£Œ reftarget”jè@Œmodname”NŒ classname”Nj§jª)�”}”j­]”j«@Œc.trace_blkdev_zone_mgmt”†”asbuh1hhjß@ubjø)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjß@ubj)�”}”(hŒ nr_sectors”h]”hŒ nr_sectors”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjß@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj'j(uh1j/hji@ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(uh1j)hj0@h²hh³jB@h´M–ubeh}”(h]”h ]”h"]”h$]”h&]”j'j(jõˆuh1jßjöj÷hj,@h²hh³jB@h´M–ubah}”(h]”j'@ah ]”(jûjüeh"]”h$]”h&]”jˆj)jhuh1jÙh³jB@h´M–hj)@h²hubj)�”}”(hhh]”hì)�”}”(hŒ7Execute a zone management operation on a range of zones”h]”hŒ7Execute a zone management operation on a range of zones”…”�”}”(hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.h”h´Khj:Dubjp)�”}”(hhh]”hì)�”}”(hŒ pointer to struct pool_workqueue”h]”hŒ pointer to struct pool_workqueue”…”�”}”(hjYDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jUDh´KhjVDubah}”(h]”h ]”h"]”h$]”h&]”uh1johj:Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jUDh´KhjþCubjP)�”}”(hŒ;``struct work_struct *work`` pointer to struct work_struct ”h]”(jV)�”}”(hŒ``struct work_struct *work``”h]”j)�”}”(hjyDh]”hŒstruct work_struct *work”…”�”}”(hj{Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjwDubah}”(h]”h ]”h"]”h$]”h&]”uh1jUh³Œd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.h”h´KhjsDubjp)�”}”(hhh]”hì)�”}”(hŒpointer to struct work_struct”h]”hŒpointer to struct work_struct”…”�”}”(hj’Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³jŽDh´Khj�Dubah}”(h]”h ]”h"]”h$]”h&]”uh1johjsDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jOh³jŽDh´KhjþCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjâCubhì)�”}”(hŒ**Description**”h]”j5)�”}”(hj´Dh]”hŒ Description”…”�”}”(hj¶Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj²Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.h”h´KhjâCubhì)�”}”(hŒ“This event occurs when a work is queued immediately or once a delayed work is actually queued on a workqueue (ie: once the delay has been reached).”h]”hŒ“This event occurs when a work is queued immediately or once a delayed work is actually queued on a workqueue (ie: once the delay has been reached).”…”�”}”(hjÊDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³Œd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.h”h´KhjâCubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j*hj7Bh²hh³Nh´NubjÄ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÐŒ*trace_workqueue_activate_work (C function)”Œc.trace_workqueue_activate_work”hNt”auh1jÃhj7Bh²hh³Nh´NubjÕ)�”}”(hhh]”(jÚ)�”}”(hŒ=void trace_workqueue_activate_work (struct work_struct *work)”h]”jà)�”}”(hŒ