sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/core-api/tracepointmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/core-api/tracepointmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(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}(hhhhhNhNubah}(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}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h Jason Baronh]h paragraph)}(hhh]h Jason Baron}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hAuthorh]hAuthor}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh)}(hWilliam Cohen h]h)}(h William Cohenh]h William Cohen}(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*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.}(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.}(hjFhhhNhNubah}(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.}(hjThhhNhNubah}(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: }(hjbhhhNhNubhliteral)}(h-``trace_tracepointname(function parameters)``h]h)trace_tracepointname(function parameters)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjbubh. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the }(hjbhhhNhNubjk)}(h``Documentation/trace/*``h]hDocumentation/trace/*}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjbubh directory.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj'hhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hIRQh]hIRQ}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hirqh]hirq}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct irqaction *actionh](hdesc_sig_keyword)}(hstructh]hstruct}(hjXhhhNhNubah}(h]h ]kah"]h$]h&]uh1jVhjRubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubh)}(hhh]j)}(h irqactionh]h irqaction}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjzmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.trace_irq_handler_entryasbuh1hhjRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjRubj)}(hactionh]haction}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubeh}(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_multiline _toc_parts) _toc_namehuh1jhjhK+hjhhubh desc_content)}(hhh]h)}(h0called immediately before the irq action handlerh]h0called immediately before the irq action handler}(hjhhhNhNubah}(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&]domainjobjtypej desctypej noindex noindexentrynocontentsentryuh1jhhhjhNhNubh 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}(hj"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]jk)}(hjEh]hint irq}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjCubah}(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}(hj`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]jk)}(hjh]hstruct irqaction *action}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj~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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubj!)}(h **action**h]haction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhL contains various information about the handler, including the device name, }(hjhhhNhNubj!)}(h**action->name**h]h action->name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh, and the device id, }(hjhhhNhNubj!)}(h**action->dev_id**h]haction->dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhi. 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}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKIubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhjDhKIubj)}(htrace_irq_handler_exith]j)}(htrace_irq_handler_exith]htrace_irq_handler_exit}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]jjuh1jhj2hhhjDhKIubj)}(h,(int irq, struct irqaction *action, int ret)h](j)}(hint irqh](j)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkubj)}(hstruct irqaction *actionh](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h irqactionh]h irqaction}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjYsbc.trace_irq_handler_exitasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hactionh]haction}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkubj)}(hint reth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hreth]hret}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjkubeh}(h]h ]h"]h$]h&]jjuh1jhj2hhhjDhKIubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj.hhhjDhKIubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1jhjDhKIhj+hhubj)}(hhh]h)}(h7called immediately after the irq action handler returnsh]h7called immediately after the irq action handler returns}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKIhj]hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhjDhKIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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.hhKMhj|ubj7)}(hhh](j<)}(h``int irq`` irq number h](jB)}(h ``int irq``h]jk)}(hjh]hint irq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(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]jk)}(hjh]hstruct irqaction *action}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(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]jk)}(hjh]hint ret}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKLhj ubj\)}(hhh]h)}(h return valueh]h return value}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hKLhj)ubah}(h]h ]h"]h$]h&]uh1j[hj ubeh}(h]h ]h"]h$]h&]uh1j;hj(hKLhjubeh}(h]h ]h"]h$]h&]uh1j6hj|ubh)}(h**Description**h]j!)}(hjNh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjLubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKNhj|ubh)}(hX5If the **ret** value is set to IRQ_HANDLED, then we know that the corresponding **action->handler** successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.h](hIf the }(hjdhhhNhNubj!)}(h**ret**h]hret}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdubhB value is set to IRQ_HANDLED, then we know that the corresponding }(hjdhhhNhNubj!)}(h**action->handler**h]haction->handler}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdubh 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.}(hjdhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKMhj|ubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKzubj)}(htrace_softirq_entryh]j)}(htrace_softirq_entryh]htrace_softirq_entry}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKzubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvec_nrh]hvec_nr}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKzubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKzubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKzhjhhubj)}(hhh]h)}(h-called immediately before the softirq handlerh]h-called immediately before the softirq handler}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKzhjShhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1jhhhjhNhNubj)}(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!)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK~hjrubj7)}(hhh]j<)}(h.``unsigned int vec_nr`` softirq vector number h](jB)}(h``unsigned int vec_nr``h]jk)}(hjh]hunsigned int vec_nr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(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&]uh1j6hjrubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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}hjrubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK|hjrubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj%hKubj)}(htrace_softirq_exith]j)}(htrace_softirq_exith]htrace_softirq_exit}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhj%hKubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hinth]hint}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hvec_nrh]hvec_nr}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjLubah}(h]h ]h"]h$]h&]jjuh1jhjhhhj%hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhj%hKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj%hKhj hhubj)}(hhh]h)}(h4called immediately after the softirq handler returnsh]h4called immediately after the softirq handler returns}(hjhhhNhNubah}(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&]uh1jhj hhhj%hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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]jk)}(hjh]hunsigned int vec_nr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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 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!)}(hj2 h]h Description}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0 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.}(hjH 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}(hjw hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs hhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs hhhj hKubj)}(htrace_softirq_raiseh]j)}(htrace_softirq_raiseh]htrace_softirq_raise}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjs hhhj hKubj)}(h(unsigned int vec_nr)h]j)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hvec_nrh]hvec_nr}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubah}(h]h ]h"]h$]h&]jjuh1jhjs hhhj hKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjo hhhj hKubah}(h]jj ah ](jjeh"]h$]h&]jj)jhuh1jhj hKhjl hhubj)}(hhh]h)}(h+called immediately when a softirq is raisedh]h+called immediately when a softirq is raised}(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&]uh1jhjl hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj. jj. jjjuh1jhhhjhNhNubj)}(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!)}(hj8 h]h Parameters}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6 ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj2 ubj7)}(hhh]j<)}(h.``unsigned int vec_nr`` softirq vector number h](jB)}(h``unsigned int vec_nr``h]jk)}(hjW h]hunsigned int vec_nr}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjU ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjQ ubj\)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl hKhjm ubah}(h]h ]h"]h$]h&]uh1j[hjQ ubeh}(h]h ]h"]h$]h&]uh1j;hjl hKhjN ubah}(h]h ]h"]h$]h&]uh1j6hj2 ubh)}(h**Description**h]j!)}(hj h]h Description}(hj 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.hhKhj2 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 hhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj2 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}(hj 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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_tasklet_entryh]j)}(htrace_tasklet_entryh]htrace_tasklet_entry}(hj hhhNhNubah}(h]h ]jah"]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](jW)}(hjZh]hstruct}(hj hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj ubj)}(h h]h }(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hj2 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4 modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_entryasbuh1hhj ubj)}(h h]h }(hjR hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hth]ht}(hjm hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubj)}(h void *funch](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hfunch]hfunc}(hj hhhNhNubah}(h]h ]jah"]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&]jj)jhuh1jhj hKhj hhubj)}(hhh]h)}(h,called immediately before the tasklet is runh]h,called immediately before the tasklet is run}(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 jjjuh1jhhhjhNhNubj)}(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}(hj 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]jk)}(hj h]hstruct tasklet_struct *t}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj 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}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/ hKhj0 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]jk)}(hjS h]h void *func}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjQ ubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjM ubj\)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh hKhji ubah}(h]h ]h"]h$]h&]uh1j[hjM ubeh}(h]h ]h"]h$]h&]uh1j;hjh hKhj ubeh}(h]h ]h"]h$]h&]uh1j6hj ubh)}(h**Description**h]j!)}(hj h]h Description}(hj 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 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}(hj 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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_tasklet_exith]j)}(htrace_tasklet_exith]htrace_tasklet_exit}(hj hhhNhNubah}(h]h ]jah"]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](jW)}(hjZh]hstruct}(hj hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hj. hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0 modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_exitasbuh1hhj ubj)}(h h]h }(hjN hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj\ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjo h]ht}(hji hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj ubj)}(h void *funch](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj} ubj)}(hfunch]hfunc}(hj hhhNhNubah}(h]h ]jah"]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&]jj)jhuh1jhj hKhj hhubj)}(hhh]h)}(h+called immediately after the tasklet is runh]h+called immediately after the tasklet is run}(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 jjjuh1jhhhjhNhNubj)}(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}(hj 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]jk)}(hjh]hstruct tasklet_struct *t}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj+ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj*hKhj ubj<)}(h6``void *func`` tasklet callback or function being run h](jB)}(h``void *func``h]jk)}(hjNh]h void *func}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjLubah}(h]h ]h"]h$]h&]uh1jAh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjHubj\)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchKhjdubah}(h]h ]h"]h$]h&]uh1j[hjHubeh}(h]h ]h"]h$]h&]uh1j;hjchKhj ubeh}(h]h ]h"]h$]h&]uh1j6hj ubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK%ubj)}(htrace_signal_generateh]j)}(htrace_signal_generateh]htrace_signal_generate}(hjhhhNhNubah}(h]h ]jah"]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}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hsigh]hsig}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct kernel_siginfo *infoh](jW)}(hjZh]hstruct}(hjYhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjUubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(hkernel_siginfoh]hkernel_siginfo}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj sbc.trace_signal_generateasbuh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct task_struct *taskh](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h task_structh]h task_struct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.trace_signal_generateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htaskh]htask}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h int grouph](j)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hgrouph]hgroup}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(h int resulth](j)}(hinth]hint}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK%ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK%ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhK%hjhhubj)}(hhh]h)}(h!called when a signal is generatedh]h!called when a signal is generated}(hjhhhNhNubah}(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&]jjjjjjjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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]jk)}(hjh]hint sig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK&hj ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj hK&hjubj<)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jB)}(h``struct kernel_siginfo *info``h]jk)}(hj0h]hstruct kernel_siginfo *info}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj.ubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK'hj*ubj\)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhK'hjFubah}(h]h ]h"]h$]h&]uh1j[hj*ubeh}(h]h ]h"]h$]h&]uh1j;hjEhK'hjubj<)}(h;``struct task_struct *task`` pointer to struct task_struct h](jB)}(h``struct task_struct *task``h]jk)}(hjih]hstruct task_struct *task}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjgubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK(hjcubj\)}(hhh]h)}(hpointer to struct task_structh]hpointer to struct task_struct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hK(hjubah}(h]h ]h"]h$]h&]uh1j[hjcubeh}(h]h ]h"]h$]h&]uh1j;hj~hK(hjubj<)}(h ``int group`` shared or private h](jB)}(h ``int group``h]jk)}(hjh]h int group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(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]jk)}(hjh]h int result}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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_*}(hjhhhNhNubah}(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!)}(hjh]h Description}(hjhhhNhNubah}(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,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,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}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKSubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhhjihKSubj)}(htrace_signal_deliverh]j)}(htrace_signal_deliverh]htrace_signal_deliver}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ](jjeh"]h$]h&]jjuh1jhjWhhhjihKSubj)}(h>(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)h](j)}(hint sigh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hsigh]hsig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct kernel_siginfo *infoh](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hkernel_siginfoh]hkernel_siginfo}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj~sbc.trace_signal_deliverasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinfoh]hinfo}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hstruct k_sigaction *kah](jW)}(hjZh]hstruct}(hj?hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj;ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubh)}(hhh]j)}(h k_sigactionh]h k_sigaction}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jc.trace_signal_deliverasbuh1hhj;ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hkah]hka}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjWhhhjihKSubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjShhhjihKSubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jhjihKShjPhhubj)}(hhh]h)}(h!called when a signal is deliveredh]h!called when a signal is delivered}(hjhhhNhNubah}(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&]uh1jhjPhhhjihKSubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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]jk)}(hjh]hint sig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKThjubj\)}(hhh]h)}(h signal numberh]h signal number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKThjubj<)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jB)}(h``struct kernel_siginfo *info``h]jk)}(hj:h]hstruct kernel_siginfo *info}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj8ubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKUhj4ubj\)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKUhjPubah}(h]h ]h"]h$]h&]uh1j[hj4ubeh}(h]h ]h"]h$]h&]uh1j;hjOhKUhjubj<)}(h9``struct k_sigaction *ka`` pointer to struct k_sigaction h](jB)}(h``struct k_sigaction *ka``h]jk)}(hjsh]hstruct k_sigaction *ka}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjqubah}(h]h ]h"]h$]h&]uh1jAha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKVhjmubj\)}(hhh]h)}(hpointer to struct k_sigactionh]hpointer to struct k_sigaction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1j[hjmubeh}(h]h ]h"]h$]h&]uh1j;hjhKVhjubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKWhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]signalah ]h"]signalah$]h&]uh1hhhhhhhhK(ubh)}(hhh](h)}(hBlock IOh]hBlock IO}(hjhhhNhNubah}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK1ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK1ubj)}(htrace_block_touch_bufferh]j)}(htrace_block_touch_bufferh]htrace_block_touch_buffer}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK1ubj)}(h(struct buffer_head *bh)h]j)}(hstruct buffer_head *bhh](jW)}(hjZh]hstruct}(hjIhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(h buffer_headh]h buffer_head}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.trace_block_touch_bufferasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hbhh]hbh}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjAubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhK1ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhK1ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhK1hjhhubj)}(hhh]h)}(hmark a buffer accessedh]hmark a buffer accessed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK1hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(ht**Parameters** ``struct buffer_head *bh`` buffer_head being touched **Description** Called from touch_buffer().h](h)}(h**Parameters**h]j!)}(hjh]h Parameters}(hjhhhNhNubah}(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.hhK5hjubj7)}(hhh]j<)}(h5``struct buffer_head *bh`` buffer_head being touched h](jB)}(h``struct buffer_head *bh``h]jk)}(hj h]hstruct buffer_head *bh}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK2hjubj\)}(hhh]h)}(hbuffer_head being touchedh]hbuffer_head being touched}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hK2hj#ubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hj"hK2hjubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjHh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK4hjubh)}(hCalled from touch_buffer().h]hCalled from touch_buffer().}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK3hjubeh}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK>ubj)}(htrace_block_dirty_bufferh]j)}(htrace_block_dirty_bufferh]htrace_block_dirty_buffer}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhK>ubj)}(h(struct buffer_head *bh)h]j)}(hstruct buffer_head *bhh](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h buffer_headh]h buffer_head}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_block_dirty_bufferasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbhh]hbh}(hj#hhhNhNubah}(h]h ]jah"]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&]jj)jhuh1jhjhK>hjhhubj)}(hhh]h)}(hmark a buffer dirtyh]hmark a buffer dirty}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK>hjJhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1jhhhjhNhNubj)}(hy**Parameters** ``struct buffer_head *bh`` buffer_head being dirtied **Description** Called from mark_buffer_dirty().h](h)}(h**Parameters**h]j!)}(hjoh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKBhjiubj7)}(hhh]j<)}(h5``struct buffer_head *bh`` buffer_head being dirtied h](jB)}(h``struct buffer_head *bh``h]jk)}(hjh]hstruct buffer_head *bh}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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 dirtiedh]hbuffer_head being dirtied}(hjhhhNhNubah}(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&]uh1j6hjiubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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.hhKAhjiubh)}(h Called from mark_buffer_dirty().h]h Called from mark_buffer_dirty().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK@hjiubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhKLubj)}(htrace_block_rq_requeueh]j)}(htrace_block_rq_requeueh]htrace_block_rq_requeue}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhjhKLubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hjKhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubh)}(hhh]j)}(hrequesth]hrequest}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.trace_block_rq_requeueasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hrqh]hrq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjCubah}(h]h ]h"]h$]h&]jjuh1jhj hhhjhKLubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKLubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKLhjhhubj)}(hhh]h)}(h&place block IO request back on a queueh]h&place block IO request back on a queue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKLhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKLubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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.hhKPhjubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jk)}(hjh]hstruct request *rq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKMhj ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hKMhj%ubah}(h]h ]h"]h$]h&]uh1j[hj ubeh}(h]h ]h"]h$]h&]uh1j;hj$hKMhjubah}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjJh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKOhjubh)}(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 }(hj`hhhNhNubj!)}(h**rq**h]hrq}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubh! is being placed back into queue }(hj`hhhNhNubj!)}(h**q**h]hq}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubhW. For some reason the request was not completed and needs to be put back in the queue.}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKNhjubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(htrace_block_rq_completeh]j)}(htrace_block_rq_completeh]htrace_block_rq_complete}(hjhhhNhNubah}(h]h ]jah"]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](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hrequesth]hrequest}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_block_rq_completeasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrqh]hrq}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j*c.trace_block_rq_completeasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(herrorh]herror}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned int nr_bytesh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hnr_bytesh]hnr_bytes}(hjhhhNhNubah}(h]h ]jah"]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&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h-block IO operation completed by device driverh]h-block IO operation completed by device driver}(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&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1jhhhjhNhNubj)}(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!)}(hj.h]h Parameters}(hj0hhhNhNubah}(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<)}(h0``struct request *rq`` block operations request h](jB)}(h``struct request *rq``h]jk)}(hjMh]hstruct request *rq}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjKubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjGubj\)}(hhh]h)}(hblock operations requesth]hblock operations request}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhKhjcubah}(h]h ]h"]h$]h&]uh1j[hjGubeh}(h]h ]h"]h$]h&]uh1j;hjbhKhjDubj<)}(h#``blk_status_t error`` status code h](jB)}(h``blk_status_t error``h]jk)}(hjh]hblk_status_t error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKhjDubj<)}(h4``unsigned int nr_bytes`` number of completed bytes h](jB)}(h``unsigned int nr_bytes``h]jk)}(hjh]hunsigned int nr_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hjubeh}(h]h ]h"]h$]h&]uh1j;hjhKhjDubeh}(h]h ]h"]h$]h&]uh1j6hj(ubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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 }(hjhhhNhNubj!)}(h **rq->bio**h]hrq->bio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh is }(hjhhhNhNubjk)}(h``NULL``h]hNULL}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubhH, then there is absolutely no additional work to do for the request. If }(hjhhhNhNubj!)}(h **rq->bio**h]hrq->bio}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubhL is non-NULL then there is additional work required to complete the request.}(hjhhhNhNubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhjhKubj)}(htrace_block_rq_errorh]j)}(htrace_block_rq_errorh]htrace_block_rq_error}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjqhhhjhKubj)}(h?(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hjhhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hrequesth]hrequest}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_block_rq_errorasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrqh]hrq}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jc.trace_block_rq_errorasbuh1hhj ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(herrorh]herror}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubj)}(hunsigned int nr_bytesh](j)}(hunsignedh]hunsigned}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hnr_bytesh]hnr_bytes}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhjqhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjmhhhjhKubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjjhhubj)}(hhh]h)}(h2block IO operation error reported by device driverh]h2block IO operation error reported by device driver}(hjhhhNhNubah}(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&]uh1jhjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjhNhNubj)}(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!)}(hjh]h Parameters}(hjhhhNhNubah}(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<)}(h0``struct request *rq`` block operations request h](jB)}(h``struct request *rq``h]jk)}(hjh]hstruct request *rq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj 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}(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$hKhjubj<)}(h#``blk_status_t error`` status code h](jB)}(h``blk_status_t error``h]jk)}(hjHh]hblk_status_t error}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjFubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjBubj\)}(hhh]h)}(h status codeh]h status code}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj^ubah}(h]h ]h"]h$]h&]uh1j[hjBubeh}(h]h ]h"]h$]h&]uh1j;hj]hKhjubj<)}(h4``unsigned int nr_bytes`` number of completed bytes h](jB)}(h``unsigned int nr_bytes``h]jk)}(hjh]hunsigned int nr_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj{ubj\)}(hhh]h)}(hnumber of completed bytesh]hnumber of completed bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1j[hj{ubeh}(h]h ]h"]h$]h&]uh1j;hjhKhjubeh}(h]h ]h"]h$]h&]uh1j6hjubh)}(h**Description**h]j!)}(hjh]h Description}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(htrace_block_rq_inserth]j)}(htrace_block_rq_inserth]htrace_block_rq_insert}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1jhjhhhjhKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj>hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj:ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubh)}(hhh]j)}(hrequesth]hrequest}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj$sbc.trace_block_rq_insertasbuh1hhj:ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hrqh]hrq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj6ubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]h)}(h)insert block operation request into queueh]h)insert block operation request into queue}(hjhhhNhNubah}(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&]jjjjjjjjjuh1jhhhjhNhNubj)}(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}(hjhhhNhNubah}(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]jk)}(hj h]hstruct request *rq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(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}(hj? 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.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 }(hjS hhhNhNubj!)}(h**rq**h]hrq}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjS ubh is inserted into queue }(hjS hhhNhNubj!)}(h**q**h]hq}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjS ubh'. The fields in the operation request }(hjS hhhNhNubj!)}(h**rq**h]hrq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjS ubha struct can be examined to determine which device and sectors the pending operation would access.}(hjS 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}(hj 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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(htrace_block_rq_issueh]j)}(htrace_block_rq_issueh]htrace_block_rq_issue}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj hhhj hKubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hrequesth]hrequest}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jj sbc.trace_block_rq_issueasbuh1hhj ubj)}(h h]h }(hj3!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjA!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hrqh]hrq}(hjN!hhhNhNubah}(h]h ]jah"]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&]jj)jhuh1jhj hKhj hhubj)}(hhh]h)}(h9issue pending block IO request operation to device driverh]h9issue pending block IO request operation to device driver}(hjx!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhju!hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1jhhhjhNhNubj)}(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}(hj!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]jk)}(hj!h]hstruct request *rq}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj!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!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}(hj!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 }(hj "hhhNhNubj!)}(h**rq**h]hrq}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj "ubh from queue }(hj "hhhNhNubj!)}(h**q**h]hq}(hj$"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj "ubh+ 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}(hj]"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY"hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hjl"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY"hhhjk"hMubj)}(htrace_block_rq_mergeh]j)}(htrace_block_rq_mergeh]htrace_block_rq_merge}(hj~"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz"ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjY"hhhjk"hMubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj"hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(hrequesth]hrequest}(hj"hhhNhNubah}(h]h ]jah"]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 }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hrqh]hrq}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj"ubah}(h]h ]h"]h$]h&]jjuh1jhjY"hhhjk"hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjU"hhhjk"hMubah}(h]jP"ah ](jjeh"]h$]h&]jj)jhuh1jhjk"hMhjR"hhubj)}(hhh]h)}(h.merge request with another one in the elevatorh]h.merge request with another one in the elevator}(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&]uh1jhjR"hhhjk"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5#jj5#jjjuh1jhhhjhNhNubj)}(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!)}(hj?#h]h Parameters}(hjA#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.hhMhj9#ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jk)}(hj^#h]hstruct request *rq}(hj`#hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj\#ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjX#ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hjw#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjs#hMhjt#ubah}(h]h ]h"]h$]h&]uh1j[hjX#ubeh}(h]h ]h"]h$]h&]uh1j;hjs#hMhjU#ubah}(h]h ]h"]h$]h&]uh1j6hj9#ubh)}(h**Description**h]j!)}(hj#h]h Description}(hj#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.hhMhj9#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 }(hj#hhhNhNubj!)}(h**rq**h]hrq}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubh from queue }(hj#hhhNhNubj!)}(h**q**h]hq}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubh5 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.hhMhj9#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}(hj$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 }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj$hMubj)}(htrace_block_io_starth]j)}(htrace_block_io_starth]htrace_block_io_start}(hj#$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj#hhhj$hMubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj?$hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj;$ubj)}(h h]h }(hjL$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;$ubh)}(hhh]j)}(hrequesth]hrequest}(hj]$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_$modnameN classnameNjj)}j]j)}jj%$sbc.trace_block_io_startasbuh1hhj;$ubj)}(h h]h }(hj}$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;$ubj)}(hrqh]hrq}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;$ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7$ubah}(h]h ]h"]h$]h&]jjuh1jhj#hhhj$hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj#hhhj$hMubah}(h]j#ah ](jjeh"]h$]h&]jj)jhuh1jhj$hMhj#hhubj)}(hhh]h)}(hinsert a request for executionh]hinsert a request for execution}(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$jjjuh1jhhhjhNhNubj)}(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}(hj$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<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jk)}(hj%h]hstruct request *rq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj%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 IO operation requesth]hblock IO operation request}(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$ubah}(h]h ]h"]h$]h&]uh1j6hj$ubh)}(h**Description**h]j!)}(hj>%h]h Description}(hj@%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)}(hBCalled when block operation request **rq** is queued for executionh](h$Called when block operation request }(hjT%hhhNhNubj!)}(h**rq**h]hrq}(hj\%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjT%ubh is queued for execution}(hjT%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_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}(hj%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 }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMubj)}(htrace_block_io_doneh]j)}(htrace_block_io_doneh]htrace_block_io_done}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj%hhhj%hMubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj%hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubh)}(hhh]j)}(hrequesth]hrequest}(hj%hhhNhNubah}(h]h ]jah"]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 }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hrqh]hrq}(hj+&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj%ubah}(h]h ]h"]h$]h&]jjuh1jhj%hhhj%hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj%hhhj%hMubah}(h]j%ah ](jjeh"]h$]h&]jj)jhuh1jhj%hMhj%hhubj)}(hhh]h)}(h$block IO operation request completedh]h$block IO operation request completed}(hjU&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjR&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjm&jjm&jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** is completedh](h)}(h**Parameters**h]j!)}(hjw&h]h Parameters}(hjy&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hju&ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM#hjq&ubj7)}(hhh]j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jk)}(hj&h]hstruct request *rq}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj&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&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&]uh1j6hjq&ubh)}(h**Description**h]j!)}(hj&h]h Description}(hj&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"hjq&ubh)}(h7Called when block operation request **rq** is completedh](h$Called when block operation request }(hj&hhhNhNubj!)}(h**rq**h]hrq}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&ubh is completed}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM!hjq&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}(hj('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 }(hj7'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$'hhhj6'hM,ubj)}(htrace_block_bio_completeh]j)}(htrace_block_bio_completeh]htrace_block_bio_complete}(hjI'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE'ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj$'hhhj6'hM,ubj)}(h*(struct request_queue *q, struct bio *bio)h](j)}(hstruct request_queue *qh](jW)}(hjZh]hstruct}(hje'hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhja'ubj)}(h h]h }(hjr'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja'ubh)}(hhh]j)}(h request_queueh]h request_queue}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjK'sbc.trace_block_bio_completeasbuh1hhja'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja'ubj)}(hqh]hq}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja'ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]'ubj)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj'hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubh)}(hhh]j)}(hbioh]hbio}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j'c.trace_block_bio_completeasbuh1hhj'ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hj!(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hbioh]hbio}(hj.(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj]'ubeh}(h]h ]h"]h$]h&]jjuh1jhj$'hhhj6'hM,ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj 'hhhj6'hM,ubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1jhj6'hM,hj'hhubj)}(hhh]h)}(h)completed all work on the block operationh]h)completed all work on the block operation}(hjX(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM,hjU(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj6'hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjp(jjp(jjjuh1jhhhjhNhNubj)}(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!)}(hjz(h]h Parameters}(hj|(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjx(ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM0hjt(ubj7)}(hhh](j<)}(h>``struct request_queue *q`` queue holding the block operation h](jB)}(h``struct request_queue *q``h]jk)}(hj(h]hstruct request_queue *q}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj(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)}(h!queue holding the block operationh]h!queue holding the block operation}(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(ubj<)}(h.``struct bio *bio`` block operation completed h](jB)}(h``struct bio *bio``h]jk)}(hj(h]hstruct bio *bio}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj(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 operation completedh]hblock operation completed}(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(ubeh}(h]h ]h"]h$]h&]uh1j6hjt(ubh)}(h**Description**h]j!)}(hj )h]h Description}(hj)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.hhM0hjt(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 }(hj#)hhhNhNubj!)}(h**bio**h]hbio}(hj+)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#)ubh.}(hj#)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM/hjt(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}(hjd)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`)hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMlubj)}(h h]h }(hjs)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`)hhhjr)hMlubj)}(htrace_block_bio_backmergeh]j)}(htrace_block_bio_backmergeh]htrace_block_bio_backmerge}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj`)hhhjr)hMlubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj)hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubh)}(hhh]j)}(hbioh]hbio}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jj)sbc.trace_block_bio_backmergeasbuh1hhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(hbioh]hbio}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj)ubah}(h]h ]h"]h$]h&]jjuh1jhj`)hhhjr)hMlubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj\)hhhjr)hMlubah}(h]jW)ah ](jjeh"]h$]h&]jj)jhuh1jhjr)hMlhjY)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$*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMlhj!*hhubah}(h]h ]h"]h$]h&]uh1jhjY)hhhjr)hMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<*jj<*jjjuh1jhhhjhNhNubj)}(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!)}(hjF*h]h Parameters}(hjH*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjD*ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMphj@*ubj7)}(hhh]j<)}(h1``struct bio *bio`` new block operation to merge h](jB)}(h``struct bio *bio``h]jk)}(hje*h]hstruct bio *bio}(hjg*hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjc*ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMmhj_*ubj\)}(hhh]h)}(hnew block operation to mergeh]hnew block operation to merge}(hj~*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz*hMmhj{*ubah}(h]h ]h"]h$]h&]uh1j[hj_*ubeh}(h]h ]h"]h$]h&]uh1j;hjz*hMmhj\*ubah}(h]h ]h"]h$]h&]uh1j6hj@*ubh)}(h**Description**h]j!)}(hj*h]h Description}(hj*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.hhMohj@*ubh)}(hFMerging block request **bio** to the end of an existing block request.h](hMerging block request }(hj*hhhNhNubj!)}(h**bio**h]hbio}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*ubh) 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.hhMnhj@*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}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMwubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhj+hMwubj)}(htrace_block_bio_frontmergeh]j)}(htrace_block_bio_frontmergeh]htrace_block_bio_frontmerge}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj*hhhj+hMwubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj4+hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj0+ubj)}(h h]h }(hjA+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0+ubh)}(hhh]j)}(hbioh]hbio}(hjR+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjT+modnameN classnameNjj)}j]j)}jj+sbc.trace_block_bio_frontmergeasbuh1hhj0+ubj)}(h h]h }(hjr+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0+ubj)}(hbioh]hbio}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0+ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,+ubah}(h]h ]h"]h$]h&]jjuh1jhj*hhhj+hMwubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj*hhhj+hMwubah}(h]j*ah ](jjeh"]h$]h&]jj)jhuh1jhj+hMwhj*hhubj)}(hhh]h)}(hAmerging block operation to the beginning of an existing operationh]hAmerging block operation to the beginning of an existing operation}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMwhj+hhubah}(h]h ]h"]h$]h&]uh1jhj*hhhj+hMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1jhhhjhNhNubj)}(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}(hj+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<)}(h1``struct bio *bio`` new block operation to merge h](jB)}(h``struct bio *bio``h]jk)}(hj+h]hstruct bio *bio}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj+ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMxhj+ubj\)}(hhh]h)}(hnew block operation to mergeh]hnew block operation to merge}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ,hMxhj,ubah}(h]h ]h"]h$]h&]uh1j[hj+ubeh}(h]h ]h"]h$]h&]uh1j;hj ,hMxhj+ubah}(h]h ]h"]h$]h&]uh1j6hj+ubh)}(h**Description**h]j!)}(hj3,h]h Description}(hj5,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1,ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMzhj+ubh)}(hQMerging block IO operation **bio** to the beginning of an existing block request.h](hMerging block IO operation }(hjI,hhhNhNubj!)}(h**bio**h]hbio}(hjQ,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjI,ubh/ to the beginning of an existing block request.}(hjI,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMyhj+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}(hj,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 }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj,hMubj)}(htrace_block_bio_queueh]j)}(htrace_block_bio_queueh]htrace_block_bio_queue}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj,hhhj,hMubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj,hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubh)}(hhh]j)}(hbioh]hbio}(hj,hhhNhNubah}(h]h ]jah"]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 }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hbioh]hbio}(hj -hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj,ubah}(h]h ]h"]h$]h&]jjuh1jhj,hhhj,hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj,hhhj,hMubah}(h]j},ah ](jjeh"]h$]h&]jj)jhuh1jhj,hMhj,hhubj)}(hhh]h)}(h'putting new block IO operation in queueh]h'putting new block IO operation in queue}(hjJ-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjG-hhubah}(h]h ]h"]h$]h&]uh1jhj,hhhj,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjb-jjb-jjjuh1jhhhjhNhNubj)}(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!)}(hjl-h]h Parameters}(hjn-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjj-ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjf-ubj7)}(hhh]j<)}(h(``struct bio *bio`` new block operation h](jB)}(h``struct bio *bio``h]jk)}(hj-h]hstruct bio *bio}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj-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)}(hnew block operationh]hnew block operation}(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-ubah}(h]h ]h"]h$]h&]uh1j6hjf-ubh)}(h**Description**h]j!)}(hj-h]h Description}(hj-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.hhMhjf-ubh)}(h?About to place the block IO operation **bio** into queue **q**.h](h&About to place the block IO operation }(hj-hhhNhNubj!)}(h**bio**h]hbio}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubh into queue }(hj-hhhNhNubj!)}(h**q**h]hq}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubh.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjf-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}(hj/.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 }(hj>.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+.hhhj=.hMubj)}(htrace_block_getrqh]j)}(htrace_block_getrqh]htrace_block_getrq}(hjP.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL.ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj+.hhhj=.hMubj)}(h(struct bio *bio)h]j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hjl.hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjh.ubj)}(h h]h }(hjy.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh.ubh)}(hhh]j)}(hbioh]hbio}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jjR.sbc.trace_block_getrqasbuh1hhjh.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh.ubj)}(hbioh]hbio}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh.ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjd.ubah}(h]h ]h"]h$]h&]jjuh1jhj+.hhhj=.hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj'.hhhj=.hMubah}(h]j".ah ](jjeh"]h$]h&]jj)jhuh1jhj=.hMhj$.hhubj)}(hhh]h)}(h9get a free request entry in queue for block IO operationsh]h9get a free request entry in queue for block IO operations}(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/jjjuh1jhhhjhNhNubj)}(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!)}(hj/h]h Parameters}(hj/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<)}(hA``struct bio *bio`` pending block IO operation (can be ``NULL``) h](jB)}(h``struct bio *bio``h]jk)}(hj0/h]hstruct bio *bio}(hj2/hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj./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,pending block IO operation (can be ``NULL``)h](h#pending block IO operation (can be }(hjI/hhhNhNubjk)}(h``NULL``h]hNULL}(hjQ/hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjI/ubh)}(hjI/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjE/hMhjF/ubah}(h]h ]h"]h$]h&]uh1j[hj*/ubeh}(h]h ]h"]h$]h&]uh1j;hjE/hMhj'/ubah}(h]h ]h"]h$]h&]uh1j6hj /ubh)}(h**Description**h]j!)}(hj}/h]h Description}(hj/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)}(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 }(hj/hhhNhNubj!)}(h**bio**h]hbio}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj/ubh.}(hj/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](j5trace_blk_zone_append_update_request_bio (C function)*c.trace_blk_zone_append_update_request_biohNtauh1jhjhhhNhNubj)}(hhh](j)}(hBvoid trace_blk_zone_append_update_request_bio (struct request *rq)h]j)}(hAvoid trace_blk_zone_append_update_request_bio(struct request *rq)h](j)}(hvoidh]hvoid}(hj/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 }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhj/hMubj)}(h(trace_blk_zone_append_update_request_bioh]j)}(h(trace_blk_zone_append_update_request_bioh]h(trace_blk_zone_append_update_request_bio}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj/hhhj/hMubj)}(h(struct request *rq)h]j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hj0hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj 0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 0ubh)}(hhh]j)}(hrequesth]hrequest}(hj/0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj10modnameN classnameNjj)}j]j)}jj/sb*c.trace_blk_zone_append_update_request_bioasbuh1hhj 0ubj)}(h h]h }(hjO0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 0ubj)}(hjh]h*}(hj]0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 0ubj)}(hrqh]hrq}(hjj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 0ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj 0ubah}(h]h ]h"]h$]h&]jjuh1jhj/hhhj/hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj/hhhj/hMubah}(h]j/ah ](jjeh"]h$]h&]jj)jhuh1jhj/hMhj/hhubj)}(hhh]h)}(h#update bio sector after zone appendh]h#update bio sector after zone append}(hj0hhhNhNubah}(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&]uh1jhj/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1jhhhjhNhNubj)}(h**Parameters** ``struct request *rq`` the completed request that sets the bio sector **Description** Update the bio's bi_sector after a zone append command has been completed.h](h)}(h**Parameters**h]j!)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0ubj7)}(hhh]j<)}(hF``struct request *rq`` the completed request that sets the bio sector h](jB)}(h``struct request *rq``h]jk)}(hj0h]hstruct request *rq}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj0ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0ubj\)}(hhh]h)}(h.the completed request that sets the bio sectorh]h.the completed request that sets the bio sector}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1j[hj0ubeh}(h]h ]h"]h$]h&]uh1j;hj0hMhj0ubah}(h]h ]h"]h$]h&]uh1j6hj0ubh)}(h**Description**h]j!)}(hj1h]h Description}(hj1hhhNhNubah}(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.hhMhj0ubh)}(hJUpdate the bio's bi_sector after a zone append command has been completed.h]hLUpdate the bio’s bi_sector after a zone append command has been completed.}(hj&1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0ubeh}(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}(hjU1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ1hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hjd1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ1hhhjc1hMubj)}(htrace_block_plugh]j)}(htrace_block_plugh]htrace_block_plug}(hjv1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr1ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjQ1hhhjc1hMubj)}(h(struct request_queue *q)h]j)}(hstruct request_queue *qh](jW)}(hjZh]hstruct}(hj1hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubh)}(hhh]j)}(h request_queueh]h request_queue}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jjx1sbc.trace_block_plugasbuh1hhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hj'h]hq}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj1ubah}(h]h ]h"]h$]h&]jjuh1jhjQ1hhhjc1hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhjM1hhhjc1hMubah}(h]jH1ah ](jjeh"]h$]h&]jj)jhuh1jhjc1hMhjJ1hhubj)}(hhh]h)}(h)keep operations requests in request queueh]h)keep operations requests in request queue}(hj2hhhNhNubah}(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&]uh1jhjJ1hhhjc1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,2jj,2jjjuh1jhhhjhNhNubj)}(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!)}(hj62h]h Parameters}(hj82hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj42ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj02ubj7)}(hhh]j<)}(h2``struct request_queue *q`` request queue to plug h](jB)}(h``struct request_queue *q``h]jk)}(hjU2h]hstruct request_queue *q}(hjW2hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjS2ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjO2ubj\)}(hhh]h)}(hrequest queue to plugh]hrequest queue to plug}(hjn2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj2hMhjk2ubah}(h]h ]h"]h$]h&]uh1j[hjO2ubeh}(h]h ]h"]h$]h&]uh1j;hjj2hMhjL2ubah}(h]h ]h"]h$]h&]uh1j6hj02ubh)}(h**Description**h]j!)}(hj2h]h Description}(hj2hhhNhNubah}(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.hhMhj02ubh)}(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 }(hj2hhhNhNubj!)}(h**q**h]hq}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubh. 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.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj02ubeh}(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}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhj2hMubj)}(htrace_block_unplugh]j)}(htrace_block_unplugh]htrace_block_unplug}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj2hhhj2hMubj)}(h<(struct request_queue *q, unsigned int depth, bool explicit)h](j)}(hstruct request_queue *qh](jW)}(hjZh]hstruct}(hj$3hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj 3ubj)}(h h]h }(hj13hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 3ubh)}(hhh]j)}(h request_queueh]h request_queue}(hjB3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD3modnameN classnameNjj)}j]j)}jj 3sbc.trace_block_unplugasbuh1hhj 3ubj)}(h h]h }(hjb3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 3ubj)}(hjh]h*}(hjp3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 3ubj)}(hj'h]hq}(hj}3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(hunsigned int depthh](j)}(hunsignedh]hunsigned}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hdepthh]hdepth}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubj)}(h bool explicith](j)}(hboolh]hbool}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hexplicith]hexplicit}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj3ubeh}(h]h ]h"]h$]h&]jjuh1jhj2hhhj2hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj2hhhj2hMubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jhj2hMhj2hhubj)}(hhh]h)}(h/release of operations requests in request queueh]h/release of operations requests in request queue}(hj,4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj)4hhubah}(h]h ]h"]h$]h&]uh1jhj2hhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjD4jjD4jjjuh1jhhhjhNhNubj)}(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!)}(hjN4h]h Parameters}(hjP4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjL4ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjH4ubj7)}(hhh](j<)}(h4``struct request_queue *q`` request queue to unplug h](jB)}(h``struct request_queue *q``h]jk)}(hjm4h]hstruct request_queue *q}(hjo4hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjk4ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjg4ubj\)}(hhh]h)}(hrequest queue to unplugh]hrequest queue to unplug}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1j[hjg4ubeh}(h]h ]h"]h$]h&]uh1j;hj4hMhjd4ubj<)}(hB``unsigned int depth`` number of requests just added to the queue h](jB)}(h``unsigned int depth``h]jk)}(hj4h]hunsigned int depth}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj4ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubj\)}(hhh]h)}(h*number of requests just added to the queueh]h*number of requests just added to the queue}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1j[hj4ubeh}(h]h ]h"]h$]h&]uh1j;hj4hMhjd4ubj<)}(hN``bool explicit`` whether this was an explicit unplug, or one from schedule() h](jB)}(h``bool explicit``h]jk)}(hj4h]h bool explicit}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj4ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubj\)}(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()}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1j[hj4ubeh}(h]h ]h"]h$]h&]uh1j;hj4hMhjd4ubeh}(h]h ]h"]h$]h&]uh1j6hjH4ubh)}(h**Description**h]j!)}(hj5h]h Description}(hj5hhhNhNubah}(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.hhMhjH4ubh)}(hgUnplug request queue **q** because device driver is scheduled to work on elements in the request queue.h](hUnplug request queue }(hj05hhhNhNubj!)}(h**q**h]hq}(hj85hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj05ubhM because device driver is scheduled to work on elements in the request queue.}(hj05hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjH4ubeh}(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}(hjq5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm5hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm5hhhj5hMubj)}(htrace_block_splith]j)}(htrace_block_splith]htrace_block_split}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]jjuh1jhjm5hhhj5hMubj)}(h*(struct bio *bio, unsigned int new_sector)h](j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj5hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubh)}(hhh]j)}(hbioh]hbio}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj5sbc.trace_block_splitasbuh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hbioh]hbio}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5ubj)}(hunsigned int new_sectorh](j)}(hunsignedh]hunsigned}(hj 6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hj.6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hinth]hint}(hj<6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hjJ6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h new_sectorh]h new_sector}(hjX6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5ubeh}(h]h ]h"]h$]h&]jjuh1jhjm5hhhj5hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhji5hhhj5hMubah}(h]jd5ah ](jjeh"]h$]h&]jj)jhuh1jhj5hMhjf5hhubj)}(hhh]h)}(h.split a single bio struct into two bio structsh]h.split a single bio struct into two bio structs}(hj6hhhNhNubah}(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&]uh1jhjf5hhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1jhhhjhNhNubj)}(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!)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubj7)}(hhh](j<)}(h0``struct bio *bio`` block operation being split h](jB)}(h``struct bio *bio``h]jk)}(hj6h]hstruct bio *bio}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj6ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubj\)}(hhh]h)}(hblock operation being splith]hblock operation being split}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1j[hj6ubeh}(h]h ]h"]h$]h&]uh1j;hj6hMhj6ubj<)}(h@``unsigned int new_sector`` The starting sector for the new bio h](jB)}(h``unsigned int new_sector``h]jk)}(hj6h]hunsigned int new_sector}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj6ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubj\)}(hhh]h)}(h#The starting sector for the new bioh]h#The starting sector for the new bio}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1j[hj6ubeh}(h]h ]h"]h$]h&]uh1j;hj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1j6hj6ubh)}(h**Description**h]j!)}(hj77h]h Description}(hj97hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj57ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubh)}(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 }(hjM7hhhNhNubj!)}(h**bio**h]hbio}(hjU7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjM7ubh= needs to be split into two bio requests. The newly created }(hjM7hhhNhNubj!)}(h**bio**h]hbio}(hjg7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjM7ubh request starts at }(hjM7hhhNhNubj!)}(h**new_sector**h]h new_sector}(hjy7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjM7ubhw. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.}(hjM7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubeh}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhj7hMubj)}(htrace_block_bio_remaph]j)}(htrace_block_bio_remaph]htrace_block_bio_remap}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj7hhhj7hMubj)}(h+(struct bio *bio, dev_t dev, sector_t from)h](j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj7hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubh)}(hhh]j)}(hbioh]hbio}(hj 8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jj7sbc.trace_block_bio_remapasbuh1hhj7ubj)}(h h]h }(hj-8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hj;8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hbioh]hbio}(hjH8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(h dev_t devh](h)}(hhh]j)}(hdev_th]hdev_t}(hjd8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf8modnameN classnameNjj)}j]j)8c.trace_block_bio_remapasbuh1hhj]8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]8ubj)}(hdevh]hdev}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(h sector_t fromh](h)}(hhh]j)}(hsector_th]hsector_t}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)8c.trace_block_bio_remapasbuh1hhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hfromh]hfrom}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubeh}(h]h ]h"]h$]h&]jjuh1jhj7hhhj7hMubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj7hhhj7hMubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1jhj7hMhj7hhubj)}(hhh]h)}(h2map request for a logical device to the raw deviceh]h2map request for a logical device to the raw device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj8hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1jhhhjhNhNubj)}(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!)}(hj$9h]h Parameters}(hj&9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj"9ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj9ubj7)}(hhh](j<)}(h&``struct bio *bio`` revised operation h](jB)}(h``struct bio *bio``h]jk)}(hjC9h]hstruct bio *bio}(hjE9hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjA9ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj=9ubj\)}(hhh]h)}(hrevised operationh]hrevised operation}(hj\9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX9hMhjY9ubah}(h]h ]h"]h$]h&]uh1j[hj=9ubeh}(h]h ]h"]h$]h&]uh1j;hjX9hMhj:9ubj<)}(h0``dev_t dev`` original device for the operation h](jB)}(h ``dev_t dev``h]jk)}(hj|9h]h dev_t dev}(hj~9hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjz9ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjv9ubj\)}(hhh]h)}(h!original device for the operationh]h!original device for the operation}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1j[hjv9ubeh}(h]h ]h"]h$]h&]uh1j;hj9hMhj:9ubj<)}(h4``sector_t from`` original sector for the operation h](jB)}(h``sector_t from``h]jk)}(hj9h]h sector_t from}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj9ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj9ubj\)}(hhh]h)}(h!original sector for the operationh]h!original sector for the operation}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hM hj9ubah}(h]h ]h"]h$]h&]uh1j[hj9ubeh}(h]h ]h"]h$]h&]uh1j;hj9hM hj:9ubeh}(h]h ]h"]h$]h&]uh1j6hj9ubh)}(h**Description**h]j!)}(hj9h]h Description}(hj9hhhNhNubah}(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.hhM hj9ubh)}(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:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj9ubeh}(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}(hj5:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1:hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM/ubj)}(h h]h }(hjD:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1:hhhjC:hM/ubj)}(htrace_block_rq_remaph]j)}(htrace_block_rq_remaph]htrace_block_rq_remap}(hjV:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR:ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj1:hhhjC:hM/ubj)}(h.(struct request *rq, dev_t dev, sector_t from)h](j)}(hstruct request *rqh](jW)}(hjZh]hstruct}(hjr:hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhjn:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn:ubh)}(hhh]j)}(hrequesth]hrequest}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjX:sbc.trace_block_rq_remapasbuh1hhjn:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn:ubj)}(hrqh]hrq}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjj:ubj)}(h dev_t devh](h)}(hhh]j)}(hdev_th]hdev_t}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j:c.trace_block_rq_remapasbuh1hhj:ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj)}(hdevh]hdev}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjj:ubj)}(h sector_t fromh](h)}(hhh]j)}(hsector_th]hsector_t}(hj/;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1;modnameN classnameNjj)}j]j:c.trace_block_rq_remapasbuh1hhj(;ubj)}(h h]h }(hjM;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(;ubj)}(hfromh]hfrom}(hj[;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjj:ubeh}(h]h ]h"]h$]h&]jjuh1jhj1:hhhjC:hM/ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj-:hhhjC:hM/ubah}(h]j(:ah ](jjeh"]h$]h&]jj)jhuh1jhjC:hM/hj*:hhubj)}(hhh]h)}(h)map request for a block operation requesth]h)map request for a block operation request}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM/hj;hhubah}(h]h ]h"]h$]h&]uh1jhj*:hhhjC:hM/ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1jhhhjhNhNubj)}(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}(hj;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.hhM3hj;ubj7)}(hhh](j<)}(h2``struct request *rq`` block IO operation request h](jB)}(h``struct request *rq``h]jk)}(hj;h]hstruct request *rq}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj;ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM0hj;ubj\)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hM0hj;ubah}(h]h ]h"]h$]h&]uh1j[hj;ubeh}(h]h ]h"]h$]h&]uh1j;hj;hM0hj;ubj<)}(h'``dev_t dev`` device for the operation h](jB)}(h ``dev_t dev``h]jk)}(hj;h]h dev_t dev}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj;ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM1hj;ubj\)}(hhh]h)}(hdevice for the operationh]hdevice for the operation}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hM1hj<ubah}(h]h ]h"]h$]h&]uh1j[hj;ubeh}(h]h ]h"]h$]h&]uh1j;hj<hM1hj;ubj<)}(h4``sector_t from`` original sector for the operation h](jB)}(h``sector_t from``h]jk)}(hj8<h]h sector_t from}(hj:<hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj6<ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM2hj2<ubj\)}(hhh]h)}(h!original sector for the operationh]h!original sector for the operation}(hjQ<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM<hM2hjN<ubah}(h]h ]h"]h$]h&]uh1j[hj2<ubeh}(h]h ]h"]h$]h&]uh1j;hjM<hM2hj;ubeh}(h]h ]h"]h$]h&]uh1j6hj;ubh)}(h**Description**h]j!)}(hjs<h]h Description}(hju<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjq<ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM4hj;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 }(hj<hhhNhNubj!)}(h**rq**h]hrq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubh in }(hj<hhhNhNubj!)}(h**q**h]hq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubh1 has been remapped. The block operation request }(hj<hhhNhNubj!)}(h**rq**h]hrq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubh# holds the current information and }(hj<hhhNhNubj!)}(h**from**h]hfrom}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubh 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.hhM3hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#trace_blkdev_zone_mgmt (C function)c.trace_blkdev_zone_mgmthNtauh1jhjhhhNhNubj)}(hhh](j)}(hBvoid trace_blkdev_zone_mgmt (struct bio *bio, sector_t nr_sectors)h]j)}(hAvoid trace_blkdev_zone_mgmt(struct bio *bio, sector_t nr_sectors)h](j)}(hvoidh]hvoid}(hj=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 }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhj=hM[ubj)}(htrace_blkdev_zone_mgmth]j)}(htrace_blkdev_zone_mgmth]htrace_blkdev_zone_mgmt}(hj!=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]jjuh1jhj<hhhj=hM[ubj)}(h&(struct bio *bio, sector_t nr_sectors)h](j)}(hstruct bio *bioh](jW)}(hjZh]hstruct}(hj==hhhNhNubah}(h]h ]jcah"]h$]h&]uh1jVhj9=ubj)}(h h]h }(hjJ=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubh)}(hhh]j)}(hbioh]hbio}(hj[=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]=modnameN classnameNjj)}j]j)}jj#=sbc.trace_blkdev_zone_mgmtasbuh1hhj9=ubj)}(h h]h }(hj{=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubj)}(hbioh]hbio}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5=ubj)}(hsector_t nr_sectorsh](h)}(hhh]j)}(hsector_th]hsector_t}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jw=c.trace_blkdev_zone_mgmtasbuh1hhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(h nr_sectorsh]h nr_sectors}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj5=ubeh}(h]h ]h"]h$]h&]jjuh1jhj<hhhj=hM[ubeh}(h]h ]h"]h$]h&]jjjuh1jjjhj<hhhj=hM[ubah}(h]j<ah ](jjeh"]h$]h&]jj)jhuh1jhj=hM[hj<hhubj)}(hhh]h)}(h7Execute a zone management operation on a range of zonesh]h7Execute a zone management operation on a range of zones}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM[hj>hhubah}(h]h ]h"]h$]h&]uh1jhj<hhhj=hM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj >jj >jjjuh1jhhhjhNhNubj)}(hXK**Parameters** ``struct bio *bio`` The block IO operation sent down to the device ``sector_t nr_sectors`` The number of sectors affected by this operation **Description** Execute a zone management operation on a specified range of zones. This range is encoded in ``nr_sectors``, which has to be a multiple of the zone size.h](h)}(h**Parameters**h]j!)}(hj*>h]h Parameters}(hj,>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<)}(hC``struct bio *bio`` The block IO operation sent down to the device h](jB)}(h``struct bio *bio``h]jk)}(hjI>h]hstruct bio *bio}(hjK>hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhjG>ubah}(h]h ]h"]h$]h&]uh1jAh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM\hjC>ubj\)}(hhh]h)}(h.The block IO operation sent down to the deviceh]h.The block IO operation sent down to the device}(hjb>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^>hM\hj_>ubah}(h]h ]h"]h$]h&]uh1j[hjC>ubeh}(h]h ]h"]h$]h&]uh1j;hj^>hM\hj@>ubj<)}(hI``sector_t nr_sectors`` The number of sectors affected by this operation h](jB)}(h``sector_t nr_sectors``h]jk)}(hj>h]hsector_t nr_sectors}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj>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)}(h0The number of sectors affected by this operationh]h0The number of sectors affected by this operation}(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@>ubeh}(h]h ]h"]h$]h&]uh1j6hj$>ubh)}(h**Description**h]j!)}(hj>h]h Description}(hj>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)}(hExecute a zone management operation on a specified range of zones. This range is encoded in ``nr_sectors``, which has to be a multiple of the zone size.h](h\Execute a zone management operation on a specified range of zones. This range is encoded in }(hj>hhhNhNubjk)}(h``nr_sectors``h]h nr_sectors}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jjhj>ubh., which has to be a multiple of the zone size.}(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?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhK4ubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'trace_workqueue_queue_work (C function)c.trace_workqueue_queue_workhNtauh1jhj?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}(hj-?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 }(hjjFjFu nametypes}(jFjjjj?jFuh}(jFhjj'jjjjj)j.jjj jjj jo j j j j jjjjjNjSj>jjjjjjjjjjhjmjjj j jP"jU"j#j#j%j%j'j 'jW)j\)j*j*j},j,j".j'.j/j/jH1jM1j2j2jd5ji5j7j7j(:j-:j<j<jFj?j ?j%?jAjAjKCjPCjDjDu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.