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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/pt_BR/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubh)}(hWilliam Cohen h]h)}(h William Cohenh]h William Cohen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(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.}(hjLhhhNhNubah}(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.}(hjZhhhNhNubah}(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.}(hjhhhhNhNubah}(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: }(hjvhhhNhNubhliteral)}(h-``trace_tracepointname(function parameters)``h]h)trace_tracepointname(function parameters)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjvubh. These are the tracepoints callbacks that are found throughout the code. Registering and unregistering probes with these callback sites is covered in the }(hjvhhhNhNubj)}(h``Documentation/trace/*``h]hDocumentation/trace/*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjvubh directory.}(hjvhhhNhNubeh}(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&]uh1jhj ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhjhhhjhK+ubhdesc_parameterlist)}(h#(int irq, struct irqaction *action)h](hdesc_parameter)}(hint irqh](j)}(hinth]hint}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hirqh]hirq}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj+ubj0)}(hstruct irqaction *actionh](hdesc_sig_keyword)}(hstructh]hstruct}(hjlhhhNhNubah}(h]h ]kah"]h$]h&]uh1jjhjfubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubh)}(hhh]j)}(h irqactionh]h irqaction}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.trace_irq_handler_entryasbuh1hhjfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjfubj)}(hactionh]haction}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj+ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhjhK+ubeh}(h]h ]h"]h$]h&]j'j( 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)}(hj2h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj0ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK/hj,ubhdefinition_list)}(hhh](hdefinition_list_item)}(h``int irq`` irq number h](hterm)}(h ``int irq``h]j)}(hjYh]hint irq}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjWubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK,hjQubh definition)}(hhh]h)}(h irq numberh]h irq number}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhK,hjqubah}(h]h ]h"]h$]h&]uh1johjQubeh}(h]h ]h"]h$]h&]uh1jOhjnhK,hjLubjP)}(h9``struct irqaction *action`` pointer to struct irqaction h](jV)}(h``struct irqaction *action``h]j)}(hjh]hstruct irqaction *action}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK-hjubjp)}(hhh]h)}(hpointer to struct irqactionh]hpointer to struct irqaction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK-hjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhK-hjLubeh}(h]h ]h"]h$]h&]uh1jJhj,ubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK/hj,ubh)}(hXThe struct irqaction pointed to by **action** contains various information about the handler, including the device name, **action->name**, and the device id, **action->dev_id**. When used in conjunction with the irq_handler_exit tracepoint, we can figure out irq handler latencies.h](h#The struct irqaction pointed to by }(hjhhhNhNubj5)}(h **action**h]haction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubhL contains various information about the handler, including the device name, }(hjhhhNhNubj5)}(h**action->name**h]h action->name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubh, and the device id, }(hjhhhNhNubj5)}(h**action->dev_id**h]haction->dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubhi. 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.hj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKIubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjXhKIubj )}(htrace_irq_handler_exith]j)}(htrace_irq_handler_exith]htrace_irq_handler_exit}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjFhhhjXhKIubj*)}(h,(int irq, struct irqaction *action, int ret)h](j0)}(hint irqh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(hstruct irqaction *actionh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(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)}jjmsbc.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&]noemphj'j(uh1j/hjubj0)}(hint reth](j)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hreth]hret}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjFhhhjXhKIubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjBhhhjXhKIubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jhjXhKIhj?hhubj)}(hhh]h)}(h7called immediately after the irq action handler returnsh]h7called immediately after the irq action handler returns}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKIhjqhhubah}(h]h ]h"]h$]h&]uh1jhj?hhhjXhKIubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(hX**Parameters** ``int irq`` irq number ``struct irqaction *action`` pointer to struct irqaction ``int ret`` return value **Description** If the **ret** value is set to IRQ_HANDLED, then we know that the corresponding **action->handler** successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKMhjubjK)}(hhh](jP)}(h``int irq`` irq number h](jV)}(h ``int irq``h]j)}(hjh]hint irq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKJhjubjp)}(hhh]h)}(h irq numberh]h irq number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKJhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKJhjubjP)}(h9``struct irqaction *action`` pointer to struct irqaction h](jV)}(h``struct irqaction *action``h]j)}(hjh]hstruct irqaction *action}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKKhjubjp)}(hhh]h)}(hpointer to struct irqactionh]hpointer to struct irqaction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKKhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKKhjubjP)}(h``int ret`` return value h](jV)}(h ``int ret``h]j)}(hj'h]hint ret}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj%ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKLhj!ubjp)}(hhh]h)}(h return valueh]h return value}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hKLhj=ubah}(h]h ]h"]h$]h&]uh1johj!ubeh}(h]h ]h"]h$]h&]uh1jOhj<hKLhjubeh}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjbh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj`ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKNhjubh)}(hX5If the **ret** value is set to IRQ_HANDLED, then we know that the corresponding **action->handler** successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.h](hIf the }(hjxhhhNhNubj5)}(h**ret**h]hret}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjxubhB value is set to IRQ_HANDLED, then we know that the corresponding }(hjxhhhNhNubj5)}(h**action->handler**h]haction->handler}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjxubh successfully handled this irq. Otherwise, the irq might be a shared irq line, or the irq was not handled successfully. Can be used in conjunction with the irq_handler_entry to understand irq handler latencies.}(hjxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhjhhhjhKzubj*)}(h(unsigned int vec_nr)h]j0)}(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}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hvec_nrh]hvec_nr}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubah}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhjhKzubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhjhKzubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKzhjhhubj)}(hhh]h)}(h-called immediately before the softirq handlerh]h-called immediately before the softirq handler}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKzhjghhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKzubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_exit tracepoint we can determine the softirq handler routine.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK~hjubjK)}(hhh]jP)}(h.``unsigned int vec_nr`` softirq vector number h](jV)}(h``unsigned int vec_nr``h]j)}(hjh]hunsigned int vec_nr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK{hjubjp)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK{hjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhK{hjubah}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhK}hjubh)}(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|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(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'hhhj9hKubj )}(htrace_softirq_exith]j)}(htrace_softirq_exith]htrace_softirq_exit}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj'hhhj9hKubj*)}(h(unsigned int vec_nr)h]j0)}(hunsigned int vec_nrh](j)}(hunsignedh]hunsigned}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj)}(hvec_nrh]hvec_nr}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj`ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj'hhhj9hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj#hhhj9hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj9hKhj 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 hhhj9hKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_entry tracepoint we can determine the softirq handler routine.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubjK)}(hhh]jP)}(h.``unsigned int vec_nr`` softirq vector number h](jV)}(h``unsigned int vec_nr``h]j)}(hj h]hunsigned int vec_nr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubjp)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj! ubah}(h]h ]h"]h$]h&]uh1johj ubeh}(h]h ]h"]h$]h&]uh1jOhj hKhj ubah}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjF h]h Description}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjD 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.}(hj\ 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&]uh1j*hjhhhNhNubj)}(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}(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_softirq_raiseh]j)}(htrace_softirq_raiseh]htrace_softirq_raise}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj hhhj hKubj*)}(h(unsigned int vec_nr)h]j0)}(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&]noemphj'j(uh1j/hj ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj hhhj hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj hhhj hKubah}(h]j~ ah ](jjeh"]h$]h&]jj)jhuh1jhj hKhj 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&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jB j&jB j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``unsigned int vec_nr`` softirq vector number **Description** When used in combination with the softirq_entry tracepoint we can determine the softirq raise to run latency.h](h)}(h**Parameters**h]j5)}(hjL h]h Parameters}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjJ ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjF ubjK)}(hhh]jP)}(h.``unsigned int vec_nr`` softirq vector number h](jV)}(h``unsigned int vec_nr``h]j)}(hjk h]hunsigned int vec_nr}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hji ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhje ubjp)}(hhh]h)}(hsoftirq vector numberh]hsoftirq vector number}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1johje ubeh}(h]h ]h"]h$]h&]uh1jOhj hKhjb ubah}(h]h ]h"]h$]h&]uh1jJhjF ubh)}(h**Description**h]j5)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjF 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.hhKhjF ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj hhhj hKubj*)}(h&(struct tasklet_struct *t, void *func)h](j0)}(hstruct tasklet_struct *th](jk)}(hjnh]hstruct}(hj( hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj$ ubj)}(h h]h }(hj5 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_entryasbuh1hhj$ ubj)}(h h]h }(hjf hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ ubj)}(hjh]h*}(hjt hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ ubj)}(hth]ht}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj ubj0)}(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&]noemphj'j(uh1j/hj ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj hhhj hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj 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&]j$jj%j j&j j'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj ubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj ubjK)}(hhh](jP)}(h-``struct tasklet_struct *t`` tasklet pointer h](jV)}(h``struct tasklet_struct *t``h]j)}(hj. h]hstruct tasklet_struct *t}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj, ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj( ubjp)}(hhh]h)}(htasklet pointerh]htasklet pointer}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjC hKhjD ubah}(h]h ]h"]h$]h&]uh1johj( ubeh}(h]h ]h"]h$]h&]uh1jOhjC hKhj% ubjP)}(h6``void *func`` tasklet callback or function being run h](jV)}(h``void *func``h]j)}(hjg h]h void *func}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hje ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhja ubjp)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj| hKhj} ubah}(h]h ]h"]h$]h&]uh1johja ubeh}(h]h ]h"]h$]h&]uh1jOhj| hKhj% ubeh}(h]h ]h"]h$]h&]uh1jJhj ubh)}(h**Description**h]j5)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj 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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj hhhj hKubj*)}(h&(struct tasklet_struct *t, void *func)h](j0)}(hstruct tasklet_struct *th](jk)}(hjnh]hstruct}(hj$ hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj ubj)}(h h]h }(hj1 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(htasklet_structh]htasklet_struct}(hjB hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD modnameN classnameNjj)}j]j)}jj sbc.trace_tasklet_exitasbuh1hhj ubj)}(h h]h }(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjp hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hj h]ht}(hj} hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj ubj0)}(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&]noemphj'j(uh1j/hj ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj hhhj hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj 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&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubjK)}(hhh](jP)}(h-``struct tasklet_struct *t`` tasklet pointer h](jV)}(h``struct tasklet_struct *t``h]j)}(hj)h]hstruct tasklet_struct *t}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj'ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj#ubjp)}(hhh]h)}(htasklet pointerh]htasklet pointer}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hKhj?ubah}(h]h ]h"]h$]h&]uh1johj#ubeh}(h]h ]h"]h$]h&]uh1jOhj>hKhj ubjP)}(h6``void *func`` tasklet callback or function being run h](jV)}(h``void *func``h]j)}(hjbh]h void *func}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj`ubah}(h]h ]h"]h$]h&]uh1jUh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhj\ubjp)}(hhh]h)}(h&tasklet callback or function being runh]h&tasklet callback or function being run}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjxubah}(h]h ]h"]h$]h&]uh1johj\ubeh}(h]h ]h"]h$]h&]uh1jOhjwhKhj ubeh}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh^/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:36: ./include/trace/events/irq.hhKhjubh)}(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.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubeh}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hK%ubj )}(htrace_signal_generateh]j)}(htrace_signal_generateh]htrace_signal_generate}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjhhhj hK%ubj*)}(hW(int sig, struct kernel_siginfo *info, struct task_struct *task, int group, int result)h](j0)}(hint sigh](j)}(hinth]hint}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(hsigh]hsig}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubj0)}(hstruct kernel_siginfo *infoh](jk)}(hjnh]hstruct}(hjmhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjiubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubh)}(hhh]j)}(hkernel_siginfoh]hkernel_siginfo}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.trace_signal_generateasbuh1hhjiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubj0)}(hstruct task_struct *taskh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(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*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htaskh]htask}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubj0)}(h int grouph](j)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(hgrouph]hgroup}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubj0)}(h int resulth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hresulth]hresult}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhj hK%ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhj hK%ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj hK%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&]uh1jhjhhhj hK%ubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(hX**Parameters** ``int sig`` signal number ``struct kernel_siginfo *info`` pointer to struct siginfo ``struct task_struct *task`` pointer to struct task_struct ``int group`` shared or private ``int result`` TRACE_SIGNAL_* **Description** Current process sends a 'sig' signal to 'task' process with 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, 'info' is not a pointer and you can't access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK)hjubjK)}(hhh](jP)}(h``int sig`` signal number h](jV)}(h ``int sig``h]j)}(hj h]hint sig}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK&hjubjp)}(hhh]h)}(h signal numberh]h signal number}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK&hj!ubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhj hK&hjubjP)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jV)}(h``struct kernel_siginfo *info``h]j)}(hjDh]hstruct kernel_siginfo *info}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjBubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK'hj>ubjp)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhK'hjZubah}(h]h ]h"]h$]h&]uh1johj>ubeh}(h]h ]h"]h$]h&]uh1jOhjYhK'hjubjP)}(h;``struct task_struct *task`` pointer to struct task_struct h](jV)}(h``struct task_struct *task``h]j)}(hj}h]hstruct task_struct *task}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj{ubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK(hjwubjp)}(hhh]h)}(hpointer to struct task_structh]hpointer to struct task_struct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK(hjubah}(h]h ]h"]h$]h&]uh1johjwubeh}(h]h ]h"]h$]h&]uh1jOhjhK(hjubjP)}(h ``int group`` shared or private h](jV)}(h ``int group``h]j)}(hjh]h int group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK)hjubjp)}(hhh]h)}(hshared or privateh]hshared or private}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK)hjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhK)hjubjP)}(h``int result`` TRACE_SIGNAL_* h](jV)}(h``int result``h]j)}(hjh]h int result}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK*hjubjp)}(hhh]h)}(hTRACE_SIGNAL_*h]hTRACE_SIGNAL_*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK*hjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhK*hjubeh}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hj*h]h Description}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj(ubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhK,hjubh)}(hXCurrent process sends a 'sig' signal to 'task' process with 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, 'info' is not a pointer and you can't access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.h]hX3Current process sends a ‘sig’ signal to ‘task’ process with ‘info’ siginfo. If ‘info’ is SEND_SIG_NOINFO or SEND_SIG_PRIV, ‘info’ is not a pointer and you can’t access its field. Instead, SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV means that si_code is SI_KERNEL.}(hj@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&]uh1j*hjhhhNhNubj)}(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}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKSubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhhj}hKSubj )}(htrace_signal_deliverh]j)}(htrace_signal_deliverh]htrace_signal_deliver}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjkhhhj}hKSubj*)}(h>(int sig, struct kernel_siginfo *info, struct k_sigaction *ka)h](j0)}(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&]noemphj'j(uh1j/hjubj0)}(hstruct kernel_siginfo *infoh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(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)}jjsbc.trace_signal_deliverasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinfoh]hinfo}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(hstruct k_sigaction *kah](jk)}(hjnh]hstruct}(hjShhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubh)}(hhh]j)}(h k_sigactionh]h k_sigaction}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jc.trace_signal_deliverasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hkah]hka}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjkhhhj}hKSubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjghhhj}hKSubah}(h]jbah ](jjeh"]h$]h&]jj)jhuh1jhj}hKShjdhhubj)}(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&]uh1jhjdhhhj}hKSubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(hX]**Parameters** ``int sig`` signal number ``struct kernel_siginfo *info`` pointer to struct siginfo ``struct k_sigaction *ka`` pointer to struct k_sigaction **Description** A 'sig' signal is delivered to current process with 'info' siginfo, and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or SIG_DFL. Note that some signals reported by signal_generate tracepoint can be lost, ignored or modified (by debugger) before hitting this tracepoint. This means, this can show which signals are actually delivered, but matching generated signals and delivered signals may not be correct.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKWhjubjK)}(hhh](jP)}(h``int sig`` signal number h](jV)}(h ``int sig``h]j)}(hjh]hint sig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKThjubjp)}(hhh]h)}(h signal numberh]h signal number}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKThj+ubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhj*hKThj ubjP)}(h:``struct kernel_siginfo *info`` pointer to struct siginfo h](jV)}(h``struct kernel_siginfo *info``h]j)}(hjNh]hstruct kernel_siginfo *info}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjLubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKUhjHubjp)}(hhh]h)}(hpointer to struct siginfoh]hpointer to struct siginfo}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchKUhjdubah}(h]h ]h"]h$]h&]uh1johjHubeh}(h]h ]h"]h$]h&]uh1jOhjchKUhj ubjP)}(h9``struct k_sigaction *ka`` pointer to struct k_sigaction h](jV)}(h``struct k_sigaction *ka``h]j)}(hjh]hstruct k_sigaction *ka}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUha/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:42: ./include/trace/events/signal.hhKVhjubjp)}(hhh]h)}(hpointer to struct k_sigactionh]hpointer to struct k_sigaction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKVhj ubeh}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(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&]uh1j*hjhhhNhNubeh}(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 }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj.hK1ubj )}(htrace_block_touch_bufferh]j)}(htrace_block_touch_bufferh]htrace_block_touch_buffer}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjhhhj.hK1ubj*)}(h(struct buffer_head *bh)h]j0)}(hstruct buffer_head *bhh](jk)}(hjnh]hstruct}(hj]hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubh)}(hhh]j)}(h buffer_headh]h buffer_head}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.trace_block_touch_bufferasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hbhh]hbh}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jGhjYubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjUubah}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhj.hK1ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhj.hK1ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj.hK1hjhhubj)}(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&]uh1jhjhhhj.hK1ubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(ht**Parameters** ``struct buffer_head *bh`` buffer_head being touched **Description** Called from touch_buffer().h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK5hjubjK)}(hhh]jP)}(h5``struct buffer_head *bh`` buffer_head being touched h](jV)}(h``struct buffer_head *bh``h]j)}(hj!h]hstruct buffer_head *bh}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK2hjubjp)}(hhh]h)}(hbuffer_head being touchedh]hbuffer_head being touched}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hK2hj7ubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhj6hK2hjubah}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hj\h]h Description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjZubah}(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().}(hjrhhhNhNubah}(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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhjhhhjhK>ubj*)}(h(struct buffer_head *bh)h]j0)}(hstruct buffer_head *bhh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(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*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbhh]hbh}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubah}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhjhK>ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhjhK>ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhK>hjhhubj)}(hhh]h)}(hmark a buffer dirtyh]hmark a buffer dirty}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK>hj^hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK>ubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jyj&jyj'j(j)uh1jhhhjhNhNubj+)}(hy**Parameters** ``struct buffer_head *bh`` buffer_head being dirtied **Description** Called from mark_buffer_dirty().h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKBhj}ubjK)}(hhh]jP)}(h5``struct buffer_head *bh`` buffer_head being dirtied h](jV)}(h``struct buffer_head *bh``h]j)}(hjh]hstruct buffer_head *bh}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhK?hjubjp)}(hhh]h)}(hbuffer_head being dirtiedh]hbuffer_head being dirtied}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK?hjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhK?hjubah}(h]h ]h"]h$]h&]uh1jJhj}ubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKAhj}ubh)}(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@hj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKLubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj0hKLubj )}(htrace_block_rq_requeueh]j)}(htrace_block_rq_requeueh]htrace_block_rq_requeue}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjhhhj0hKLubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj_hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubh)}(hhh]j)}(hrequesth]hrequest}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjEsbc.trace_block_rq_requeueasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(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&]noemphj'j(uh1j/hjWubah}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhj0hKLubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhj0hKLubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj0hKLhjhhubj)}(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&]uh1jhjhhhj0hKLubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** The block operation request **rq** is being placed back into queue **q**. For some reason the request was not completed and needs to be put back in the queue.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKPhjubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj#h]hstruct request *rq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj!ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKMhjubjp)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKMhj9ubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhj8hKMhjubah}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hj^h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj\ubah}(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 }(hjthhhNhNubj5)}(h**rq**h]hrq}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjtubh! is being placed back into queue }(hjthhhNhNubj5)}(h**q**h]hq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjtubhW. For some reason the request was not completed and needs to be put back in the queue.}(hjthhhNhNubeh}(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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhjhhhjhKubj*)}(h?(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hrequesth]hrequest}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsbc.trace_block_rq_completeasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrqh]hrq}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j>c.trace_block_rq_completeasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(herrorh]herror}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(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&]noemphj'j(uh1j/hjubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhjhKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhjhKubah}(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.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j8j&j8j'j(j)uh1jhhhjhNhNubj+)}(hX**Parameters** ``struct request *rq`` block operations request ``blk_status_t error`` status code ``unsigned int nr_bytes`` number of completed bytes **Description** The block_rq_complete tracepoint event indicates that some portion of operation request has been completed by the device driver. If the **rq->bio** is ``NULL``, then there is absolutely no additional work to do for the request. If **rq->bio** is non-NULL then there is additional work required to complete the request.h](h)}(h**Parameters**h]j5)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj@ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj<ubjK)}(hhh](jP)}(h0``struct request *rq`` block operations request h](jV)}(h``struct request *rq``h]j)}(hjah]hstruct request *rq}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj_ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj[ubjp)}(hhh]h)}(hblock operations requesth]hblock operations request}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhKhjwubah}(h]h ]h"]h$]h&]uh1johj[ubeh}(h]h ]h"]h$]h&]uh1jOhjvhKhjXubjP)}(h#``blk_status_t error`` status code h](jV)}(h``blk_status_t error``h]j)}(hjh]hblk_status_t error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjp)}(hhh]h)}(h status codeh]h status code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjXubjP)}(h4``unsigned int nr_bytes`` number of completed bytes h](jV)}(h``unsigned int nr_bytes``h]j)}(hjh]hunsigned int nr_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjp)}(hhh]h)}(hnumber of completed bytesh]hnumber of completed bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjXubeh}(h]h ]h"]h$]h&]uh1jJhj<ubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj ubah}(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 }(hj$hhhNhNubj5)}(h **rq->bio**h]hrq->bio}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj$ubh is }(hj$hhhNhNubj)}(h``NULL``h]hNULL}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj$ubhH, then there is absolutely no additional work to do for the request. If }(hj$hhhNhNubj5)}(h **rq->bio**h]hrq->bio}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj$ubhL is non-NULL then there is additional work required to complete the request.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(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_errorh]j)}(htrace_block_rq_errorh]htrace_block_rq_error}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjhhhjhKubj*)}(h?(struct request *rq, blk_status_t error, unsigned int nr_bytes)h](j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hjhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjubj)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(hblk_status_t errorh](h)}(hhh]j)}(h blk_status_th]h blk_status_t}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jc.trace_block_rq_errorasbuh1hhj4ubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(herrorh]herror}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubj0)}(hunsigned int nr_bytesh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(hnr_bytesh]hnr_bytes}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhjhKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjhhhjhKubah}(h]j|ah ](jjeh"]h$]h&]jj)jhuh1jhjhKhj~hhubj)}(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&]uh1jhj~hhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(hX2**Parameters** ``struct request *rq`` block operations request ``blk_status_t error`` status code ``unsigned int nr_bytes`` number of completed bytes **Description** The block_rq_error tracepoint event indicates that some portion of operation request has failed as reported by the device driver.h](h)}(h**Parameters**h]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjK)}(hhh](jP)}(h0``struct request *rq`` block operations request h](jV)}(h``struct request *rq``h]j)}(hj#h]hstruct request *rq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj!ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjp)}(hhh]h)}(hblock operations requesth]hblock operations request}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKhj9ubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhj8hKhjubjP)}(h#``blk_status_t error`` status code h](jV)}(h``blk_status_t error``h]j)}(hj\h]hblk_status_t error}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjZubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjVubjp)}(hhh]h)}(h status codeh]h status code}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhKhjrubah}(h]h ]h"]h$]h&]uh1johjVubeh}(h]h ]h"]h$]h&]uh1jOhjqhKhjubjP)}(h4``unsigned int nr_bytes`` number of completed bytes h](jV)}(h``unsigned int nr_bytes``h]j)}(hjh]hunsigned int nr_bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjp)}(hhh]h)}(hnumber of completed bytesh]hnumber of completed bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1johjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubeh}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(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&]uh1j*hjhhhNhNubj)}(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 }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj#hKubj )}(htrace_block_rq_inserth]j)}(htrace_block_rq_inserth]htrace_block_rq_insert}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjhhhj#hKubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hjRhhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjNubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubh)}(hhh]j)}(hrequesth]hrequest}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jj8sbc.trace_block_rq_insertasbuh1hhjNubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hrqh]hrq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjJubah}(h]h ]h"]h$]h&]j'j(uh1j)hjhhhj#hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj hhhj#hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhj#hKhj hhubj)}(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&]uh1jhj hhhj#hKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jj&jj'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhjubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj h]hstruct request *rq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj ubjp)}(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&]uh1johj ubeh}(h]h ]h"]h$]h&]uh1jOhj+ hKhj ubah}(h]h ]h"]h$]h&]uh1jJhjubh)}(h**Description**h]j5)}(hjQ h]h Description}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjO 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 }(hjg hhhNhNubj5)}(h**rq**h]hrq}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjg ubh is inserted into queue }(hjg hhhNhNubj5)}(h**q**h]hq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjg ubh'. The fields in the operation request }(hjg hhhNhNubj5)}(h**rq**h]hrq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjg ubha struct can be examined to determine which device and sectors the pending operation would access.}(hjg 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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj hhhj hKubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj !hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj!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 }(hjG!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(hjh]h*}(hjU!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(hrqh]hrq}(hjb!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj!ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj hhhj hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj 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}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j!j&j!j'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj!ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj!h]hstruct request *rq}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj!ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhKhj!ubjp)}(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&]uh1johj!ubeh}(h]h ]h"]h$]h&]uh1jOhj!hKhj!ubah}(h]h ]h"]h$]h&]uh1jJhj!ubh)}(h**Description**h]j5)}(hj"h]h Description}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj"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"hhhNhNubj5)}(h**rq**h]hrq}(hj&"hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj"ubh from queue }(hj"hhhNhNubj5)}(h**q**h]hq}(hj8"hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj"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&]uh1j*hjhhhNhNubj)}(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}(hjq"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm"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&]uh1jhjm"hhhj"hMubj )}(htrace_block_rq_mergeh]j)}(htrace_block_rq_mergeh]htrace_block_rq_merge}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjm"hhhj"hMubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj"hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj"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&]noemphj'j(uh1j/hj"ubah}(h]h ]h"]h$]h&]j'j(uh1j)hjm"hhhj"hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhji"hhhj"hMubah}(h]jd"ah ](jjeh"]h$]h&]jj)jhuh1jhj"hMhjf"hhubj)}(hhh]h)}(h.merge request with another one in the elevatorh]h.merge request with another one in the elevator}(hj1#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&]uh1jhjf"hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jI#j&jI#j'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hjS#h]h Parameters}(hjU#hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjQ#ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjM#ubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hjr#h]hstruct request *rq}(hjt#hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjp#ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjl#ubjp)}(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&]uh1johjl#ubeh}(h]h ]h"]h$]h&]uh1jOhj#hMhji#ubah}(h]h ]h"]h$]h&]uh1jJhjM#ubh)}(h**Description**h]j5)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj#ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjM#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#hhhNhNubj5)}(h**rq**h]hrq}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj#ubh from queue }(hj#hhhNhNubj5)}(h**q**h]hq}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj#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.hhMhjM#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hj7$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3$ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj$hhhj$$hMubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hjS$hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjO$ubj)}(h h]h }(hj`$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO$ubh)}(hhh]j)}(hrequesth]hrequest}(hjq$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjs$modnameN classnameNjj)}j]j)}jj9$sbc.trace_block_io_startasbuh1hhjO$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO$ubj)}(hrqh]hrq}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO$ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjK$ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj$hhhj$$hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj$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&]j$jj%j$j&j$j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** is queued for executionh](h)}(h**Parameters**h]j5)}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj$ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj$ubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj%h]hstruct request *rq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj%ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj%ubjp)}(hhh]h)}(hblock IO operation requesth]hblock IO operation request}(hj0%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,%hMhj-%ubah}(h]h ]h"]h$]h&]uh1johj%ubeh}(h]h ]h"]h$]h&]uh1jOhj,%hMhj%ubah}(h]h ]h"]h$]h&]uh1jJhj$ubh)}(h**Description**h]j5)}(hjR%h]h Description}(hjT%hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjP%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 }(hjh%hhhNhNubj5)}(h**rq**h]hrq}(hjp%hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjh%ubh is queued for execution}(hjh%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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj%hhhj%hMubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj%hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj%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*}(hj2&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hrqh]hrq}(hj?&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj%ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj%hhhj%hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj%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}(hji&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjf&hhubah}(h]h ]h"]h$]h&]uh1jhj%hhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j&j&j&j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct request *rq`` block IO operation request **Description** Called when block operation request **rq** is completedh](h)}(h**Parameters**h]j5)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj&ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM#hj&ubjK)}(hhh]jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj&h]hstruct request *rq}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj&ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj&ubjp)}(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&]uh1johj&ubeh}(h]h ]h"]h$]h&]uh1jOhj&hM hj&ubah}(h]h ]h"]h$]h&]uh1jJhj&ubh)}(h**Description**h]j5)}(hj&h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj&ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM"hj&ubh)}(h7Called when block operation request **rq** is completedh](h$Called when block operation request }(hj&hhhNhNubj5)}(h**rq**h]hrq}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj&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!hj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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&]uh1jhj8'hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM,ubj)}(h h]h }(hjK'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8'hhhjJ'hM,ubj )}(htrace_block_bio_completeh]j)}(htrace_block_bio_completeh]htrace_block_bio_complete}(hj]'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY'ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj8'hhhjJ'hM,ubj*)}(h*(struct request_queue *q, struct bio *bio)h](j0)}(hstruct request_queue *qh](jk)}(hjnh]hstruct}(hjy'hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhju'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju'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)}jj_'sbc.trace_block_bio_completeasbuh1hhju'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju'ubj)}(hqh]hq}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju'ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjq'ubj0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj'hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj'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*}(hj5(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(hbioh]hbio}(hjB(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjq'ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj8'hhhjJ'hM,ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj4'hhhjJ'hM,ubah}(h]j/'ah ](jjeh"]h$]h&]jj)jhuh1jhjJ'hM,hj1'hhubj)}(hhh]h)}(h)completed all work on the block operationh]h)completed all work on the block operation}(hjl(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM,hji(hhubah}(h]h ]h"]h$]h&]uh1jhj1'hhhjJ'hM,ubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j(j&j(j'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj(ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM0hj(ubjK)}(hhh](jP)}(h>``struct request_queue *q`` queue holding the block operation h](jV)}(h``struct request_queue *q``h]j)}(hj(h]hstruct request_queue *q}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj(ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM-hj(ubjp)}(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&]uh1johj(ubeh}(h]h ]h"]h$]h&]uh1jOhj(hM-hj(ubjP)}(h.``struct bio *bio`` block operation completed h](jV)}(h``struct bio *bio``h]j)}(hj(h]hstruct bio *bio}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj(ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM.hj(ubjp)}(hhh]h)}(hblock operation completedh]hblock operation completed}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hM.hj(ubah}(h]h ]h"]h$]h&]uh1johj(ubeh}(h]h ]h"]h$]h&]uh1jOhj(hM.hj(ubeh}(h]h ]h"]h$]h&]uh1jJhj(ubh)}(h**Description**h]j5)}(hj!)h]h Description}(hj#)hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj)ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM0hj(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 }(hj7)hhhNhNubj5)}(h**bio**h]hbio}(hj?)hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj7)ubh.}(hj7)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&]uh1j*hjhhhNhNubj)}(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}(hjx)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt)hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMlubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt)hhhj)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 ](j"j#eh"]h$]h&]j'j(uh1jhjt)hhhj)hMlubj*)}(h(struct bio *bio)h]j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj)hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj)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&]noemphj'j(uh1j/hj)ubah}(h]h ]h"]h$]h&]j'j(uh1j)hjt)hhhj)hMlubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjp)hhhj)hMlubah}(h]jk)ah ](jjeh"]h$]h&]jj)jhuh1jhj)hMlhjm)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}(hj8*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMlhj5*hhubah}(h]h ]h"]h$]h&]uh1jhjm)hhhj)hMlubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jP*j&jP*j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct bio *bio`` new block operation to merge **Description** Merging block request **bio** to the end of an existing block request.h](h)}(h**Parameters**h]j5)}(hjZ*h]h Parameters}(hj\*hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjX*ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMphjT*ubjK)}(hhh]jP)}(h1``struct bio *bio`` new block operation to merge h](jV)}(h``struct bio *bio``h]j)}(hjy*h]hstruct bio *bio}(hj{*hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjw*ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMmhjs*ubjp)}(hhh]h)}(hnew block operation to mergeh]hnew block operation to merge}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMmhj*ubah}(h]h ]h"]h$]h&]uh1johjs*ubeh}(h]h ]h"]h$]h&]uh1jOhj*hMmhjp*ubah}(h]h ]h"]h$]h&]uh1jJhjT*ubh)}(h**Description**h]j5)}(hj*h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj*ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMohjT*ubh)}(hFMerging block request **bio** to the end of an existing block request.h](hMerging block request }(hj*hhhNhNubj5)}(h**bio**h]hbio}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj*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.hhMnhjT*ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj+hhhj+hMwubj*)}(h(struct bio *bio)h]j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hjH+hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjD+ubj)}(h h]h }(hjU+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD+ubh)}(hhh]j)}(hbioh]hbio}(hjf+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjh+modnameN classnameNjj)}j]j)}jj.+sbc.trace_block_bio_frontmergeasbuh1hhjD+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD+ubj)}(hbioh]hbio}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD+ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj@+ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj+hhhj+hMwubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj+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&]j$jj%j+j&j+j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct bio *bio`` new block operation to merge **Description** Merging block IO operation **bio** to the beginning of an existing block request.h](h)}(h**Parameters**h]j5)}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj+ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM{hj+ubjK)}(hhh]jP)}(h1``struct bio *bio`` new block operation to merge h](jV)}(h``struct bio *bio``h]j)}(hj ,h]hstruct bio *bio}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ,ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMxhj,ubjp)}(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&]uh1johj,ubeh}(h]h ]h"]h$]h&]uh1jOhj!,hMxhj,ubah}(h]h ]h"]h$]h&]uh1jJhj+ubh)}(h**Description**h]j5)}(hjG,h]h Description}(hjI,hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjE,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 }(hj],hhhNhNubj5)}(h**bio**h]hbio}(hje,hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj],ubh/ to the beginning of an existing block request.}(hj],hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMyhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj,hhhj,hMubj*)}(h(struct bio *bio)h]j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj,hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj,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}(hj4-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj,ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj,hhhj,hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj,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}(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&]j$jj%jv-j&jv-j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct bio *bio`` new block operation **Description** About to place the block IO operation **bio** into queue **q**.h](h)}(h**Parameters**h]j5)}(hj-h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj~-ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjz-ubjK)}(hhh]jP)}(h(``struct bio *bio`` new block operation h](jV)}(h``struct bio *bio``h]j)}(hj-h]hstruct bio *bio}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj-ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj-ubjp)}(hhh]h)}(hnew block operationh]hnew block operation}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1johj-ubeh}(h]h ]h"]h$]h&]uh1jOhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jJhjz-ubh)}(h**Description**h]j5)}(hj-h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj-ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjz-ubh)}(h?About to place the block IO operation **bio** into queue **q**.h](h&About to place the block IO operation }(hj-hhhNhNubj5)}(h**bio**h]hbio}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj-ubh into queue }(hj-hhhNhNubj5)}(h**q**h]hq}(hj .hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj-ubh.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjz-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hjC.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 }(hjR.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?.hhhjQ.hMubj )}(htrace_block_getrqh]j)}(htrace_block_getrqh]htrace_block_getrq}(hjd.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`.ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj?.hhhjQ.hMubj*)}(h(struct bio *bio)h]j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj.hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj|.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)}jjf.sbc.trace_block_getrqasbuh1hhj|.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&]noemphj'j(uh1j/hjx.ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj?.hhhjQ.hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj;.hhhjQ.hMubah}(h]j6.ah ](jjeh"]h$]h&]jj)jhuh1jhjQ.hMhj8.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&]uh1jhj8.hhhjQ.hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j/j&j/j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct bio *bio`` pending block IO operation (can be ``NULL``) **Description** A request struct has been allocated to handle the block IO operation **bio**.h](h)}(h**Parameters**h]j5)}(hj%/h]h Parameters}(hj'/hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj#/ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj/ubjK)}(hhh]jP)}(hA``struct bio *bio`` pending block IO operation (can be ``NULL``) h](jV)}(h``struct bio *bio``h]j)}(hjD/h]hstruct bio *bio}(hjF/hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjB/ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj>/ubjp)}(hhh]h)}(h,pending block IO operation (can be ``NULL``)h](h#pending block IO operation (can be }(hj]/hhhNhNubj)}(h``NULL``h]hNULL}(hje/hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj]/ubh)}(hj]/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjY/hMhjZ/ubah}(h]h ]h"]h$]h&]uh1johj>/ubeh}(h]h ]h"]h$]h&]uh1jOhjY/hMhj;/ubah}(h]h ]h"]h$]h&]uh1jJhj/ubh)}(h**Description**h]j5)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj/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/hhhNhNubj5)}(h**bio**h]hbio}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj/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&]uh1j*hjhhhNhNubj)}(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 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj/hhhj/hMubj*)}(h(struct request *rq)h]j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj%0hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj!0ubj)}(h h]h }(hj20hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0ubh)}(hhh]j)}(hrequesth]hrequest}(hjC0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjE0modnameN classnameNjj)}j]j)}jj 0sb*c.trace_blk_zone_append_update_request_bioasbuh1hhj!0ubj)}(h h]h }(hjc0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0ubj)}(hjh]h*}(hjq0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0ubj)}(hrqh]hrq}(hj~0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!0ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj0ubah}(h]h ]h"]h$]h&]j'j(uh1j)hj/hhhj/hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj/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&]j$jj%j0j&j0j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct request *rq`` the completed request that sets the bio sector **Description** Update the bio's bi_sector after a zone append command has been completed.h](h)}(h**Parameters**h]j5)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj0ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0ubjK)}(hhh]jP)}(hF``struct request *rq`` the completed request that sets the bio sector h](jV)}(h``struct request *rq``h]j)}(hj0h]hstruct request *rq}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj0ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj0ubjp)}(hhh]h)}(h.the completed request that sets the bio sectorh]h.the completed request that sets the bio sector}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1johj0ubeh}(h]h ]h"]h$]h&]uh1jOhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jJhj0ubh)}(h**Description**h]j5)}(hj$1h]h Description}(hj&1hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj"1ubah}(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&]uh1j*hjhhhNhNubj)}(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}(hji1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje1hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hjx1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje1hhhjw1hMubj )}(htrace_block_plugh]j)}(htrace_block_plugh]htrace_block_plug}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhje1hhhjw1hMubj*)}(h(struct request_queue *q)h]j0)}(hstruct request_queue *qh](jk)}(hjnh]hstruct}(hj1hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj1ubj)}(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)}jj1sbc.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&]noemphj'j(uh1j/hj1ubah}(h]h ]h"]h$]h&]j'j(uh1j)hje1hhhjw1hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhja1hhhjw1hMubah}(h]j\1ah ](jjeh"]h$]h&]jj)jhuh1jhjw1hMhj^1hhubj)}(hhh]h)}(h)keep operations requests in request queueh]h)keep operations requests in request queue}(hj(2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj%2hhubah}(h]h ]h"]h$]h&]uh1jhj^1hhhjw1hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j@2j&j@2j'j(j)uh1jhhhjhNhNubj+)}(hX**Parameters** ``struct request_queue *q`` request queue to plug **Description** Plug the request queue **q**. Do not allow block operation requests to be sent to the device driver. Instead, accumulate requests in the queue to improve throughput performance of the block device.h](h)}(h**Parameters**h]j5)}(hjJ2h]h Parameters}(hjL2hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjH2ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjD2ubjK)}(hhh]jP)}(h2``struct request_queue *q`` request queue to plug h](jV)}(h``struct request_queue *q``h]j)}(hji2h]hstruct request_queue *q}(hjk2hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjg2ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjc2ubjp)}(hhh]h)}(hrequest queue to plugh]hrequest queue to plug}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~2hMhj2ubah}(h]h ]h"]h$]h&]uh1johjc2ubeh}(h]h ]h"]h$]h&]uh1jOhj~2hMhj`2ubah}(h]h ]h"]h$]h&]uh1jJhjD2ubh)}(h**Description**h]j5)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj2ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjD2ubh)}(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 }(hj2hhhNhNubj5)}(h**q**h]hq}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj2ubh. 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.hhMhjD2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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 }(hj 3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhj 3hMubj )}(htrace_block_unplugh]j)}(htrace_block_unplugh]htrace_block_unplug}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj2hhhj 3hMubj*)}(h<(struct request_queue *q, unsigned int depth, bool explicit)h](j0)}(hstruct request_queue *qh](jk)}(hjnh]hstruct}(hj83hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj43ubj)}(h h]h }(hjE3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj43ubh)}(hhh]j)}(h request_queueh]h request_queue}(hjV3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjX3modnameN classnameNjj)}j]j)}jj3sbc.trace_block_unplugasbuh1hhj43ubj)}(h h]h }(hjv3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj43ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj43ubj)}(hj'h]hq}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj43ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj03ubj0)}(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&]noemphj'j(uh1j/hj03ubj0)}(h bool explicith](j)}(hboolh]hbool}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj)}(hexplicith]hexplicit}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj03ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj2hhhj 3hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj2hhhj 3hMubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jhj 3hMhj2hhubj)}(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&]uh1jhj2hhhj 3hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%jX4j&jX4j'j(j)uh1jhhhjhNhNubj+)}(hXU**Parameters** ``struct request_queue *q`` request queue to unplug ``unsigned int depth`` number of requests just added to the queue ``bool explicit`` whether this was an explicit unplug, or one from schedule() **Description** Unplug request queue **q** because device driver is scheduled to work on elements in the request queue.h](h)}(h**Parameters**h]j5)}(hjb4h]h Parameters}(hjd4hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj`4ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj\4ubjK)}(hhh](jP)}(h4``struct request_queue *q`` request queue to unplug h](jV)}(h``struct request_queue *q``h]j)}(hj4h]hstruct request_queue *q}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj4ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj{4ubjp)}(hhh]h)}(hrequest queue to unplugh]hrequest queue to unplug}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1johj{4ubeh}(h]h ]h"]h$]h&]uh1jOhj4hMhjx4ubjP)}(hB``unsigned int depth`` number of requests just added to the queue h](jV)}(h``unsigned int depth``h]j)}(hj4h]hunsigned int depth}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj4ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubjp)}(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&]uh1johj4ubeh}(h]h ]h"]h$]h&]uh1jOhj4hMhjx4ubjP)}(hN``bool explicit`` whether this was an explicit unplug, or one from schedule() h](jV)}(h``bool explicit``h]j)}(hj4h]h bool explicit}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj4ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj4ubjp)}(hhh]h)}(h;whether this was an explicit unplug, or one from schedule()h]h;whether this was an explicit unplug, or one from schedule()}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj 5ubah}(h]h ]h"]h$]h&]uh1johj4ubeh}(h]h ]h"]h$]h&]uh1jOhj5hMhjx4ubeh}(h]h ]h"]h$]h&]uh1jJhj\4ubh)}(h**Description**h]j5)}(hj.5h]h Description}(hj05hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj,5ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj\4ubh)}(hgUnplug request queue **q** because device driver is scheduled to work on elements in the request queue.h](hUnplug request queue }(hjD5hhhNhNubj5)}(h**q**h]hq}(hjL5hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjD5ubhM because device driver is scheduled to work on elements in the request queue.}(hjD5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj\4ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj5hMubj )}(htrace_block_splith]j)}(htrace_block_splith]htrace_block_split}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj5hhhj5hMubj*)}(h*(struct bio *bio, unsigned int new_sector)h](j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj5hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj5ubj)}(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 }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hbioh]hbio}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj5ubj0)}(hunsigned int new_sectorh](j)}(hunsignedh]hunsigned}(hj46hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj06ubj)}(h h]h }(hjB6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj06ubj)}(hinth]hint}(hjP6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj06ubj)}(h h]h }(hj^6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj06ubj)}(h new_sectorh]h new_sector}(hjl6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj06ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj5ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj5hhhj5hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj}5hhhj5hMubah}(h]jx5ah ](jjeh"]h$]h&]jj)jhuh1jhj5hMhjz5hhubj)}(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&]uh1jhjz5hhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j6j&j6j'j(j)uh1jhhhjhNhNubj+)}(hX**Parameters** ``struct bio *bio`` block operation being split ``unsigned int new_sector`` The starting sector for the new bio **Description** The bio request **bio** needs to be split into two bio requests. The newly created **bio** request starts at **new_sector**. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.h](h)}(h**Parameters**h]j5)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj6ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubjK)}(hhh](jP)}(h0``struct bio *bio`` block operation being split h](jV)}(h``struct bio *bio``h]j)}(hj6h]hstruct bio *bio}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj6ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj6ubjp)}(hhh]h)}(hblock operation being splith]hblock operation being split}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1johj6ubeh}(h]h ]h"]h$]h&]uh1jOhj6hMhj6ubjP)}(h@``unsigned int new_sector`` The starting sector for the new bio h](jV)}(h``unsigned int new_sector``h]j)}(hj7h]hunsigned int new_sector}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj7ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj 7ubjp)}(hhh]h)}(h#The starting sector for the new bioh]h#The starting sector for the new bio}(hj)7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%7hMhj&7ubah}(h]h ]h"]h$]h&]uh1johj 7ubeh}(h]h ]h"]h$]h&]uh1jOhj%7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jJhj6ubh)}(h**Description**h]j5)}(hjK7h]h Description}(hjM7hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjI7ubah}(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 }(hja7hhhNhNubj5)}(h**bio**h]hbio}(hji7hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hja7ubh= needs to be split into two bio requests. The newly created }(hja7hhhNhNubj5)}(h**bio**h]hbio}(hj{7hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hja7ubh request starts at }(hja7hhhNhNubj5)}(h**new_sector**h]h new_sector}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hja7ubhw. This split may be required due to hardware limitations such as operation crossing device boundaries in a RAID system.}(hja7hhhNhNubeh}(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&]uh1j*hjhhhNhNubj)}(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 ](j"j#eh"]h$]h&]j'j(uh1jhj7hhhj7hMubj*)}(h+(struct bio *bio, dev_t dev, sector_t from)h](j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hj8hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj7ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubh)}(hhh]j)}(hbioh]hbio}(hj!8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#8modnameN classnameNjj)}j]j)}jj7sbc.trace_block_bio_remapasbuh1hhj7ubj)}(h h]h }(hjA8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hjO8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hbioh]hbio}(hj\8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj7ubj0)}(h dev_t devh](h)}(hhh]j)}(hdev_th]hdev_t}(hjx8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjz8modnameN classnameNjj)}j]j=8c.trace_block_bio_remapasbuh1hhjq8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq8ubj)}(hdevh]hdev}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq8ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj7ubj0)}(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&]noemphj'j(uh1j/hj7ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj7hhhj7hMubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj7hhhj7hMubah}(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.hhMhj9hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j.9j&j.9j'j(j)uh1jhhhjhNhNubj+)}(h**Parameters** ``struct bio *bio`` revised operation ``dev_t dev`` original device for the operation ``sector_t from`` original sector for the operation **Description** An operation for a logical device has been mapped to the raw block device.h](h)}(h**Parameters**h]j5)}(hj89h]h Parameters}(hj:9hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj69ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj29ubjK)}(hhh](jP)}(h&``struct bio *bio`` revised operation h](jV)}(h``struct bio *bio``h]j)}(hjW9h]hstruct bio *bio}(hjY9hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjU9ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhjQ9ubjp)}(hhh]h)}(hrevised operationh]hrevised operation}(hjp9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl9hMhjm9ubah}(h]h ]h"]h$]h&]uh1johjQ9ubeh}(h]h ]h"]h$]h&]uh1jOhjl9hMhjN9ubjP)}(h0``dev_t dev`` original device for the operation h](jV)}(h ``dev_t dev``h]j)}(hj9h]h dev_t dev}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj9ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhMhj9ubjp)}(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&]uh1johj9ubeh}(h]h ]h"]h$]h&]uh1jOhj9hMhjN9ubjP)}(h4``sector_t from`` original sector for the operation h](jV)}(h``sector_t from``h]j)}(hj9h]h sector_t from}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj9ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj9ubjp)}(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&]uh1johj9ubeh}(h]h ]h"]h$]h&]uh1jOhj9hM hjN9ubeh}(h]h ]h"]h$]h&]uh1jJhj29ubh)}(h**Description**h]j5)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj:ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM hj29ubh)}(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 hj29ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubj)}(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}(hjI:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE:hhh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM/ubj)}(h h]h }(hjX:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE:hhhjW:hM/ubj )}(htrace_block_rq_remaph]j)}(htrace_block_rq_remaph]htrace_block_rq_remap}(hjj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf:ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhjE:hhhjW:hM/ubj*)}(h.(struct request *rq, dev_t dev, sector_t from)h](j0)}(hstruct request *rqh](jk)}(hjnh]hstruct}(hj:hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj: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)}jjl:sbc.trace_block_rq_remapasbuh1hhj: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&]noemphj'j(uh1j/hj~:ubj0)}(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&]noemphj'j(uh1j/hj~:ubj0)}(h sector_t fromh](h)}(hhh]j)}(hsector_th]hsector_t}(hjC;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjE;modnameN classnameNjj)}j]j:c.trace_block_rq_remapasbuh1hhj<;ubj)}(h h]h }(hja;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<;ubj)}(hfromh]hfrom}(hjo;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<;ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hj~:ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hjE:hhhjW:hM/ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhjA:hhhjW:hM/ubah}(h]j<:ah ](jjeh"]h$]h&]jj)jhuh1jhjW: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>:hhhjW:hM/ubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j;j&j;j'j(j)uh1jhhhjhNhNubj+)}(hX^**Parameters** ``struct request *rq`` block IO operation request ``dev_t dev`` device for the operation ``sector_t from`` original sector for the operation **Description** The block operation request **rq** in **q** has been remapped. The block operation request **rq** holds the current information and **from** hold the original sector.h](h)}(h**Parameters**h]j5)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj;ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM3hj;ubjK)}(hhh](jP)}(h2``struct request *rq`` block IO operation request h](jV)}(h``struct request *rq``h]j)}(hj;h]hstruct request *rq}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj;ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM0hj;ubjp)}(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&]uh1johj;ubeh}(h]h ]h"]h$]h&]uh1jOhj;hM0hj;ubjP)}(h'``dev_t dev`` device for the operation h](jV)}(h ``dev_t dev``h]j)}(hj<h]h dev_t dev}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj<ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM1hj <ubjp)}(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&]uh1johj <ubeh}(h]h ]h"]h$]h&]uh1jOhj(<hM1hj;ubjP)}(h4``sector_t from`` original sector for the operation h](jV)}(h``sector_t from``h]j)}(hjL<h]h sector_t from}(hjN<hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjJ<ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM2hjF<ubjp)}(hhh]h)}(h!original sector for the operationh]h!original sector for the operation}(hje<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja<hM2hjb<ubah}(h]h ]h"]h$]h&]uh1johjF<ubeh}(h]h ]h"]h$]h&]uh1jOhja<hM2hj;ubeh}(h]h ]h"]h$]h&]uh1jJhj;ubh)}(h**Description**h]j5)}(hj<h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<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<hhhNhNubj5)}(h**rq**h]hrq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<ubh in }(hj<hhhNhNubj5)}(h**q**h]hq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<ubh1 has been remapped. The block operation request }(hj<hhhNhNubj5)}(h**rq**h]hrq}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<ubh# holds the current information and }(hj<hhhNhNubj5)}(h**from**h]hfrom}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<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&]uh1j*hjhhhNhNubj)}(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}(hj5=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1=ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj=hhhj"=hM[ubj*)}(h&(struct bio *bio, sector_t nr_sectors)h](j0)}(hstruct bio *bioh](jk)}(hjnh]hstruct}(hjQ=hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhjM=ubj)}(h h]h }(hj^=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM=ubh)}(hhh]j)}(hbioh]hbio}(hjo=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq=modnameN classnameNjj)}j]j)}jj7=sbc.trace_blkdev_zone_mgmtasbuh1hhjM=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM=ubj)}(hbioh]hbio}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM=ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjI=ubj0)}(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]j=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&]noemphj'j(uh1j/hjI=ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj=hhhj"=hM[ubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj =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&]j$jj%j4>j&j4>j'j(j)uh1jhhhjhNhNubj+)}(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]j5)}(hj>>h]h Parameters}(hj@>hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj<>ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM_hj8>ubjK)}(hhh](jP)}(hC``struct bio *bio`` The block IO operation sent down to the device h](jV)}(h``struct bio *bio``h]j)}(hj]>h]hstruct bio *bio}(hj_>hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj[>ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM\hjW>ubjp)}(hhh]h)}(h.The block IO operation sent down to the deviceh]h.The block IO operation sent down to the device}(hjv>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjr>hM\hjs>ubah}(h]h ]h"]h$]h&]uh1johjW>ubeh}(h]h ]h"]h$]h&]uh1jOhjr>hM\hjT>ubjP)}(hI``sector_t nr_sectors`` The number of sectors affected by this operation h](jV)}(h``sector_t nr_sectors``h]j)}(hj>h]hsector_t nr_sectors}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj>ubah}(h]h ]h"]h$]h&]uh1jUh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM]hj>ubjp)}(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&]uh1johj>ubeh}(h]h ]h"]h$]h&]uh1jOhj>hM]hjT>ubeh}(h]h ]h"]h$]h&]uh1jJhj8>ubh)}(h**Description**h]j5)}(hj>h]h Description}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj>ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:48: ./include/trace/events/block.hhM_hj8>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>hhhNhNubj)}(h``nr_sectors``h]h nr_sectors}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj>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^hj8>ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hjhhhNhNubeh}(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}(hjA?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 }(hjP?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=?hhhjO?hKubj )}(htrace_workqueue_queue_workh]j)}(htrace_workqueue_queue_workh]htrace_workqueue_queue_work}(hjb?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^?ubah}(h]h ](j"j#eh"]h$]h&]j'j(uh1jhj=?hhhjO?hKubj*)}(hC(int req_cpu, struct pool_workqueue *pwq, struct work_struct *work)h](j0)}(h int req_cpuh](j)}(hinth]hint}(hj~?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz?ubj)}(hreq_cpuh]hreq_cpu}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz?ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjv?ubj0)}(hstruct pool_workqueue *pwqh](jk)}(hjnh]hstruct}(hj?hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubh)}(hhh]j)}(hpool_workqueueh]hpool_workqueue}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jjd?sbc.trace_workqueue_queue_workasbuh1hhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hpwqh]hpwq}(hj @hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjv?ubj0)}(hstruct work_struct *workh](jk)}(hjnh]hstruct}(hj%@hhhNhNubah}(h]h ]jwah"]h$]h&]uh1jjhj!@ubj)}(h h]h }(hj2@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!@ubh)}(hhh]j)}(h work_structh]h work_struct}(hjC@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjE@modnameN classnameNjj)}j]j?c.trace_workqueue_queue_workasbuh1hhj!@ubj)}(h h]h }(hja@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!@ubj)}(hjh]h*}(hjo@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!@ubj)}(hworkh]hwork}(hj|@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!@ubeh}(h]h ]h"]h$]h&]noemphj'j(uh1j/hjv?ubeh}(h]h ]h"]h$]h&]j'j(uh1j)hj=?hhhjO?hKubeh}(h]h ]h"]h$]h&]j'j(juh1jjjhj9?hhhjO?hKubah}(h]j4?ah ](jjeh"]h$]h&]jj)jhuh1jhjO?hKhj6?hhubj)}(hhh]h)}(hcalled when a work gets queuedh]hcalled when a work gets queued}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj@hhubah}(h]h ]h"]h$]h&]uh1jhj6?hhhjO?hKubeh}(h]h ](jfunctioneh"]h$]h&]j$jj%j@j&j@j'j(j)uh1jhhhj?hNhNubj+)}(hXZ**Parameters** ``int req_cpu`` the requested cpu ``struct pool_workqueue *pwq`` pointer to struct pool_workqueue ``struct work_struct *work`` pointer to struct work_struct **Description** This event occurs when a work is queued immediately or once a delayed work is actually queued on a workqueue (ie: once the delay has been reached).h](h)}(h**Parameters**h]j5)}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j4hj@ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj@ubjK)}(hhh](jP)}(h"``int req_cpu`` the requested cpu h](jV)}(h``int req_cpu``h]j)}(hj@h]h int req_cpu}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj@ubah}(h]h ]h"]h$]h&]uh1jUhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj@ubjp)}(hhh]h)}(hthe requested cpuh]hthe requested cpu}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1johj@ubeh}(h]h ]h"]h$]h&]uh1jOhj@hKhj@ubjP)}(h@``struct pool_workqueue *pwq`` pointer to struct pool_workqueue h](jV)}(h``struct pool_workqueue *pwq``h]j)}(hj Ah]hstruct pool_workqueue *pwq}(hj"AhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjAubah}(h]h ]h"]h$]h&]uh1jUhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhjAubjp)}(hhh]h)}(h pointer to struct pool_workqueueh]h pointer to struct pool_workqueue}(hj9AhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5AhKhj6Aubah}(h]h ]h"]h$]h&]uh1johjAubeh}(h]h ]h"]h$]h&]uh1jOhj5AhKhj@ubjP)}(h;``struct work_struct *work`` pointer to struct work_struct h](jV)}(h``struct work_struct *work``h]j)}(hjYAh]hstruct work_struct *work}(hj[AhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjWAubah}(h]h ]h"]h$]h&]uh1jUhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhjSAubjp)}(hhh]h)}(hpointer to struct work_structh]hpointer to struct work_struct}(hjrAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnAhKhjoAubah}(h]h ]h"]h$]h&]uh1johjSAubeh}(h]h ]h"]h$]h&]uh1jOhjnAhKhj@ubeh}(h]h ]h"]h$]h&]uh1jJhj@ubh)}(h**Description**h]j5)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j4hjAubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj@ubh)}(hThis event occurs when a work is queued immediately or once a delayed work is actually queued on a workqueue (ie: once the delay has been reached).h]hThis event occurs when a work is queued immediately or once a delayed work is actually queued on a workqueue (ie: once the delay has been reached).}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/core-api/tracepoint:54: ./include/trace/events/workqueue.hhKhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1j*hj?hhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*trace_workqueue_activate_work (C function)c.trace_workqueue_activate_workhNtauh1jhj?hhhNhNubj)}(hhh](j)}(h=void trace_workqueue_activate_work (struct work_struct *work)h]j)}(h