sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/core-api/tracepointmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hThe Linux Kernel Tracepoint APIh]hThe Linux Kernel Tracepoint API}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint.rsthKubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hAuthorh]hAuthor}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h Jason Baronh]h paragraph)}(hhh]h Jason Baron}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hAuthorh]hAuthor}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh)}(hWilliam Cohen h]h)}(h William Cohenh]h William Cohen}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hj,hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hhhhhK 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.}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj'hhubh)}(hFrom 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]hFrom 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.}(hjHhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj'hhubh)}(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.}(hjVhjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj'hhubh)}(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: }(h-The API presented has functions of the form: hjbhhhNhNubhliteral)}(h-``trace_tracepointname(function parameters)``h]h)trace_tracepointname(function parameters)}(hhhjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjbubh. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the }(h. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the hjbhhhNhNubjl)}(h``Documentation/trace/*``h]hDocumentation/trace/*}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjbubh directory.}(h directory.hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj'hhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hIRQh]hIRQ}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK"ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single$trace_irq_handler_entry (C function)c.trace_irq_handler_entryhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h@void trace_irq_handler_entry (int irq, struct irqaction *action)h]hdesc_signature_line)}(h?void trace_irq_handler_entry(int irq, struct irqaction *action)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK,ubhdesc_sig_space)}(h h]h }(hhhjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhK,ubh desc_name)}(htrace_irq_handler_entryh]h desc_sig_name)}(htrace_irq_handler_entryh]htrace_irq_handler_entry}(hhhjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhjhK,ubhdesc_parameterlist)}(h#(int irq, struct irqaction *action)h](hdesc_parameter)}(hint irqh](j)}(hinth]hint}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hirqh]hirq}(hhhj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct irqaction *actionh](hdesc_sig_keyword)}(hstructh]hstruct}(hhhj[hhhNhNubah}(h]h ]kah"]h$]h&]uh1jYhjUubj)}(h h]h }(hhhjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(h irqactionh]h irqaction}(hhhj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj}modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.trace_irq_handler_entryasbuh1hhjUubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubhdesc_sig_punctuation)}(h*h]h*}(hhhjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjUubj)}(hactionh]haction}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK,ubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1jsphinx_line_type declaratorhjhhhjhK,ubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multilineuh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK5hjhhubh desc_content)}(hhh]h)}(h0called immediately before the irq action handlerh]h0called immediately before the irq action handler}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK+hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK,ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindexuh1jhhhjhNhNubh 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]hstrong)}(hjh]h Parameters}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK/hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h``int irq`` irq number h](hterm)}(h ``int irq``h]jl)}(hjEh]hint irq}(hhhjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjCubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK,hj=ubh definition)}(hhh]h)}(h irq numberh]h irq number}(hjbhj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhK,hj]ubah}(h]h ]h"]h$]h&]uh1j[hj=ubeh}(h]h ]h"]h$]h&]uh1j;hjZhK,hj8ubj<)}(h9``struct irqaction *action`` pointer to struct irqaction h](jB)}(h``struct irqaction *action``h]jl)}(hjh]hstruct irqaction *action}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj~ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK-hjzubj\)}(hhh]h)}(hpointer to struct irqactionh]hpointer to struct irqaction}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK-hjubah}(h]h ]h"]h$]h&]uh1j[hjzubeh}(h]h ]h"]h$]h&]uh1j;hjhK-hj8ubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK/hjubh)}(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 }(h#The struct irqaction pointed to by hjhhhNhNubj!)}(h **action**h]haction}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhL contains various information about the handler, including the device name, }(hL contains various information about the handler, including the device name, hjhhhNhNubj!)}(h**action->name**h]h action->name}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh, and the device id, }(h, and the device id, hjhhhNhNubj!)}(h**action->dev_id**h]haction->dev_id}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhi. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.}(hi. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK/hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#trace_irq_handler_exit (C function)c.trace_irq_handler_exithNtauh1jhjhhhNhNubj)}(hhh](j)}(hHvoid trace_irq_handler_exit (int irq, struct irqaction *action, int ret)h]j)}(hGvoid trace_irq_handler_exit(int irq, struct irqaction *action, int ret)h](j)}(hvoidh]hvoid}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKJubj)}(h h]h }(hhhjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhjHhKJubj)}(htrace_irq_handler_exith]j)}(htrace_irq_handler_exith]htrace_irq_handler_exit}(hhhj[hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjWubah}(h]h ](jjeh"]h$]h&]jjuh1jhj6hhhjHhKJubj)}(h,(int irq, struct irqaction *action, int ret)h](j)}(hint irqh](j)}(hinth]hint}(hhhjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(hirqh]hirq}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjoubj)}(hstruct irqaction *actionh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h irqactionh]h irqaction}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj]sbc.trace_irq_handler_exitasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hactionh]haction}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjoubj)}(hint reth](j)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hreth]hret}(hhhj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjoubeh}(h]h ]h"]h$]h&]jjuh1jhj6hhhjHhKJubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj2hhhjHhKJubah}(h]j-ah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKShj/hhubj)}(hhh]h)}(h7called immediately after the irq action handler returnsh]h7called immediately after the irq action handler returns}(hjghjehhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKIhjbhhubah}(h]h ]h"]h$]h&]uh1jhj/hhhjHhKJubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}juh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKMhjubj7)}(hhh](j<)}(h``int irq`` irq number h](jB)}(h ``int irq``h]jl)}(hjh]hint irq}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKJhjubj\)}(hhh]h)}(h irq numberh]h irq number}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKJhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKJhjubj<)}(h9``struct irqaction *action`` pointer to struct irqaction h](jB)}(h``struct irqaction *action``h]jl)}(hjh]hstruct irqaction *action}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKKhjubj\)}(hhh]h)}(hpointer to struct irqactionh]hpointer to struct irqaction}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKKhjubj<)}(h``int ret`` return value h](jB)}(h ``int ret``h]jl)}(hjh]hint ret}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKLhjubj\)}(hhh]h)}(h return valueh]h return value}(hj3hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hKLhj.ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj-hKLhjubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjSh]h Description}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKNhjubh)}(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](hIf the }(hIf the hjihhhNhNubj!)}(h**ret**h]hret}(hhhjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiubhB value is set to IRQ_HANDLED, then we know that the corresponding }(hB value is set to IRQ_HANDLED, then we know that the corresponding hjihhhNhNubj!)}(h**action->handler**h]haction->handler}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjiubh 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 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.hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j trace_softirq_entry (C function)c.trace_softirq_entryhNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void trace_softirq_entry (unsigned int vec_nr)h]j)}(h-void trace_softirq_entry(unsigned int vec_nr)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK{ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK{ubj)}(htrace_softirq_entryh]j)}(htrace_softirq_entryh]htrace_softirq_entry}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK{ubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvec_nrh]hvec_nr}(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK{ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK{ubah}(h]jah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjhhubj)}(hhh]h)}(h-called immediately before the softirq handlerh]h-called immediately before the softirq handler}(hjahj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKzhj\hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjuh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK~hj{ubj7)}(hhh]j<)}(h.``unsigned int vec_nr`` softirq vector number h](jB)}(h``unsigned int vec_nr``h]jl)}(hjh]hunsigned int vec_nr}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK{hjubj\)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK{hjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhK{hjubah}(h]h ]h"]h$]h&]uh1j6hj{ubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK}hj{ubh)}(hgWhen used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.h]hgWhen used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK}hj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_softirq_exit (C function)c.trace_softirq_exithNtauh1jhjhhhNhNubj)}(hhh](j)}(h-void trace_softirq_exit (unsigned int vec_nr)h]j)}(h,void trace_softirq_exit(unsigned int vec_nr)h](j)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj.hKubj)}(htrace_softirq_exith]j)}(htrace_softirq_exith]htrace_softirq_exit}(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj.hKubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hhhj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(h h]h }(hhhjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hinth]hint}(hhhjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hvec_nrh]hvec_nr}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjUubah}(h]h ]h"]h$]h&]jjuh1jhjhhhj.hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj.hKubah}(h]jah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjhhubj)}(hhh]h)}(h4called immediately after the softirq handler returnsh]h4called immediately after the softirq handler returns}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj.hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubj7)}(hhh]j<)}(h.``unsigned int vec_nr`` softirq vector number h](jB)}(h``unsigned int vec_nr``h]jl)}(hj h]hunsigned int vec_nr}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubj\)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj hKhjubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hj< h]h Description}(hhhj> hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj: ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubh)}(hhWhen used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.h]hhWhen used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.}(hjT hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j trace_softirq_raise (C function)c.trace_softirq_raisehNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void trace_softirq_raise (unsigned int vec_nr)h]j)}(h-void trace_softirq_raise(unsigned int vec_nr)h](j)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} hhhj hKubj)}(htrace_softirq_raiseh]j)}(htrace_softirq_raiseh]htrace_softirq_raise}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj} hhhj hKubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hinth]hint}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hvec_nrh]hvec_nr}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubah}(h]h ]h"]h$]h&]jjuh1jhj} hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjy hhhj hKubah}(h]jt ah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjv hhubj)}(hhh]h)}(h+called immediately when a softirq is raisedh]h+called immediately when a softirq is raised}(hj# hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jhjv hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9 jj9 juh1jhhhjhNhNubj)}(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]j!)}(hjC h]h Parameters}(hhhjE hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjA ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj= ubj7)}(hhh]j<)}(h.``unsigned int vec_nr`` softirq vector number h](jB)}(h``unsigned int vec_nr``h]jl)}(hjb h]hunsigned int vec_nr}(hhhjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj` ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj\ ubj\)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hj} hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hKhjx ubah}(h]h ]h"]h$]h&]uh1j[hj\ ubeh}(h]h ]h"]h$]h&]uh1j;hjw hKhjY ubah}(h]h ]h"]h$]h&]uh1j6hj= ubh)}(h**Description**h]j!)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj= ubh)}(hmWhen used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.h]hmWhen used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj= ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j trace_tasklet_entry (C function)c.trace_tasklet_entryhNtauh1jhjhhhNhNubj)}(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)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_tasklet_entryh]j)}(htrace_tasklet_entryh]htrace_tasklet_entry}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKubj)}(h&(struct tasklet_struct *t, void *func)h](j)}(hstruct tasklet_struct *th](jZ)}(hj]h]hstruct}(hhhj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(h h]h }(hhhj, hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hhhj= hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj: ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj? modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_entryasbuh1hhj ubj)}(h h]h }(hhhj] hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhjk hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hth]ht}(hhhjx hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubj)}(h void *funch](j)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hfunch]hfunc}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj hhubj)}(hhh]h)}(h,called immediately before the tasklet is runh]h,called immediately before the tasklet is run}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj juh1jhhhjhNhNubj)}(h**Parameters** ``struct tasklet_struct *t`` tasklet pointer ``void *func`` tasklet callback or function being run **Description** Used to find individual tasklet execution timeh](h)}(h**Parameters**h]j!)}(hj h]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubj7)}(hhh](j<)}(h-``struct tasklet_struct *t`` tasklet pointer h](jB)}(h``struct tasklet_struct *t``h]jl)}(hj& h]hstruct tasklet_struct *t}(hhhj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj$ ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubj\)}(hhh]h)}(htasklet pointerh]htasklet pointer}(hjA hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj; hKhj< ubah}(h]h ]h"]h$]h&]uh1j[hj ubeh}(h]h ]h"]h$]h&]uh1j;hj; hKhj ubj<)}(h6``void *func`` tasklet callback or function being run h](jB)}(h``void *func``h]jl)}(hj_ h]h void *func}(hhhja hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj] ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjY ubj\)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hjz hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt hKhju ubah}(h]h ]h"]h$]h&]uh1j[hjY ubeh}(h]h ]h"]h$]h&]uh1j;hjt hKhj ubeh}(h]h ]h"]h$]h&]uh1j6hj ubh)}(h**Description**h]j!)}(hj h]h Description}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubh)}(h.Used to find individual tasklet execution timeh]h.Used to find individual tasklet execution time}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_tasklet_exit (C function)c.trace_tasklet_exithNtauh1jhjhhhNhNubj)}(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)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_tasklet_exith]j)}(htrace_tasklet_exith]htrace_tasklet_exit}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKubj)}(h&(struct tasklet_struct *t, void *func)h](j)}(hstruct tasklet_struct *th](jZ)}(hj]h]hstruct}(hhhj hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj ubj)}(h h]h }(hhhj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hhhj: hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj< modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_exitasbuh1hhj ubj)}(h h]h }(hhhjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjz h]ht}(hhhju hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubj)}(h void *funch](j)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hfunch]hfunc}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]juh1jh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj hhubj)}(hhh]h)}(h+called immediately after the tasklet is runh]h+called immediately after the tasklet is run}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj juh1jhhhjhNhNubj)}(h**Parameters** ``struct tasklet_struct *t`` tasklet pointer ``void *func`` tasklet callback or function being run **Description** Used to find individual tasklet execution timeh](h)}(h**Parameters**h]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubj7)}(hhh](j<)}(h-``struct tasklet_struct *t`` tasklet pointer h](jB)}(h``struct tasklet_struct *t``h]jl)}(hj"h]hstruct tasklet_struct *t}(hhhj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubj\)}(hhh]h)}(htasklet pointerh]htasklet pointer}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hKhj8ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj7hKhjubj<)}(h6``void *func`` tasklet callback or function being run h](jB)}(h``void *func``h]jl)}(hj[h]h void *func}(hhhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjYubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjUubj\)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hjvhjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphKhjqubah}(h]h ]h"]h$]h&]uh1j[hjUubeh}(h]h ]h"]h$]h&]uh1j;hjphKhjubeh}(h]h ]h"]h$]h&]uh1j6hj ubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubh)}(h.Used to find individual tasklet execution timeh]h.Used to find individual tasklet execution time}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]irqah ]h"]irqah$]h&]uh1hhhhhhhhK"ubh)}(hhh](h)}(hSIGNALh]hSIGNAL}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK(ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"trace_signal_generate (C function)c.trace_signal_generatehNtauh1jhjhhhNhNubj)}(hhh](j)}(hrvoid trace_signal_generate (int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)h]j)}(hqvoid trace_signal_generate(int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK&ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK&ubj)}(htrace_signal_generateh]j)}(htrace_signal_generateh]htrace_signal_generate}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK&ubj)}(hW(int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)h](j)}(hint sigh](j)}(hinth]hint}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(h h]h }(hhhj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(hsigh]hsig}(hhhjMhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(hstruct kernel_siginfo *infoh](jZ)}(hj]h]hstruct}(hhhjfhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjbubj)}(h h]h }(hhhjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubh)}(hhh]j)}(hkernel_siginfoh]hkernel_siginfo}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_signal_generateasbuh1hhjbubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hinfoh]hinfo}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(hstruct task_struct *taskh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h task_structh]h task_struct}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.trace_signal_generateasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htaskh]htask}(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(h int grouph](j)}(hinth]hint}(hhhjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(h h]h }(hhhjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(hgrouph]hgroup}(hhhjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubj)}(h int resulth](j)}(hinth]hint}(hhhj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(hresulth]hresult}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK&ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK&ubah}(h]jah ](jjeh"]h$]h&]juh1jha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK2hjhhubj)}(hhh]h)}(h!called when a signal is generatedh]h!called when a signal is generated}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK%hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK)hjubj7)}(hhh](j<)}(h``int sig`` signal number h](jB)}(h ``int sig``h]jl)}(hjh]hint sig}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK&hjubj\)}(hhh]h)}(h signal numberh]h signal number}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK&hjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhK&hjubj<)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jB)}(h``struct kernel_siginfo *info``h]jl)}(hj>h]hstruct kernel_siginfo *info}(hhhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj<ubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK'hj8ubj\)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hjYhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShK'hjTubah}(h]h ]h"]h$]h&]uh1j[hj8ubeh}(h]h ]h"]h$]h&]uh1j;hjShK'hjubj<)}(h;``struct task_struct *task`` pointer to struct task_struct h](jB)}(h``struct task_struct *task``h]jl)}(hjwh]hstruct task_struct *task}(hhhjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjuubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK(hjqubj\)}(hhh]h)}(hpointer to struct task_structh]hpointer to struct task_struct}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK(hjubah}(h]h ]h"]h$]h&]uh1j[hjqubeh}(h]h ]h"]h$]h&]uh1j;hjhK(hjubj<)}(h ``int group`` shared or private h](jB)}(h ``int group``h]jl)}(hjh]h int group}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK)hjubj\)}(hhh]h)}(hshared or privateh]hshared or private}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK)hjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhK)hjubj<)}(h``int result`` TRACE_SIGNAL_* h](jB)}(h``int result``h]jl)}(hjh]h int result}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK*hjubj\)}(hhh]h)}(hTRACE_SIGNAL_*h]hTRACE_SIGNAL_*}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK*hjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhK*hjubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hj$h]h Description}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj"ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK,hjubh)}(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<hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK,hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_signal_deliver (C function)c.trace_signal_deliverhNtauh1jhjhhhNhNubj)}(hhh](j)}(hXvoid trace_signal_deliver (int sig, struct kernel_siginfo *info, struct k_sigaction *ka)h]j)}(hWvoid trace_signal_deliver(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)h](j)}(hvoidh]hvoid}(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKTubj)}(h h]h }(hhhjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhjwhKTubj)}(htrace_signal_deliverh]j)}(htrace_signal_deliverh]htrace_signal_deliver}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjehhhjwhKTubj)}(h>(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)h](j)}(hint sigh](j)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hsigh]hsig}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct kernel_siginfo *infoh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hkernel_siginfoh]hkernel_siginfo}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_signal_deliverasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinfoh]hinfo}(hhhj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct k_sigaction *kah](jZ)}(hj]h]hstruct}(hhhjMhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjIubj)}(h h]h }(hhhjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubh)}(hhh]j)}(h k_sigactionh]h k_sigaction}(hhhjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jc.trace_signal_deliverasbuh1hhjIubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(hkah]hka}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjehhhjwhKTubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjahhhjwhKTubah}(h]j\ah ](jjeh"]h$]h&]juh1jha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK`hj^hhubj)}(hhh]h)}(h!called when a signal is deliveredh]h!called when a signal is delivered}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKShjhhubah}(h]h ]h"]h$]h&]uh1jhj^hhhjwhKTubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKWhjubj7)}(hhh](j<)}(h``int sig`` signal number h](jB)}(h ``int sig``h]jl)}(hjh]hint sig}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKThj ubj\)}(hhh]h)}(h signal numberh]h signal number}(hj+hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKThj&ubah}(h]h ]h"]h$]h&]uh1j[hj ubeh}(h]h ]h"]h$]h&]uh1j;hj%hKThjubj<)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jB)}(h``struct kernel_siginfo *info``h]jl)}(hjIh]hstruct kernel_siginfo *info}(hhhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjGubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKUhjCubj\)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hjdhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hKUhj_ubah}(h]h ]h"]h$]h&]uh1j[hjCubeh}(h]h ]h"]h$]h&]uh1j;hj^hKUhjubj<)}(h9``struct k_sigaction *ka`` pointer to struct k_sigaction h](jB)}(h``struct k_sigaction *ka``h]jl)}(hjh]hstruct k_sigaction *ka}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKVhj|ubj\)}(hhh]h)}(hpointer to struct k_sigactionh]hpointer to struct k_sigaction}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1j[hj|ubeh}(h]h ]h"]h$]h&]uh1j;hjhKVhjubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKXhjubh)}(hXA '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]hXA ‘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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKXhjube"h}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]signalah ]h"]signalah$]h&]uh1hhhhhhhhK(ubh)}(hhh](h)}(hBlock IOh]hBlock IO}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK.ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%trace_block_touch_buffer (C function)c.trace_block_touch_bufferhNtauh1jhjhhhNhNubj)}(hhh](j)}(h6void trace_block_touch_buffer (struct buffer_head *bh)h]j)}(h5void trace_block_touch_buffer(struct buffer_head *bh)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK*ubj)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj)hK*ubj)}(htrace_block_touch_bufferh]j)}(htrace_block_touch_bufferh]htrace_block_touch_buffer}(hhhj<hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj)hK*ubj)}(h(struct buffer_head *bh)h]j)}(hstruct buffer_head *bhh](jZ)}(hj]h]hstruct}(hhhjXhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjTubj)}(h h]h }(hhhjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubh)}(hhh]j)}(h buffer_headh]h buffer_head}(hhhjvhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jj>sbc.trace_block_touch_bufferasbuh1hhjTubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj)}(hbhh]hbh}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjPubah}(h]h ]h"]h$]h&]jjuh1jhjhhhj)hK*ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj)hK*ubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK.hjhhubj)}(hhh]h)}(hmark a buffer accessedh]hmark a buffer accessed}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK)hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj)hK*ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(ht**Parameters** ``struct buffer_head *bh`` buffer_head being touched **Description** Called from touch_buffer().h](h)}(h**Parameters**h]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK-hjubj7)}(hhh]j<)}(h5``struct buffer_head *bh`` buffer_head being touched h](jB)}(h``struct buffer_head *bh``h]jl)}(hjh]hstruct buffer_head *bh}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK*hjubj\)}(hhh]h)}(hbuffer_head being touchedh]hbuffer_head being touched}(hj8hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hK*hj3ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj2hK*hjubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjXh]h Description}(hhhjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK,hjubh)}(hCalled from touch_buffer().h]hCalled from touch_buffer().}(hjphjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK,hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%trace_block_dirty_buffer (C function)c.trace_block_dirty_bufferhNtauh1jhjhhhNhNubj)}(hhh](j)}(h6void trace_block_dirty_buffer (struct buffer_head *bh)h]j)}(h5void trace_block_dirty_buffer(struct buffer_head *bh)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK7ubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK7ubj)}(htrace_block_dirty_bufferh]j)}(htrace_block_dirty_bufferh]htrace_block_dirty_buffer}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK7ubj)}(h(struct buffer_head *bh)h]j)}(hstruct buffer_head *bhh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h buffer_headh]h buffer_head}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_block_dirty_bufferasbuh1hhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbhh]hbh}(hhhj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK7ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK7ubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK;hjhhubj)}(hhh]h)}(hmark a buffer dirtyh]hmark a buffer dirty}(hj`hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK6hj[hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjuh1jhhhjhNhNubj)}(hy**Parameters** ``struct buffer_head *bh`` buffer_head being dirtied **Description** Called from mark_buffer_dirty().h](h)}(h**Parameters**h]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj~ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK:hjzubj7)}(hhh]j<)}(h5``struct buffer_head *bh`` buffer_head being dirtied h](jB)}(h``struct buffer_head *bh``h]jl)}(hjh]hstruct buffer_head *bh}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK7hjubj\)}(hhh]h)}(hbuffer_head being dirtiedh]hbuffer_head being dirtied}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK7hjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhK7hjubah}(h]h ]h"]h$]h&]uh1j6hjzubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK9hjzubh)}(h Called from mark_buffer_dirty().h]h Called from mark_buffer_dirty().}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK9hjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#trace_block_rq_requeue (C function)c.trace_block_rq_requeuehNtauh1jhjhhhNhNubj)}(hhh](j)}(h0void trace_block_rq_requeue (struct request *rq)h]j)}(h/void trace_block_rq_requeue(struct request *rq)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKEubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj-hKEubj)}(htrace_block_rq_requeueh]j)}(htrace_block_rq_requeueh]htrace_block_rq_requeue}(hhhj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj<ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj-hKEubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhj\hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjXubj)}(h h]h }(hhhjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubh)}(hhh]j)}(hrequesth]hrequest}(hhhjzhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}jjBsbc.trace_block_rq_requeueasbuh1hhjXubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj)}(hrqh]hrq}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjTubah}(h]h ]h"]h$]h&]jjuh1jhjhhhj-hKEubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj-hKEubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKKhjhhubj)}(hhh]h)}(h&place block IO request back on a queueh]h&place block IO request back on a queue}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKDhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj-hKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(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]j!)}(hjh]h Parameters}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKHhjubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj!h]hstruct request *rq}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKEhjubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj<hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKEhj7ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj6hKEhjubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hj\h]h Description}(hhhj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjZubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKGhjubh)}(hThe 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](hThe block operation request }(hThe block operation request hjrhhhNhNubj!)}(h**rq**h]hrq}(hhhj{hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubh! is being placed back into queue }(h! is being placed back into queue hjrhhhNhNubj!)}(h**q**h]hq}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubhW. For some reason the request was not completed and needs to be put back in the queue.}(hW. For some reason the request was not completed and needs to be put back in the queue.hjrhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKGhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$trace_block_rq_complete (C function)c.trace_block_rq_completehNtauh1jhjhhhNhNubj)}(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)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(htrace_block_rq_completeh]j)}(htrace_block_rq_completeh]htrace_block_rq_complete}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubj)}(h?(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hrequesth]hrequest}(hhhj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjsbc.trace_block_rq_completeasbuh1hhjubj)}(h h]h }(hhhjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrqh]hrq}(hhhj^hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hhhjzhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j?c.trace_block_rq_completeasbuh1hhjsubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(herrorh]herror}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned int nr_bytesh](j)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hnr_bytesh]hnr_bytes}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubj)}(hhh]h)}(h-block IO operation completed by device driverh]h-block IO operation completed by device driver}(hj$hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:juh1jhhhjhNhNubj)}(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]j!)}(hjDh]h Parameters}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjBubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj>ubj7)}(hhh](j<)}(h0``struct request *rq`` block operations request h](jB)}(h``struct request *rq``h]jl)}(hjch]hstruct request *rq}(hhhjehhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjaubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj]ubj\)}(hhh]h)}(hblock operations requesth]hblock operations request}(hj~hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhKhjyubah}(h]h ]h"]h$]h&]uh1j[hj]ubeh}(h]h ]h"]h$]h&]uh1j;hjxhKhjZubj<)}(h#``blk_status_t error`` status code h](jB)}(h``blk_status_t error``h]jl)}(hjh]hblk_status_t error}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj\)}(hhh]h)}(h status codeh]h status code}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKhjZubj<)}(h4``unsigned int nr_bytes`` number of completed bytes h](jB)}(h``unsigned int nr_bytes``h]jl)}(hjh]hunsigned int nr_bytes}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj\)}(hhh]h)}(hnumber of completed bytesh]hnumber of completed bytes}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKhjZubeh}(h]h ]h"]h$]h&]uh1j6hj>ubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj>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](hThe block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the }(hThe block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the hj&hhhNhNubj!)}(h **rq->bio**h]hrq->bio}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubh is }(h is hj&hhhNhNubjl)}(h``NULL``h]hNULL}(hhhjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj&ubhH, then there is absolutely no additional work to do for the request. If }(hH, then there is absolutely no additional work to do for the request. If hj&hhhNhNubj!)}(h **rq->bio**h]hrq->bio}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubhL is non-NULL then there is additional work required to complete the request.}(hL is non-NULL then there is additional work required to complete the request.hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_block_rq_error (C function)c.trace_block_rq_errorhNtauh1jhjhhhNhNubj)}(hhh](j)}(hYvoid trace_block_rq_error (struct request *rq, blk_status_t error, unsigned int nr_bytes)h]j)}(hXvoid trace_block_rq_error(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(htrace_block_rq_errorh]j)}(htrace_block_rq_errorh]htrace_block_rq_error}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubj)}(h?(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhjhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hrequesth]hrequest}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_block_rq_errorasbuh1hhjubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrqh]hrq}(hhhj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hhhjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jc.trace_block_rq_errorasbuh1hhj:ubj)}(h h]h }(hhhj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(herrorh]herror}(hhhjmhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned int nr_bytesh](j)}(hunsignedh]hunsigned}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hnr_bytesh]hnr_bytes}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubj)}(hhh]h)}(h2block IO operation error reported by device driverh]h2block IO operation error reported by device driver}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(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]j!)}(hj h]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj7)}(hhh](j<)}(h0``struct request *rq`` block operations request h](jB)}(h``struct request *rq``h]jl)}(hj*h]hstruct request *rq}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj(ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj$ubj\)}(hhh]h)}(hblock operations requesth]hblock operations request}(hjEhjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hKhj@ubah}(h]h ]h"]h$]h&]uh1j[hj$ubeh}(h]h ]h"]h$]h&]uh1j;hj?hKhj!ubj<)}(h#``blk_status_t error`` status code h](jB)}(h``blk_status_t error``h]jl)}(hjch]hblk_status_t error}(hhhjehhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjaubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj]ubj\)}(hhh]h)}(h status codeh]h status code}(hj~hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhKhjyubah}(h]h ]h"]h$]h&]uh1j[hj]ubeh}(h]h ]h"]h$]h&]uh1j;hjxhKhj!ubj<)}(h4``unsigned int nr_bytes`` number of completed bytes h](jB)}(h``unsigned int nr_bytes``h]jl)}(hjh]hunsigned int nr_bytes}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj\)}(hhh]h)}(hnumber of completed bytesh]hnumber of completed bytes}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKhj!ubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjh]h Description}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubh)}(hThe block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.h]hThe block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"trace_block_rq_insert (C function)c.trace_block_rq_inserthNtauh1jhjhhhNhNubj)}(hhh](j)}(h/void trace_block_rq_insert (struct request *rq)h]j)}(h.void trace_block_rq_insert(struct request *rq)h](j)}(hvoidh]hvoid}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj*hKubj)}(htrace_block_rq_inserth]j)}(htrace_block_rq_inserth]htrace_block_rq_insert}(hhhj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj9ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj*hKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhjYhhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjUubj)}(h h]h }(hhhjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(hrequesth]hrequest}(hhhjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj?sbc.trace_block_rq_insertasbuh1hhjUubj)}(h h]h }(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hhhjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hrqh]hrq}(hhhjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjQubah}(h]h ]h"]h$]h&]jjuh1jhjhhhj*hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj*hKubah}(h]jah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubj)}(hhh]h)}(h)insert block operation request into queueh]h)insert block operation request into queue}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj*hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjuh1jhhhjhNhNubj)}(hX9**Parameters** ``struct request *rq`` block IO operation request **Description** Called immediately before block operation request **rq** is inserted into queue **q**. The fields in the operation request **rq** struct can be examined to determine which device and sectors the pending operation would access.h](h)}(h**Parameters**h]j!)}(hjh]h Parameters}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj h]hstruct request *rq}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj9 hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3 hKhj4 ubah}(h]h ]h"]h$]h&]uh1j[hj ubeh}(h]h ]h"]h$]h&]uh1j;hj3 hKhj ubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjY h]h Description}(hhhj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjW ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubh)}(hCalled immediately before block operation request **rq** is inserted into queue **q**. The fields in the operation request **rq** struct can be examined to determine which device and sectors the pending operation would access.h](h2Called immediately before block operation request }(h2Called immediately before block operation request hjo hhhNhNubj!)}(h**rq**h]hrq}(hhhjx hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo ubh is inserted into queue }(h is inserted into queue hjo hhhNhNubj!)}(h**q**h]hq}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo ubh'. The fields in the operation request }(h'. The fields in the operation request hjo hhhNhNubj!)}(h**rq**h]hrq}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo ubha struct can be examined to determine which device and sectors the pending operation would access.}(ha struct can be examined to determine which device and sectors the pending operation would access.hjo hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_block_rq_issue (C function)c.trace_block_rq_issuehNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void trace_block_rq_issue (struct request *rq)h]j)}(h-void trace_block_rq_issue(struct request *rq)h](j)}(hvoidh]hvoid}(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_block_rq_issueh]j)}(htrace_block_rq_issueh]htrace_block_rq_issue}(hhhj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhj!hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj!ubj)}(h h]h }(hhhj"!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubh)}(hhh]j)}(hrequesth]hrequest}(hhhj3!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5!modnameN classnameNjj)}j]j)}jj sbc.trace_block_rq_issueasbuh1hhj!ubj)}(h h]h }(hhhjS!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(hjh]h*}(hhhja!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(hrqh]hrq}(hhhjn!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj !ubah}(h]h ]h"]h$]h&]jjuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj hhubj)}(hhh]h)}(h9issue pending block IO request operation to device driverh]h9issue pending block IO request operation to device driver}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!juh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** from queue **q** is sent to a device driver for processing.h](h)}(h**Parameters**h]j!)}(hj!h]h Parameters}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj!h]hstruct request *rq}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj!ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj!hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hKhj!ubah}(h]h ]h"]h$]h&]uh1j[hj!ubeh}(h]h ]h"]h$]h&]uh1j;hj!hKhj!ubah}(h]h ]h"]h$]h&]uh1j6hj!ubh)}(h**Description**h]j!)}(hj"h]h Description}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj"ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubh)}(hfCalled when block operation request **rq** from queue **q** is sent to a device driver for processing.h](h$Called when block operation request }(h$Called when block operation request hj+"hhhNhNubj!)}(h**rq**h]hrq}(hhhj4"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+"ubh from queue }(h from queue hj+"hhhNhNubj!)}(h**q**h]hq}(hhhjG"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+"ubh+ is sent to a device driver for processing.}(h+ is sent to a device driver for processing.hj+"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_block_rq_merge (C function)c.trace_block_rq_mergehNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void trace_block_rq_merge (struct request *rq)h]j)}(h-void trace_block_rq_merge(struct request *rq)h](j)}(hvoidh]hvoid}(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}"hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}"hhhj"hKubj)}(htrace_block_rq_mergeh]j)}(htrace_block_rq_mergeh]htrace_block_rq_merge}(hhhj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj}"hhhj"hKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhj"hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj"ubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(hrequesth]hrequest}(hhhj"hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jj"sbc.trace_block_rq_mergeasbuh1hhj"ubj)}(h h]h }(hhhj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hjh]h*}(hhhj #hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hrqh]hrq}(hhhj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj"ubah}(h]h ]h"]h$]h&]jjuh1jhj}"hhhj"hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjy"hhhj"hKubah}(h]jt"ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjv"hhubj)}(hhh]h)}(h.merge request with another one in the elevatorh]h.merge request with another one in the elevator}(hjD#hjB#hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj?#hhubah}(h]h ]h"]h$]h&]uh1jhjv"hhhj"hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZ#jjZ#juh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** from queue **q** is merged to another request queued in the elevator.h](h)}(h**Parameters**h]j!)}(hjd#h]h Parameters}(hhhjf#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjb#ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj^#ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj#h]hstruct request *rq}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj#ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj}#ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj#hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hKhj#ubah}(h]h ]h"]h$]h&]uh1j[hj}#ubeh}(h]h ]h"]h$]h&]uh1j;hj#hKhjz#ubah}(h]h ]h"]h$]h&]uh1j6hj^#ubh)}(h**Description**h]j!)}(hj#h]h Description}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj^#ubh)}(hpCalled when block operation request **rq** from queue **q** is merged to another request queued in the elevator.h](h$Called when block operation request }(h$Called when block operation request hj#hhhNhNubj!)}(h**rq**h]hrq}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubh from queue }(h from queue hj#hhhNhNubj!)}(h**q**h]hq}(hhhj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubh5 is merged to another request queued in the elevator.}(h5 is merged to another request queued in the elevator.hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj^#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_block_io_start (C function)c.trace_block_io_starthNtauh1jhjhhhNhNubj)}(hhh](j)}(h.void trace_block_io_start (struct request *rq)h]j)}(h-void trace_block_io_start(struct request *rq)h](j)}(hvoidh]hvoid}(hhhj*$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&$hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hhhj9$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&$hhhj8$hKubj)}(htrace_block_io_starth]j)}(htrace_block_io_starth]htrace_block_io_start}(hhhjK$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjG$ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj&$hhhj8$hKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhjg$hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjc$ubj)}(h h]h }(hhhjt$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc$ubh)}(hhh]j)}(hrequesth]hrequest}(hhhj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjM$sbc.trace_block_io_startasbuh1hhjc$ubj)}(h h]h }(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc$ubj)}(hjh]h*}(hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc$ubj)}(hrqh]hrq}(hhhj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjc$ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj_$ubah}(h]h ]h"]h$]h&]jjuh1jhj&$hhhj8$hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj"$hhhj8$hKubah}(h]j$ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj$hhubj)}(hhh]h)}(hinsert a request for executionh]hinsert a request for execution}(hj$hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj$hhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj8$hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%juh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** is queued for executionh](h)}(h**Parameters**h]j!)}(hj %h]h Parameters}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj %ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj%ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj,%h]hstruct request *rq}(hhhj.%hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj*%ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj&%ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hjG%hjE%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA%hKhjB%ubah}(h]h ]h"]h$]h&]uh1j[hj&%ubeh}(h]h ]h"]h$]h&]uh1j;hjA%hKhj#%ubah}(h]h ]h"]h$]h&]uh1j6hj%ubh)}(h**Description**h]j!)}(hjg%h]h Description}(hhhji%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hje%ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj%ubh)}(hBCalled when block operation request **rq** is queued for executionh](h$Called when block operation request }(h$Called when block operation request hj}%hhhNhNubj!)}(h**rq**h]hrq}(hhhj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}%ubh is queued for execution}(h is queued for executionhj}%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j trace_block_io_done (C function)c.trace_block_io_donehNtauh1jhjhhhNhNubj)}(hhh](j)}(h-void trace_block_io_done (struct request *rq)h]j)}(h,void trace_block_io_done(struct request *rq)h](j)}(hvoidh]hvoid}(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM ubj)}(h h]h }(hhhj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hM ubj)}(htrace_block_io_doneh]j)}(htrace_block_io_doneh]htrace_block_io_done}(hhhj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj%hhhj%hM ubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhj%hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj%ubj)}(h h]h }(hhhj &hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubh)}(hhh]j)}(hrequesth]hrequest}(hhhj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jj%sbc.trace_block_io_doneasbuh1hhj%ubj)}(h h]h }(hhhj;&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hjh]h*}(hhhjI&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hrqh]hrq}(hhhjV&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj%ubah}(h]h ]h"]h$]h&]jjuh1jhj%hhhj%hM ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj%hhhj%hM ubah}(h]j%ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj%hhubj)}(hhh]h)}(h$block IO operation request completedh]h$block IO operation request completed}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj~&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&juh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** is completedh](h)}(h**Parameters**h]j!)}(hj&h]h Parameters}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj&ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hj&h]hstruct request *rq}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj&ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj&ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj&hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hM hj&ubah}(h]h ]h"]h$]h&]uh1j[hj&ubeh}(h]h ]h"]h$]h&]uh1j;hj&hM hj&ubah}(h]h ]h"]h$]h&]uh1j6hj&ubh)}(h**Description**h]j!)}(hj&h]h Description}(hhhj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj&ubh)}(h7Called when block operation request **rq** is completedh](h$Called when block operation request }(h$Called when block operation request hj'hhhNhNubj!)}(h**rq**h]hrq}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj'ubh is completed}(h is completedhj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%trace_block_bio_complete (C function)c.trace_block_bio_completehNtauh1jhjhhhNhNubj)}(hhh](j)}(hHvoid trace_block_bio_complete (struct request_queue *q, struct bio *bio)h]j)}(hGvoid trace_block_bio_complete(struct request_queue *q, struct bio *bio)h](j)}(hvoidh]hvoid}(hhhjV'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR'hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhje'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR'hhhjd'hMubj)}(htrace_block_bio_completeh]j)}(htrace_block_bio_completeh]htrace_block_bio_complete}(hhhjw'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjs'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjR'hhhjd'hMubj)}(h*(struct request_queue *q, struct bio *bio)h](j)}(hstruct request_queue *qh](jZ)}(hj]h]hstruct}(hhhj'hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj'ubj)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubh)}(hhh]j)}(h request_queueh]h request_queue}(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjy'sbc.trace_block_bio_completeasbuh1hhj'ubj)}(h h]h }(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hhhj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hqh]hq}(hhhj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj'ubj)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj(hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj(ubj)}(h h]h }(hhhj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubh)}(hhh]j)}(hbioh]hbio}(hhhj#(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj (ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%(modnameN classnameNjj)}j]j'c.trace_block_bio_completeasbuh1hhj(ubj)}(h h]h }(hhhjA(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hjh]h*}(hhhjO(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hbioh]hbio}(hhhj\(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj'ubeh}(h]h ]h"]h$]h&]jjuh1jhjR'hhhjd'hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjN'hhhjd'hMubah}(h]jI'ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjK'hhubj)}(hhh]h)}(h)completed all work on the block operationh]h)completed all work on the block operation}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(hhubah}(h]h ]h"]h$]h&]uh1jhjK'hhhjd'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(juh1jhhhjhNhNubj)}(h**Parameters** ``struct request_queue *q`` queue holding the block operation ``struct bio *bio`` block operation completed **Description** This tracepoint indicates there is no further work to do on this block IO operation **bio**.h](h)}(h**Parameters**h]j!)}(hj(h]h Parameters}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(ubj7)}(hhh](j<)}(h>``struct request_queue *q`` queue holding the block operation h](jB)}(h``struct request_queue *q``h]jl)}(hj(h]hstruct request_queue *q}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj(ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(ubj\)}(hhh]h)}(h!queue holding the block operationh]h!queue holding the block operation}(hj(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hMhj(ubah}(h]h ]h"]h$]h&]uh1j[hj(ubeh}(h]h ]h"]h$]h&]uh1j;hj(hMhj(ubj<)}(h.``struct bio *bio`` block operation completed h](jB)}(h``struct bio *bio``h]jl)}(hj)h]hstruct bio *bio}(hhhj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj(ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(ubj\)}(hhh]h)}(hblock operation completedh]hblock operation completed}(hj)hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMhj)ubah}(h]h ]h"]h$]h&]uh1j[hj(ubeh}(h]h ]h"]h$]h&]uh1j;hj)hMhj(ubeh}(h]h ]h"]h$]h&]uh1j6hj(ubh)}(h**Description**h]j!)}(hj<)h]h Description}(hhhj>)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:)ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(ubh)}(h\This tracepoint indicates there is no further work to do on this block IO operation **bio**.h](hTThis tracepoint indicates there is no further work to do on this block IO operation }(hTThis tracepoint indicates there is no further work to do on this block IO operation hjR)hhhNhNubj!)}(h**bio**h]hbio}(hhhj[)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjR)ubh.}(h.hjR)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#trace_block_bio_bounce (C function)c.trace_block_bio_bouncehNtauh1jhjhhhNhNubj)}(hhh](j)}(h-void trace_block_bio_bounce (struct bio *bio)h]j)}(h,void trace_block_bio_bounce(struct bio *bio)h](j)}(hvoidh]hvoid}(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMVubj)}(h h]h }(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hMVubj)}(htrace_block_bio_bounceh]j)}(htrace_block_bio_bounceh]htrace_block_bio_bounce}(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj)hhhj)hMVubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj)hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj)ubj)}(h h]h }(hhhj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubh)}(hhh]j)}(hbioh]hbio}(hhhj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jj)sbc.trace_block_bio_bounceasbuh1hhj)ubj)}(h h]h }(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hjh]h*}(hhhj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hbioh]hbio}(hhhj+*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubah}(h]h ]h"]h$]h&]jjuh1jhj)hhhj)hMVubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj)hhhj)hMVubah}(h]j)ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM^hj)hhubj)}(hhh]h)}(h2used bounce buffer when processing block operationh]h2used bounce buffer when processing block operation}(hjX*hjV*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMUhjS*hhubah}(h]h ]h"]h$]h&]uh1jhj)hhhj)hMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjn*jjn*juh1jhhhjhNhNubj)}(hXb**Parameters** ``struct bio *bio`` block operation **Description** A bounce buffer was used to handle the block operation **bio** in **q**. This occurs when hardware limitations prevent a direct transfer of data between the **bio** data memory area and the IO device. Use of a bounce buffer requires extra copying of data and decreases performance.h](h)}(h**Parameters**h]j!)}(hjx*h]h Parameters}(hhhjz*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjv*ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMYhjr*ubj7)}(hhh]j<)}(h$``struct bio *bio`` block operation h](jB)}(h``struct bio *bio``h]jl)}(hj*h]hstruct bio *bio}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj*ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMVhj*ubj\)}(hhh]h)}(hblock operationh]hblock operation}(hj*hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMVhj*ubah}(h]h ]h"]h$]h&]uh1j[hj*ubeh}(h]h ]h"]h$]h&]uh1j;hj*hMVhj*ubah}(h]h ]h"]h$]h&]uh1j6hjr*ubh)}(h**Description**h]j!)}(hj*h]h Description}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMXhjr*ubh)}(hXA bounce buffer was used to handle the block operation **bio** in **q**. This occurs when hardware limitations prevent a direct transfer of data between the **bio** data memory area and the IO device. Use of a bounce buffer requires extra copying of data and decreases performance.h](h7A bounce buffer was used to handle the block operation }(h7A bounce buffer was used to handle the block operation hj*hhhNhNubj!)}(h**bio**h]hbio}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubh in }(h in hj*hhhNhNubj!)}(h**q**h]hq}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubhV. This occurs when hardware limitations prevent a direct transfer of data between the }(hV. This occurs when hardware limitations prevent a direct transfer of data between the hj*hhhNhNubj!)}(h**bio**h]hbio}(hhhj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubhv data memory area and the IO device. Use of a bounce buffer requires extra copying of data and decreases performance.}(hv data memory area and the IO device. Use of a bounce buffer requires extra copying of data and decreases performance.hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMXhjr*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&trace_block_bio_backmerge (C function)c.trace_block_bio_backmergehNtauh1jhjhhhNhNubj)}(hhh](j)}(h0void trace_block_bio_backmerge (struct bio *bio)h]j)}(h/void trace_block_bio_backmerge(struct bio *bio)h](j)}(hvoidh]hvoid}(hhhjQ+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM+hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMeubj)}(h h]h }(hhhj`+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM+hhhj_+hMeubj)}(htrace_block_bio_backmergeh]j)}(htrace_block_bio_backmergeh]htrace_block_bio_backmerge}(hhhjr+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjn+ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjM+hhhj_+hMeubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj+hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj+ubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubh)}(hhh]j)}(hbioh]hbio}(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jjt+sbc.trace_block_bio_backmergeasbuh1hhj+ubj)}(h h]h }(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hjh]h*}(hhhj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hbioh]hbio}(hhhj+hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj+ubah}(h]h ]h"]h$]h&]jjuh1jhjM+hhhj_+hMeubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjI+hhhj_+hMeubah}(h]jD+ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMihjF+hhubj)}(hhh]h)}(h;merging block operation to the end of an existing operationh]h;merging block operation to the end of an existing operation}(hj,hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMdhj,hhubah}(h]h ]h"]h$]h&]uh1jhjF+hhhj_+hMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*,jj*,juh1jhhhjhNhNubj)}(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]j!)}(hj4,h]h Parameters}(hhhj6,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2,ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhhj.,ubj7)}(hhh]j<)}(h1``struct bio *bio`` new block operation to merge h](jB)}(h``struct bio *bio``h]jl)}(hjS,h]hstruct bio *bio}(hhhjU,hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjQ,ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMehjM,ubj\)}(hhh]h)}(hnew block operation to mergeh]hnew block operation to merge}(hjn,hjl,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh,hMehji,ubah}(h]h ]h"]h$]h&]uh1j[hjM,ubeh}(h]h ]h"]h$]h&]uh1j;hjh,hMehjJ,ubah}(h]h ]h"]h$]h&]uh1j6hj.,ubh)}(h**Description**h]j!)}(hj,h]h Description}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMghj.,ubh)}(hFMerging block request **bio** to the end of an existing block request.h](hMerging block request }(hMerging block request hj,hhhNhNubj!)}(h**bio**h]hbio}(hhhj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,ubh) to the end of an existing block request.}(h) to the end of an existing block request.hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMghj.,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'trace_block_bio_frontmerge (C function)c.trace_block_bio_frontmergehNtauh1jhjhhhNhNubj)}(hhh](j)}(h1void trace_block_bio_frontmerge (struct bio *bio)h]j)}(h0void trace_block_bio_frontmerge(struct bio *bio)h](j)}(hvoidh]hvoid}(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMpubj)}(h h]h }(hhhj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj,hMpubj)}(htrace_block_bio_frontmergeh]j)}(htrace_block_bio_frontmergeh]htrace_block_bio_frontmerge}(hhhj-hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj-ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhj,hMpubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj$-hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj -ubj)}(h h]h }(hhhj1-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj -ubh)}(hhh]j)}(hbioh]hbio}(hhhjB-hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj?-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD-modnameN classnameNjj)}j]j)}jj -sbc.trace_block_bio_frontmergeasbuh1hhj -ubj)}(h h]h }(hhhjb-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj -ubj)}(hjh]h*}(hhhjp-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj -ubj)}(hbioh]hbio}(hhhj}-hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj -ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj-ubah}(h]h ]h"]h$]h&]jjuh1jhj,hhhj,hMpubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj,hhhj,hMpubah}(h]j,ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMthj,hhubj)}(hhh]h)}(hAmerging block operation to the beginning of an existing operationh]hAmerging block operation to the beginning of an existing operation}(hj-hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMohj-hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhj,hMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-juh1jhhhjhNhNubj)}(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]j!)}(hj-h]h Parameters}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMshj-ubj7)}(hhh]j<)}(h1``struct bio *bio`` new block operation to merge h](jB)}(h``struct bio *bio``h]jl)}(hj-h]hstruct bio *bio}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj-ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMphj-ubj\)}(hhh]h)}(hnew block operation to mergeh]hnew block operation to merge}(hj.hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMphj-ubah}(h]h ]h"]h$]h&]uh1j[hj-ubeh}(h]h ]h"]h$]h&]uh1j;hj-hMphj-ubah}(h]h ]h"]h$]h&]uh1j6hj-ubh)}(h**Description**h]j!)}(hj$.h]h Description}(hhhj&.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj".ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMrhj-ubh)}(hQMerging block IO operation **bio** to the beginning of an existing block request.h](hMerging block IO operation }(hMerging block IO operation hj:.hhhNhNubj!)}(h**bio**h]hbio}(hhhjC.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:.ubh/ to the beginning of an existing block request.}(h/ to the beginning of an existing block request.hj:.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMrhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"trace_block_bio_queue (C function)c.trace_block_bio_queuehNtauh1jhjhhhNhNubj)}(hhh](j)}(h,void trace_block_bio_queue (struct bio *bio)h]j)}(h+void trace_block_bio_queue(struct bio *bio)h](j)}(hvoidh]hvoid}(hhhj}.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy.hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM{ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy.hhhj.hM{ubj)}(htrace_block_bio_queueh]j)}(htrace_block_bio_queueh]htrace_block_bio_queue}(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjy.hhhj.hM{ubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj.hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj.ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubh)}(hhh]j)}(hbioh]hbio}(hhhj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jj.sbc.trace_block_bio_queueasbuh1hhj.ubj)}(h h]h }(hhhj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hjh]h*}(hhhj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hbioh]hbio}(hhhj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj.ubah}(h]h ]h"]h$]h&]jjuh1jhjy.hhhj.hM{ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhju.hhhj.hM{ubah}(h]jp.ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjr.hhubj)}(hhh]h)}(h'putting new block IO operation in queueh]h'putting new block IO operation in queue}(hj@/hj>/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMzhj;/hhubah}(h]h ]h"]h$]h&]uh1jhjr.hhhj.hM{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjV/jjV/juh1jhhhjhNhNubj)}(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]j!)}(hj`/h]h Parameters}(hhhjb/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^/ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM~hjZ/ubj7)}(hhh]j<)}(h(``struct bio *bio`` new block operation h](jB)}(h``struct bio *bio``h]jl)}(hj/h]hstruct bio *bio}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj}/ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM{hjy/ubj\)}(hhh]h)}(hnew block operationh]hnew block operation}(hj/hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hM{hj/ubah}(h]h ]h"]h$]h&]uh1j[hjy/ubeh}(h]h ]h"]h$]h&]uh1j;hj/hM{hjv/ubah}(h]h ]h"]h$]h&]uh1j6hjZ/ubh)}(h**Description**h]j!)}(hj/h]h Description}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj/ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM}hjZ/ubh)}(h?About to place the block IO operation **bio** into queue **q**.h](h&About to place the block IO operation }(h&About to place the block IO operation hj/hhhNhNubj!)}(h**bio**h]hbio}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj/ubh into queue }(h into queue hj/hhhNhNubj!)}(h**q**h]hq}(hhhj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj/ubh.}(hjm)hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM}hjZ/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_block_getrq (C function)c.trace_block_getrqhNtauh1jhjhhhNhNubj)}(hhh](j)}(h(void trace_block_getrq (struct bio *bio)h]j)}(h'void trace_block_getrq(struct bio *bio)h](j)}(hvoidh]hvoid}(hhhj%0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhj40hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0hhhj30hMubj)}(htrace_block_getrqh]j)}(htrace_block_getrqh]htrace_block_getrq}(hhhjF0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjB0ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj!0hhhj30hMubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhjb0hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj^0ubj)}(h h]h }(hhhjo0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^0ubh)}(hhh]j)}(hbioh]hbio}(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj}0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jjH0sbc.trace_block_getrqasbuh1hhj^0ubj)}(h h]h }(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^0ubj)}(hjh]h*}(hhhj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^0ubj)}(hbioh]hbio}(hhhj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj^0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjZ0ubah}(h]h ]h"]h$]h&]jjuh1jhj!0hhhj30hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj0hhhj30hMubah}(h]j0ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0hhubj)}(hhh]h)}(h9get a free request entry in queue for block IO operationsh]h9get a free request entry in queue for block IO operations}(hj0hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0hhubah}(h]h ]h"]h$]h&]uh1jhj0hhhj30hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0juh1jhhhjhNhNubj)}(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]j!)}(hj1h]h Parameters}(hhhj 1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj1ubj7)}(hhh]j<)}(hA``struct bio *bio`` pending block IO operation (can be ``NULL``) h](jB)}(h``struct bio *bio``h]jl)}(hj'1h]hstruct bio *bio}(hhhj)1hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj%1ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj!1ubj\)}(hhh]h)}(h,pending block IO operation (can be ``NULL``)h](h#pending block IO operation (can be }(h#pending block IO operation (can be hj@1hhhNhNubjl)}(h``NULL``h]hNULL}(hhhjI1hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj@1ubh)}(h)hj@1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj<1hMhj=1ubah}(h]h ]h"]h$]h&]uh1j[hj!1ubeh}(h]h ]h"]h$]h&]uh1j;hj<1hMhj1ubah}(h]h ]h"]h$]h&]uh1j6hj1ubh)}(h**Description**h]j!)}(hjv1h]h Description}(hhhjx1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjt1ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj1ubh)}(hMA request struct has been allocated to handle the block IO operation **bio**.h](hEA request struct has been allocated to handle the block IO operation }(hEA request struct has been allocated to handle the block IO operation hj1hhhNhNubj!)}(h**bio**h]hbio}(hhhj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1ubh.}(hjm)hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_block_plug (C function)c.trace_block_plughNtauh1jhjhhhNhNubj)}(hhh](j)}(h/void trace_block_plug (struct request_queue *q)h]j)}(h.void trace_block_plug(struct request_queue *q)h](j)}(hvoidh]hvoid}(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMubj)}(htrace_block_plugh]j)}(htrace_block_plugh]htrace_block_plug}(hhhj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj1ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1hhhj1hMubj)}(h(struct request_queue *q)h]j)}(hstruct request_queue *qh](jZ)}(hj]h]hstruct}(hhhj 2hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj2ubj)}(h h]h }(hhhj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubh)}(hhh]j)}(h request_queueh]h request_queue}(hhhj)2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj&2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+2modnameN classnameNjj)}j]j)}jj1sbc.trace_block_plugasbuh1hhj2ubj)}(h h]h }(hhhjI2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hjh]h*}(hhhjW2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hj'h]hq}(hhhjd2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj2ubah}(h]h ]h"]h$]h&]jjuh1jhj1hhhj1hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj1hhhj1hMubah}(h]j1ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj1hhubj)}(hhh]h)}(h)keep operations requests in request queueh]h)keep operations requests in request queue}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj2hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2juh1jhhhjhNhNubj)}(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]j!)}(hj2h]h Parameters}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj2ubj7)}(hhh]j<)}(h2``struct request_queue *q`` request queue to plug h](jB)}(h``struct request_queue *q``h]jl)}(hj2h]hstruct request_queue *q}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj2ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj2ubj\)}(hhh]h)}(hrequest queue to plugh]hrequest queue to plug}(hj2hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j[hj2ubeh}(h]h ]h"]h$]h&]uh1j;hj2hMhj2ubah}(h]h ]h"]h$]h&]uh1j6hj2ubh)}(h**Description**h]j!)}(hj 3h]h Description}(hhhj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj3ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj2ubh)}(hPlug 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](hPlug the request queue }(hPlug the request queue hj 3hhhNhNubj!)}(h**q**h]hq}(hhhj)3hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj 3ubh. 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. 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 3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_block_unplug (C function)c.trace_block_unplughNtauh1jhjhhhNhNubj)}(hhh](j)}(hTvoid trace_block_unplug (struct request_queue *q, unsigned int depth, bool explicit)h]j)}(hSvoid trace_block_unplug(struct request_queue *q, unsigned int depth, bool explicit)h](j)}(hvoidh]hvoid}(hhhjc3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_3hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhjr3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_3hhhjq3hMubj)}(htrace_block_unplugh]j)}(htrace_block_unplugh]htrace_block_unplug}(hhhj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj_3hhhjq3hMubj)}(h<(struct request_queue *q, unsigned int depth, bool explicit)h](j)}(hstruct request_queue *qh](jZ)}(hj]h]hstruct}(hhhj3hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj3ubj)}(h h]h }(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubh)}(hhh]j)}(h request_queueh]h request_queue}(hhhj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj3sbc.trace_block_unplugasbuh1hhj3ubj)}(h h]h }(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hjh]h*}(hhhj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hj'h]hq}(hhhj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(hunsigned int depthh](j)}(hunsignedh]hunsigned}(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 4ubj)}(h h]h }(hhhj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 4ubj)}(hinth]hint}(hhhj-4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 4ubj)}(h h]h }(hhhj;4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 4ubj)}(hdepthh]hdepth}(hhhjI4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj 4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(h bool explicith](j)}(hboolh]hbool}(hhhjb4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^4ubj)}(h h]h }(hhhjp4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^4ubj)}(hexplicith]hexplicit}(hhhj~4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj^4ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubeh}(h]h ]h"]h$]h&]jjuh1jhj_3hhhjq3hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj[3hhhjq3hMubah}(h]jV3ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjX3hhubj)}(hhh]h)}(h/release of operations requests in request queueh]h/release of operations requests in request queue}(hj4hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4hhubah}(h]h ]h"]h$]h&]uh1jhjX3hhhjq3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4juh1jhhhjhNhNubj)}(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]j!)}(hj4h]h Parameters}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubj7)}(hhh](j<)}(h4``struct request_queue *q`` request queue to unplug h](jB)}(h``struct request_queue *q``h]jl)}(hj4h]hstruct request_queue *q}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj4ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubj\)}(hhh]h)}(hrequest queue to unplugh]hrequest queue to unplug}(hj5hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1j[hj4ubeh}(h]h ]h"]h$]h&]uh1j;hj4hMhj4ubj<)}(hB``unsigned int depth`` number of requests just added to the queue h](jB)}(h``unsigned int depth``h]jl)}(hj#5h]hunsigned int depth}(hhhj%5hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj!5ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj5ubj\)}(hhh]h)}(h*number of requests just added to the queueh]h*number of requests just added to the queue}(hj>5hj<5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj85hMhj95ubah}(h]h ]h"]h$]h&]uh1j[hj5ubeh}(h]h ]h"]h$]h&]uh1j;hj85hMhj4ubj<)}(hN``bool explicit`` whether this was an explicit unplug, or one from schedule() h](jB)}(h``bool explicit``h]jl)}(hj\5h]h bool explicit}(hhhj^5hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjZ5ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjV5ubj\)}(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()}(hjw5hju5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq5hMhjr5ubah}(h]h ]h"]h$]h&]uh1j[hjV5ubeh}(h]h ]h"]h$]h&]uh1j;hjq5hMhj4ubeh}(h]h ]h"]h$]h&]uh1j6hj4ubh)}(h**Description**h]j!)}(hj5h]h Description}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubh)}(hgUnplug request queue **q** because device driver is scheduled to work on elements in the request queue.h](hUnplug request queue }(hUnplug request queue hj5hhhNhNubj!)}(h**q**h]hq}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubhM because device driver is scheduled to work on elements in the request queue.}(hM because device driver is scheduled to work on elements in the request queue.hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jtrace_block_split (C function)c.trace_block_splithNtauh1jhjhhhNhNubj)}(hhh](j)}(hAvoid 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)}(hvoidh]hvoid}(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj5hMubj)}(htrace_block_splith]j)}(htrace_block_splith]htrace_block_split}(hhhj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj 6ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj5hhhj5hMubj)}(h*(struct bio *bio, unsigned int new_sector)h](j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhj-6hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj)6ubj)}(h h]h }(hhhj:6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)6ubh)}(hhh]j)}(hbioh]hbio}(hhhjK6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjH6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjM6modnameN classnameNjj)}j]j)}jj6sbc.trace_block_splitasbuh1hhj)6ubj)}(h h]h }(hhhjk6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)6ubj)}(hjh]h*}(hhhjy6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)6ubj)}(hbioh]hbio}(hhhj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj%6ubj)}(hunsigned int new_sectorh](j)}(hunsignedh]hunsigned}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hinth]hint}(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hhhj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h new_sectorh]h new_sector}(hhhj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj%6ubeh}(h]h ]h"]h$]h&]jjuh1jhj5hhhj5hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj5hhhj5hMubah}(h]j5ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj5hhubj)}(hhh]h)}(h.split a single bio struct into two bio structsh]h.split a single bio struct into two bio structs}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6hhubah}(h]h ]h"]h$]h&]uh1jhj5hhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7juh1jhhhjhNhNubj)}(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]j!)}(hj$7h]h Parameters}(hhhj&7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj"7ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj7ubj7)}(hhh](j<)}(h0``struct bio *bio`` block operation being split h](jB)}(h``struct bio *bio``h]jl)}(hjC7h]hstruct bio *bio}(hhhjE7hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjA7ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj=7ubj\)}(hhh]h)}(hblock operation being splith]hblock operation being split}(hj^7hj\7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX7hMhjY7ubah}(h]h ]h"]h$]h&]uh1j[hj=7ubeh}(h]h ]h"]h$]h&]uh1j;hjX7hMhj:7ubj<)}(h@``unsigned int new_sector`` The starting sector for the new bio h](jB)}(h``unsigned int new_sector``h]jl)}(hj|7h]hunsigned int new_sector}(hhhj~7hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjz7ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjv7ubj\)}(hhh]h)}(h#The starting sector for the new bioh]h#The starting sector for the new bio}(hj7hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1j[hjv7ubeh}(h]h ]h"]h$]h&]uh1j;hj7hMhj:7ubeh}(h]h ]h"]h$]h&]uh1j6hj7ubh)}(h**Description**h]j!)}(hj7h]h Description}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj7ubh)}(hThe 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](hThe bio request }(hThe bio request hj7hhhNhNubj!)}(h**bio**h]hbio}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubh= needs to be split into two bio requests. The newly created }(h= needs to be split into two bio requests. The newly created hj7hhhNhNubj!)}(h**bio**h]hbio}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubh request starts at }(h request starts at hj7hhhNhNubj!)}(h**new_sector**h]h new_sector}(hhhj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubhw. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.}(hw. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"trace_block_bio_remap (C function)c.trace_block_bio_remaphNtauh1jhjhhhNhNubj)}(hhh](j)}(hFvoid trace_block_bio_remap (struct bio *bio, dev_t dev, sector_t from)h]j)}(hEvoid trace_block_bio_remap(struct bio *bio, dev_t dev, sector_t from)h](j)}(hvoidh]hvoid}(hhhj68hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj28hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhjE8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj28hhhjD8hMubj)}(htrace_block_bio_remaph]j)}(htrace_block_bio_remaph]htrace_block_bio_remap}(hhhjW8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjS8ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj28hhhjD8hMubj)}(h+(struct bio *bio, dev_t dev, sector_t from)h](j)}(hstruct bio *bioh](jZ)}(hj]h]hstruct}(hhhjs8hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhjo8ubj)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo8ubh)}(hhh]j)}(hbioh]hbio}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjY8sbc.trace_block_bio_remapasbuh1hhjo8ubj)}(h h]h }(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo8ubj)}(hjh]h*}(hhhj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo8ubj)}(hbioh]hbio}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjo8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjk8ubj)}(h dev_t devh](h)}(hhh]j)}(hdev_th]hdev_t}(hhhj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j8c.trace_block_bio_remapasbuh1hhj8ubj)}(h h]h }(hhhj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hdevh]hdev}(hhhj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjk8ubj)}(h sector_t fromh](h)}(hhh]j)}(hsector_th]hsector_t}(hhhj09hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj-9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj29modnameN classnameNjj)}j]j8c.trace_block_bio_remapasbuh1hhj)9ubj)}(h h]h }(hhhjN9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)9ubj)}(hfromh]hfrom}(hhhj\9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)9ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjk8ubeh}(h]h ]h"]h$]h&]jjuh1jhj28hhhjD8hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj.8hhhjD8hMubah}(h]j)8ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj+8hhubj)}(hhh]h)}(h2map request for a logical device to the raw deviceh]h2map request for a logical device to the raw device}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9hhubah}(h]h ]h"]h$]h&]uh1jhj+8hhhjD8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9juh1jhhhjhNhNubj)}(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]j!)}(hj9h]h Parameters}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubj7)}(hhh](j<)}(h&``struct bio *bio`` revised operation h](jB)}(h``struct bio *bio``h]jl)}(hj9h]hstruct bio *bio}(hhhj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj9ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubj\)}(hhh]h)}(hrevised operationh]hrevised operation}(hj9hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1j[hj9ubeh}(h]h ]h"]h$]h&]uh1j;hj9hMhj9ubj<)}(h0``dev_t dev`` original device for the operation h](jB)}(h ``dev_t dev``h]jl)}(hj:h]h dev_t dev}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj9ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubj\)}(hhh]h)}(h!original device for the operationh]h!original device for the operation}(hj:hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1j[hj9ubeh}(h]h ]h"]h$]h&]uh1j;hj:hMhj9ubj<)}(h4``sector_t from`` original sector for the operation h](jB)}(h``sector_t from``h]jl)}(hj::h]h sector_t from}(hhhj<:hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj8:ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4:ubj\)}(hhh]h)}(h!original sector for the operationh]h!original sector for the operation}(hjU:hjS:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjO:hMhjP:ubah}(h]h ]h"]h$]h&]uh1j[hj4:ubeh}(h]h ]h"]h$]h&]uh1j;hjO:hMhj9ubeh}(h]h ]h"]h$]h&]uh1j6hj9ubh)}(h**Description**h]j!)}(hju:h]h Description}(hhhjw:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjs:ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubh)}(hJAn operation for a logical device has been mapped to the raw block device.h]hJAn operation for a logical device has been mapped to the raw block device.}(hj:hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!trace_block_rq_remap (C function)c.trace_block_rq_remaphNtauh1jhjhhhNhNubj)}(hhh](j)}(hHvoid trace_block_rq_remap (struct request *rq, dev_t dev, sector_t from)h]j)}(hGvoid trace_block_rq_remap(struct request *rq, dev_t dev, sector_t from)h](j)}(hvoidh]hvoid}(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hhhj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhj:hMubj)}(htrace_block_rq_remaph]j)}(htrace_block_rq_remaph]htrace_block_rq_remap}(hhhj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj:hhhj:hMubj)}(h.(struct request *rq, dev_t dev, sector_t from)h](j)}(hstruct request *rqh](jZ)}(hj]h]hstruct}(hhhj:hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj:ubj)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubh)}(hhh]j)}(hrequesth]hrequest}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jj:sbc.trace_block_rq_remapasbuh1hhj:ubj)}(h h]h }(hhhj5;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hjh]h*}(hhhjC;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hrqh]hrq}(hhhjP;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj:ubj)}(h dev_t devh](h)}(hhh]j)}(hdev_th]hdev_t}(hhhjl;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhji;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjn;modnameN classnameNjj)}j]j1;c.trace_block_rq_remapasbuh1hhje;ubj)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje;ubj)}(hdevh]hdev}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhje;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj:ubj)}(h sector_t fromh](h)}(hhh]j)}(hsector_th]hsector_t}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j1;c.trace_block_rq_remapasbuh1hhj;ubj)}(h h]h }(hhhj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hfromh]hfrom}(hhhj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj:ubeh}(h]h ]h"]h$]h&]jjuh1jhj:hhhj:hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj:hhhj:hMubah}(h]j:ah ](jjeh"]h$]h&]juh1jh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM%hj:hhubj)}(hhh]h)}(h)map request for a block operation requesth]h)map request for a block operation request}(hj <hj <hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj<hhubah}(h]h ]h"]h$]h&]uh1jhj:hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#<jj#<juh1jhhhjhNhNubj)}(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]j!)}(hj-<h]h Parameters}(hhhj/<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+<ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj'<ubj7)}(hhh](j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jl)}(hjL<h]hstruct request *rq}(hhhjN<hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjJ<ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjF<ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hjg<hje<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja<hMhjb<ubah}(h]h ]h"]h$]h&]uh1j[hjF<ubeh}(h]h ]h"]h$]h&]uh1j;hja<hMhjC<ubj<)}(h'``dev_t dev`` device for the operation h](jB)}(h ``dev_t dev``h]jl)}(hj<h]h dev_t dev}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj<ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj<ubj\)}(hhh]h)}(hdevice for the operationh]hdevice for the operation}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1j[hj<ubeh}(h]h ]h"]h$]h&]uh1j;hj<hMhjC<ubj<)}(h4``sector_t from`` original sector for the operation h](jB)}(h``sector_t from``h]jl)}(hj<h]h sector_t from}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj<ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj<ubj\)}(hhh]h)}(h!original sector for the operationh]h!original sector for the operation}(hj<hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1j[hj<ubeh}(h]h ]h"]h$]h&]uh1j;hj<hMhjC<ubeh}(h]h ]h"]h$]h&]uh1j6hj'<ubh)}(h**Description**h]j!)}(hj<h]h Description}(hhhj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM!hj'<ubh)}(hThe 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](hThe block operation request }(hThe block operation request hj=hhhNhNubj!)}(h**rq**h]hrq}(hhhj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=ubh in }(h in hj=hhhNhNubj!)}(h**q**h]hq}(hhhj+=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=ubh1 has been remapped. The block operation request }(h1 has been remapped. The block operation request hj=hhhNhNubj!)}(h**rq**h]hrq}(hhhj>=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=ubh# holds the current information and }(h# holds the current information and hj=hhhNhNubj!)}(h**from**h]hfrom}(hhhjQ=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj=ubh hold the original sector.}(h hold the original sector.hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM!hj'<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]block-ioah ]h"]block ioah$]h&]uh1hhhhhhhhK.ubh)}(hhh](h)}(h Workqueueh]h Workqueue}(hj=hj}=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz=hhhhhK4ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'trace_workqueue_queue_work (C function)c.trace_workqueue_queue_workhNtauh1jhjz=hhhNhNubj)}(hhh](j)}(hcvoid trace_workqueue_queue_work (int req_cpu, struct pool_workqueue *pwq, struct work_struct *work)h]j)}(hbvoid trace_workqueue_queue_work(int req_cpu, struct pool_workqueue *pwq, struct work_struct *work)h](j)}(hvoidh]hvoid}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKubj)}(h h]h }(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hKubj)}(htrace_workqueue_queue_workh]j)}(htrace_workqueue_queue_workh]htrace_workqueue_queue_work}(hhhj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj=hhhj=hKubj)}(hC(int req_cpu, struct pool_workqueue *pwq, struct work_struct *work)h](j)}(h int req_cpuh](j)}(hinth]hint}(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(h h]h }(hhhj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hreq_cpuh]hreq_cpu}(hhhj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubj)}(hstruct pool_workqueue *pwqh](jZ)}(hj]h]hstruct}(hhhj>hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj>ubj)}(h h]h }(hhhj#>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubh)}(hhh]j)}(hpool_workqueueh]hpool_workqueue}(hhhj4>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj1>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6>modnameN classnameNjj)}j]j)}jj=sbc.trace_workqueue_queue_workasbuh1hhj>ubj)}(h h]h }(hhhjT>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hhhjb>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hpwqh]hpwq}(hhhjo>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubj)}(hstruct work_struct *workh](jZ)}(hj]h]hstruct}(hhhj>hhhNhNubah}(h]h ]jfah"]h$]h&]uh1jYhj>ubj)}(h h]h }(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubh)}(hhh]j)}(h work_structh]h work_struct}(hhhj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jP>c.trace_workqueue_queue_workasbuh1hhj>ubj)}(h h]h }(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hhhj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hworkh]hwork}(hhhj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj=ubeh}(h]h ]h"]h$]h&]jjuh1jhj=hhhj=hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj=hhhj=hKubah}(h]j=ah ](jjeh"]h$]h&]juh1jhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj=hhubj)}(hhh]h)}(hcalled when a work gets queuedh]hcalled when a work gets queued}(hj ?hj ?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj?hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj=hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"?jj"?juh1jhhhjz=hNhNubj)}(hXZ**Parameters** ``int req_cpu`` the requested cpu ``struct pool_workqueue *pwq`` pointer to struct pool_workqueue ``struct work_struct *work`` pointer to struct work_struct **Description** 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)}(h**Parameters**h]j!)}(hj,?h]h Parameters}(hhhj.?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*?ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj&?ubj7)}(hhh](j<)}(h"``int req_cpu`` the requested cpu h](jB)}(h``int req_cpu``h]jl)}(hjK?h]h int req_cpu}(hhhjM?hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhjI?ubah}(h]h ]h"]h$]h&]uh1jAhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhjE?ubj\)}(hhh]h)}(hthe requested cpuh]hthe requested cpu}(hjf?hjd?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`?hKhja?ubah}(h]h ]h"]h$]h&]uh1j[hjE?ubeh}(h]h ]h"]h$]h&]uh1j;hj`?hKhjB?ubj<)}(h@``struct pool_workqueue *pwq`` pointer to struct pool_workqueue h](jB)}(h``struct pool_workqueue *pwq``h]jl)}(hj?h]hstruct pool_workqueue *pwq}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj?ubah}(h]h ]h"]h$]h&]uh1jAhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj~?ubj\)}(hhh]h)}(h pointer to struct pool_workqueueh]h pointer to struct pool_workqueue}(hj?hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hKhj?ubah}(h]h ]h"]h$]h&]uh1j[hj~?ubeh}(h]h ]h"]h$]h&]uh1j;hj?hKhjB?ubj<)}(h;``struct work_struct *work`` pointer to struct work_struct h](jB)}(h``struct work_struct *work``Nh]jl)}(hj?h]hstruct work_struct *work}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jkhj?ubah}(h]h ]h"]h$]h&]uh1jAhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj?ubj\)}(hhh]h)}(hpointer to struct work_structh]hpointer to struct work_struct}(hj?hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hKhj?ubah}(h]h ]h"]h$]h&]uh1j[hj?ubeh}(h]h ]h"]h$]h&]uh1j;hj?hKhjB?ubeh}(h]h ]h"]h$]h&]uh1j6hj&?ubh)}(h**Description**h]j!)}(hj?h]h Description}(hhhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj&?ubh)}(hThis 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]hThis 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@hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj&?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjz=hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*trace_workqueue_activate_work (C function)c.trace_workqueue_activate_workhNtauh1jhjz=hhhNhNubj)}(hhh](j)}(h=void trace_workqueue_activate_work (struct work_struct *work)h]j)}(h