€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ&/translations/zh_CN/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/zh_TW/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/it_IT/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ja_JP/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/ko_KR/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/pt_BR/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ&/translations/sp_SP/networking/net_dim”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ6Net DIM - Generic Network Dynamic Interrupt Moderation”h]”hŒ6Net DIM - Generic Network Dynamic Interrupt Moderation”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œid1”uh1hºhh·h²hh³Œ@/var/lib/git/docbuild/linux/Documentation/networking/net_dim.rst”h´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hhÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hhÔh³hÌh´KubhŒ field_body”“”)�”}”(hŒ Tal Gilboa ”h]”hŒ paragraph”“”)�”}”(hŒTal Gilboa ”h]”(hŒ Tal Gilboa <”…”�”}”(hhïh²hh³Nh´NubhŒ reference”“”)�”}”(hŒtalgi@mellanox.com”h]”hŒtalgi@mellanox.com”…”�”}”(hhùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:talgi@mellanox.com”uh1h÷hhïubhŒ>”…”�”}”(hhïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´Khhéubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÒh³hÌh´KhhÏh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhh·h²hh³hÌh´KubhŒtopic”“”)�”}”(hŒ Contents ”h]”(h»)�”}”(hŒContents”h]”hŒContents”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj'h³hÌh´KubhŒ bullet_list”“”)�”}”(hhh]”hŒ list_item”“”)�”}”(hhh]”(hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ6Net DIM - Generic Network Dynamic Interrupt Moderation”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”hËah ]”h"]”h$]”h&]”Œrefid”Œ4net-dim-generic-network-dynamic-interrupt-moderation”uh1h÷hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj@ubj:)�”}”(hhh]”(j?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ Assumptions”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”Œrefid”Œ assumptions”uh1h÷hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ Introduction”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œrefid”Œ introduction”uh1h÷hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒNet DIM Algorithm”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œrefid”Œnet-dim-algorithm”uh1h÷hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ#Registering a Network Device to DIM”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”Œid5”ah ]”h"]”h$]”h&]”Œrefid”Œ#registering-a-network-device-to-dim”uh1h÷hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1híhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒExample”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”Œid6”ah ]”h"]”h$]”h&]”Œrefid”Œexample”uh1h÷hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1híhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ Tuning DIM”…”�”}”(hjh²hh³Nh´Nubah}”(h]”Œid7”ah ]”h"]”h$]”h&]”Œrefid”Œ tuning-dim”uh1h÷hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1híhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubj?)�”}”(hhh]”hî)�”}”(hhh]”hø)�”}”(hhh]”hŒ.Dynamic Interrupt Moderation (DIM) library API”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”Œid8”ah ]”h"]”h$]”h&]”Œrefid”Œ,dynamic-interrupt-moderation-dim-library-api”uh1h÷hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1híhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j9hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j>hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j9hj'h²hh³Nh´Nubeh}”(h]”Œcontents”ah ]”Œcontents”ah"]”Œcontents”ah$]”h&]”uh1j%h³hÌh´Khh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒ Assumptions”h]”hŒ Assumptions”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjmuh1hºhjgh²hh³hÌh´K ubhî)�”}”(hŒlThis document assumes the reader has basic knowledge in network drivers and in general interrupt moderation.”h]”hŒlThis document assumes the reader has basic knowledge in network drivers and in general interrupt moderation.”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K hjgh²hubeh}”(h]”jsah ]”h"]”Œ assumptions”ah$]”h&]”uh1hµhh·h²hh³hÌh´K ubh¶)�”}”(hhh]”(h»)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj�uh1hºhj�h²hh³hÌh´Kubhî)�”}”(hXpDynamic Interrupt Moderation (DIM) (in networking) refers to changing the interrupt moderation configuration of a channel in order to optimize packet processing. The mechanism includes an algorithm which decides if and how to change moderation parameters for a channel, usually by performing an analysis on runtime data sampled from the system. Net DIM is such a mechanism. In each iteration of the algorithm, it analyses a given sample of the data, compares it to the previous sample and if required, it can decide to change some of the interrupt moderation configuration fields. The data sample is composed of data bandwidth, the number of packets and the number of events. The time between samples is also measured. Net DIM compares the current and the previous data and returns an adjusted interrupt moderation configuration object. In some cases, the algorithm might decide not to change anything. The configuration fields are the minimum duration (microseconds) allowed between events and the maximum number of wanted packets per event. The Net DIM algorithm ascribes importance to increase bandwidth over reducing interrupt rate.”h]”hXpDynamic Interrupt Moderation (DIM) (in networking) refers to changing the interrupt moderation configuration of a channel in order to optimize packet processing. The mechanism includes an algorithm which decides if and how to change moderation parameters for a channel, usually by performing an analysis on runtime data sampled from the system. Net DIM is such a mechanism. In each iteration of the algorithm, it analyses a given sample of the data, compares it to the previous sample and if required, it can decide to change some of the interrupt moderation configuration fields. The data sample is composed of data bandwidth, the number of packets and the number of events. The time between samples is also measured. Net DIM compares the current and the previous data and returns an adjusted interrupt moderation configuration object. In some cases, the algorithm might decide not to change anything. The configuration fields are the minimum duration (microseconds) allowed between events and the maximum number of wanted packets per event. The Net DIM algorithm ascribes importance to increase bandwidth over reducing interrupt rate.”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´Khj�h²hubeh}”(h]”j•ah ]”h"]”Œ introduction”ah$]”h&]”uh1hµhh·h²hh³hÌh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒNet DIM Algorithm”h]”hŒNet DIM Algorithm”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj±uh1hºhj³h²hh³hÌh´K%ubhî)�”}”(hŒhjÔh²hh³hÌh´Nubj?)�”}”(hŒCompares it to previous sample.”h]”hî)�”}”(hjðh]”hŒCompares it to previous sample.”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K*hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÔh²hh³hÌh´Nubj?)�”}”(hŒFMakes a decision - suggests interrupt moderation configuration fields.”h]”hî)�”}”(hjh]”hŒFMakes a decision - suggests interrupt moderation configuration fields.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K+hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÔh²hh³hÌh´Nubj?)�”}”(hŒIApplies a schedule work function, which applies suggested configuration. ”h]”hî)�”}”(hŒHApplies a schedule work function, which applies suggested configuration.”h]”hŒHApplies a schedule work function, which applies suggested configuration.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K,hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÔh²hh³hÌh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jÒhj³h²hh³hÌh´K)ubhî)�”}”(hXThe first two steps are straightforward, both the new and the previous data are supplied by the driver registered to Net DIM. The previous data is the new data supplied to the previous iteration. The comparison step checks the difference between the new and previous data and decides on the result of the last step. A step would result as "better" if bandwidth increases and as "worse" if bandwidth reduces. If there is no change in bandwidth, the packet rate is compared in a similar fashion - increase == "better" and decrease == "worse". In case there is no change in the packet rate as well, the interrupt rate is compared. Here the algorithm tries to optimize for lower interrupt rate so an increase in the interrupt rate is considered "worse" and a decrease is considered "better". Step #2 has an optimization for avoiding false results: it only considers a difference between samples as valid if it is greater than a certain percentage. Also, since Net DIM does not measure anything by itself, it assumes the data provided by the driver is valid.”h]”hX5The first two steps are straightforward, both the new and the previous data are supplied by the driver registered to Net DIM. The previous data is the new data supplied to the previous iteration. The comparison step checks the difference between the new and previous data and decides on the result of the last step. A step would result as “betterâ€� if bandwidth increases and as “worseâ€� if bandwidth reduces. If there is no change in bandwidth, the packet rate is compared in a similar fashion - increase == “betterâ€� and decrease == “worseâ€�. In case there is no change in the packet rate as well, the interrupt rate is compared. Here the algorithm tries to optimize for lower interrupt rate so an increase in the interrupt rate is considered “worseâ€� and a decrease is considered “betterâ€�. Step #2 has an optimization for avoiding false results: it only considers a difference between samples as valid if it is greater than a certain percentage. Also, since Net DIM does not measure anything by itself, it assumes the data provided by the driver is valid.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K.hj³h²hubhî)�”}”(hXStep #3 decides on the suggested configuration based on the result from step #2 and the internal state of the algorithm. The states reflect the "direction" of the algorithm: is it going left (reducing moderation), right (increasing moderation) or standing still. Another optimization is that if a decision to stay still is made multiple times, the interval between iterations of the algorithm would increase in order to reduce calculation overhead. Also, after "parking" on one of the most left or most right decisions, the algorithm may decide to verify this decision by taking a step in the other direction. This is done in order to avoid getting stuck in a "deep sleep" scenario. Once a decision is made, an interrupt moderation configuration is selected from the predefined profiles.”h]”hXStep #3 decides on the suggested configuration based on the result from step #2 and the internal state of the algorithm. The states reflect the “directionâ€� of the algorithm: is it going left (reducing moderation), right (increasing moderation) or standing still. Another optimization is that if a decision to stay still is made multiple times, the interval between iterations of the algorithm would increase in order to reduce calculation overhead. Also, after “parkingâ€� on one of the most left or most right decisions, the algorithm may decide to verify this decision by taking a step in the other direction. This is done in order to avoid getting stuck in a “deep sleepâ€� scenario. Once a decision is made, an interrupt moderation configuration is selected from the predefined profiles.”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K=hj³h²hubhî)�”}”(hŒÐThe last step is to notify the registered driver that it should apply the suggested configuration. This is done by scheduling a work function, defined by the Net DIM API and provided by the registered driver.”h]”hŒÐThe last step is to notify the registered driver that it should apply the suggested configuration. This is done by scheduling a work function, defined by the Net DIM API and provided by the registered driver.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KIhj³h²hubhî)�”}”(hXœAs you can see, Net DIM itself does not actively interact with the system. It would have trouble making the correct decisions if the wrong data is supplied to it and it would be useless if the work function would not apply the suggested configuration. This does, however, allow the registered driver some room for manoeuvre as it may provide partial data or ignore the algorithm suggestion under some conditions.”h]”hXœAs you can see, Net DIM itself does not actively interact with the system. It would have trouble making the correct decisions if the wrong data is supplied to it and it would be useless if the work function would not apply the suggested configuration. This does, however, allow the registered driver some room for manoeuvre as it may provide partial data or ignore the algorithm suggestion under some conditions.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KMhj³h²hubeh}”(h]”j·ah ]”h"]”Œnet dim algorithm”ah$]”h&]”uh1hµhh·h²hh³hÌh´K%ubh¶)�”}”(hhh]”(h»)�”}”(hŒ#Registering a Network Device to DIM”h]”hŒ#Registering a Network Device to DIM”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjÓuh1hºhj~h²hh³hÌh´KVubhî)�”}”(hXYNet DIM API exposes the main function net_dim(). This function is the entry point to the Net DIM algorithm and has to be called every time the driver would like to check if it should change interrupt moderation parameters. The driver should provide two data structures: :c:type:`struct dim ` and :c:type:`struct dim_sample `. :c:type:`struct dim ` describes the state of DIM for a specific object (RX queue, TX queue, other queues, etc.). This includes the current selected profile, previous data samples, the callback function provided by the driver and more. :c:type:`struct dim_sample ` describes a data sample, which will be compared to the data sample stored in :c:type:`struct dim ` in order to decide on the algorithm's next step. The sample should include bytes, packets and interrupts, measured by the driver.”h]”(hXNet DIM API exposes the main function net_dim(). This function is the entry point to the Net DIM algorithm and has to be called every time the driver would like to check if it should change interrupt moderation parameters. The driver should provide two data structures: ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`struct dim `”h]”hŒliteral”“”)�”}”(hj™h]”hŒ struct dim”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1j›hj—ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œnetworking/net_dim”Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰Œ reftarget”Œdim”uh1hh³hÌh´KXhj�ubhŒ and ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ(:c:type:`struct dim_sample `”h]”jœ)�”}”(hjÂh]”hŒstruct dim_sample”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hjÀubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒ dim_sample”uh1hh³hÌh´KXhj�ubhŒ. ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`struct dim `”h]”jœ)�”}”(hjåh]”hŒ struct dim”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hjãubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒdim”uh1hh³hÌh´KXhj�ubhŒÖ describes the state of DIM for a specific object (RX queue, TX queue, other queues, etc.). This includes the current selected profile, previous data samples, the callback function provided by the driver and more. ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ(:c:type:`struct dim_sample `”h]”jœ)�”}”(hjh]”hŒstruct dim_sample”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒ dim_sample”uh1hh³hÌh´KXhj�ubhŒN describes a data sample, which will be compared to the data sample stored in ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`struct dim `”h]”jœ)�”}”(hj+h]”hŒ struct dim”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒdim”uh1hh³hÌh´KXhj�ubhŒ„ in order to decide on the algorithm’s next step. The sample should include bytes, packets and interrupts, measured by the driver.”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KXhj~h²hubhî)�”}”(hX In order to use Net DIM from a networking driver, the driver needs to call the main net_dim() function. The recommended method is to call net_dim() on each interrupt. Since Net DIM has a built-in moderation and it might decide to skip iterations under certain conditions, there is no need to moderate the net_dim() calls as well. As mentioned above, the driver needs to provide an object of type :c:type:`struct dim ` to the net_dim() function call. It is advised for each entity using Net DIM to hold a :c:type:`struct dim ` as part of its data structure and use it as the main Net DIM API object. The :c:type:`struct dim_sample ` should hold the latest bytes, packets and interrupts count. No need to perform any calculations, just include the raw data.”h]”(hXŒIn order to use Net DIM from a networking driver, the driver needs to call the main net_dim() function. The recommended method is to call net_dim() on each interrupt. Since Net DIM has a built-in moderation and it might decide to skip iterations under certain conditions, there is no need to moderate the net_dim() calls as well. As mentioned above, the driver needs to provide an object of type ”…”�”}”(hjRh²hh³Nh´Nubh)�”}”(hŒ:c:type:`struct dim `”h]”jœ)�”}”(hj\h]”hŒ struct dim”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hjZubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒdim”uh1hh³hÌh´KghjRubhŒW to the net_dim() function call. It is advised for each entity using Net DIM to hold a ”…”�”}”(hjRh²hh³Nh´Nubh)�”}”(hŒ:c:type:`struct dim `”h]”jœ)�”}”(hjh]”hŒ struct dim”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj}ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒdim”uh1hh³hÌh´KghjRubhŒN as part of its data structure and use it as the main Net DIM API object. The ”…”�”}”(hjRh²hh³Nh´Nubh)�”}”(hŒ(:c:type:`struct dim_sample `”h]”jœ)�”}”(hj¢h]”hŒstruct dim_sample”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒ dim_sample”uh1hh³hÌh´KghjRubhŒ| should hold the latest bytes, packets and interrupts count. No need to perform any calculations, just include the raw data.”…”�”}”(hjRh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´Kghj~h²hubhî)�”}”(hX¾The net_dim() call itself does not return anything. Instead Net DIM relies on the driver to provide a callback function, which is called when the algorithm decides to make a change in the interrupt moderation parameters. This callback will be scheduled and run in a separate thread in order not to add overhead to the data flow. After the work is done, Net DIM algorithm needs to be set to the proper state in order to move to the next iteration.”h]”hX¾The net_dim() call itself does not return anything. Instead Net DIM relies on the driver to provide a callback function, which is called when the algorithm decides to make a change in the interrupt moderation parameters. This callback will be scheduled and run in a separate thread in order not to add overhead to the data flow. After the work is done, Net DIM algorithm needs to be set to the proper state in order to move to the next iteration.”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´Kshj~h²hubeh}”(h]”jÙah ]”h"]”Œ#registering a network device to dim”ah$]”h&]”uh1hµhh·h²hh³hÌh´KVubh¶)�”}”(hhh]”(h»)�”}”(hŒExample”h]”hŒExample”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjõuh1hºhjÞh²hh³hÌh´K|ubhî)�”}”(hŒ˜The following code demonstrates how to register a driver to Net DIM. The actual usage is not complete but it should make the outline of the usage clear.”h]”hŒ˜The following code demonstrates how to register a driver to Net DIM. The actual usage is not complete but it should make the outline of the usage clear.”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K~hjÞh²hubhŒ literal_block”“”)�”}”(hX!#include /* Callback for net DIM to schedule on a decision to change moderation */ void my_driver_do_dim_work(struct work_struct *work) { /* Get struct dim from struct work_struct */ struct dim *dim = container_of(work, struct dim, work); /* Do interrupt moderation related stuff */ ... /* Signal net DIM work is done and it should move to next iteration */ dim->state = DIM_START_MEASURE; } /* My driver's interrupt handler */ int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...) { ... /* A struct to hold current measured data */ struct dim_sample dim_sample; ... /* Initiate data sample struct with current data */ dim_update_sample(my_entity->events, my_entity->packets, my_entity->bytes, &dim_sample); /* Call net DIM */ net_dim(&my_entity->dim, &dim_sample); ... } /* My entity's initialization function (my_entity was already allocated) */ int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...) { ... /* Initiate struct work_struct with my driver's callback function */ INIT_WORK(&my_entity->dim.work, my_driver_do_dim_work); ... }”h]”hX!#include /* Callback for net DIM to schedule on a decision to change moderation */ void my_driver_do_dim_work(struct work_struct *work) { /* Get struct dim from struct work_struct */ struct dim *dim = container_of(work, struct dim, work); /* Do interrupt moderation related stuff */ ... /* Signal net DIM work is done and it should move to next iteration */ dim->state = DIM_START_MEASURE; } /* My driver's interrupt handler */ int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...) { ... /* A struct to hold current measured data */ struct dim_sample dim_sample; ... /* Initiate data sample struct with current data */ dim_update_sample(my_entity->events, my_entity->packets, my_entity->bytes, &dim_sample); /* Call net DIM */ net_dim(&my_entity->dim, &dim_sample); ... } /* My entity's initialization function (my_entity was already allocated) */ int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...) { ... /* Initiate struct work_struct with my driver's callback function */ INIT_WORK(&my_entity->dim.work, my_driver_do_dim_work); ... }”…”�”}”hjÿsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”Œforce”‰Œlanguage”j¨Œhighlight_args”}”uh1jýh³hÌh´K�hjÞh²hubeh}”(h]”jûah ]”h"]”Œexample”ah$]”h&]”uh1hµhh·h²hh³hÌh´K|ubh¶)�”}”(hhh]”(h»)�”}”(hŒ Tuning DIM”h]”hŒ Tuning DIM”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊjuh1hºhjh²hh³hÌh´K®ubhî)�”}”(hX„Net DIM serves a range of network devices and delivers excellent acceleration benefits. Yet, it has been observed that some preset configurations of DIM may not align seamlessly with the varying specifications of network devices, and this discrepancy has been identified as a factor to the suboptimal performance outcomes of DIM-enabled network devices, related to a mismatch in profiles.”h]”hX„Net DIM serves a range of network devices and delivers excellent acceleration benefits. Yet, it has been observed that some preset configurations of DIM may not align seamlessly with the varying specifications of network devices, and this discrepancy has been identified as a factor to the suboptimal performance outcomes of DIM-enabled network devices, related to a mismatch in profiles.”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K°hjh²hubhî)�”}”(hX~To address this issue, Net DIM introduces a per-device control to modify and access a device's ``rx-profile`` and ``tx-profile`` parameters: Assume that the target network device is named ethx, and ethx only declares support for RX profile setting and supports modification of ``usec`` field and ``pkts`` field (See the data structure: :c:type:`struct dim_cq_moder `).”h]”(hŒaTo address this issue, Net DIM introduces a per-device control to modify and access a device’s ”…”�”}”(hj9h²hh³Nh´Nubjœ)�”}”(hŒ``rx-profile``”h]”hŒ rx-profile”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj9ubhŒ and ”…”�”}”(hj9h²hh³Nh´Nubjœ)�”}”(hŒ``tx-profile``”h]”hŒ tx-profile”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj9ubhŒ• parameters: Assume that the target network device is named ethx, and ethx only declares support for RX profile setting and supports modification of ”…”�”}”(hj9h²hh³Nh´Nubjœ)�”}”(hŒ``usec``”h]”hŒusec”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj9ubhŒ field and ”…”�”}”(hj9h²hh³Nh´Nubjœ)�”}”(hŒ``pkts``”h]”hŒpkts”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj9ubhŒ field (See the data structure: ”…”�”}”(hj9h²hh³Nh´Nubh)�”}”(hŒ,:c:type:`struct dim_cq_moder `”h]”jœ)�”}”(hj‹h]”hŒstruct dim_cq_moder”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jºŒ dim_cq_moder”uh1hh³hÌh´K¶hj9ubhŒ).”…”�”}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K¶hjh²hubhî)�”}”(hŒRYou can use ethtool to modify the current RX DIM profile where all values are 64::”h]”hŒQYou can use ethtool to modify the current RX DIM profile where all values are 64:”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´K½hjh²hubjþ)�”}”(hŒ:$ ethtool -C ethx rx-profile 1,1,n_2,2,n_3,n,n_n,4,n_n,n,n”h]”hŒ:$ ethtool -C ethx rx-profile 1,1,n_2,2,n_3,n,n_n,4,n_n,n,n”…”�”}”hjÀsbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³hÌh´KÀhjh²hubhî)�”}”(hŒb``n`` means do not modify this field, and ``_`` separates structure elements of the profile array.”h]”(jœ)�”}”(hŒ``n``”h]”hŒn”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÎubhŒ% means do not modify this field, and ”…”�”}”(hjÎh²hh³Nh´Nubjœ)�”}”(hŒ``_``”h]”hŒ_”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÎubhŒ3 separates structure elements of the profile array.”…”�”}”(hjÎh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KÂhjh²hubhî)�”}”(hŒ%Querying the current profiles using::”h]”hŒ$Querying the current profiles using:”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KÅhjh²hubjþ)�”}”(hX $ ethtool -c ethx ... rx-profile: {.usec = 1, .pkts = 1, .comps = n/a,}, {.usec = 2, .pkts = 2, .comps = n/a,}, {.usec = 3, .pkts = 64, .comps = n/a,}, {.usec = 64, .pkts = 4, .comps = n/a,}, {.usec = 64, .pkts = 64, .comps = n/a,} tx-profile: n/a”h]”hX $ ethtool -c ethx ... rx-profile: {.usec = 1, .pkts = 1, .comps = n/a,}, {.usec = 2, .pkts = 2, .comps = n/a,}, {.usec = 3, .pkts = 64, .comps = n/a,}, {.usec = 64, .pkts = 4, .comps = n/a,}, {.usec = 64, .pkts = 64, .comps = n/a,} tx-profile: n/a”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³hÌh´KÇhjh²hubhî)�”}”(hŒ¸If the network device does not support specific fields of DIM profiles, the corresponding ``n/a`` will display. If the ``n/a`` field is being modified, error messages will be reported.”h]”(hŒZIf the network device does not support specific fields of DIM profiles, the corresponding ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ``n/a``”h]”hŒn/a”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ will display. If the ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ``n/a``”h]”hŒn/a”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ: field is being modified, error messages will be reported.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³hÌh´KÑhjh²hubeh}”(h]”jah ]”h"]”Œ tuning dim”ah$]”h&]”uh1hµhh·h²hh³hÌh´K®ubh¶)�”}”(hhh]”(h»)�”}”(hŒ.Dynamic Interrupt Moderation (DIM) library API”h]”hŒ.Dynamic Interrupt Moderation (DIM) library API”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÊj9uh1hºhjQh²hh³hÌh´K×ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œdim_cq_moder (C struct)”Œc.dim_cq_moder”hNt”auh1jbhjQh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ dim_cq_moder”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct dim_cq_moder”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j„hj€h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j–hj€h²hh³j•h´KubhŒ desc_name”“”)�”}”(hŒ dim_cq_moder”h]”hŒ desc_sig_name”“”)�”}”(hj|h]”hŒ dim_cq_moder”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j­hj©ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”j juh1j§hj€h²hh³j•h´Kubeh}”(h]”h ]”h"]”h$]”h&]”j jŒ add_permalink”ˆuh1j~Œsphinx_line_type”Œ declarator”hjzh²hh³j•h´Kubah}”(h]”jqah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jxh³j•h´Khjuh²hubhŒ desc_content”“”)�”}”(hhh]”hî)�”}”(hŒYStructure for CQ moderation values. Used for communications between DIM and its consumer.”h]”hŒYStructure for CQ moderation values. Used for communications between DIM and its consumer.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K+hjÛh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjuh²hh³j•h´Kubeh}”(h]”h ]”(j¨Œstruct”eh"]”h$]”h&]”Œdomain”j¨Œobjtype”jöŒdesctype”jöŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jsh²hhjQh³Nh´NubhŒ container”“”)�”}”(hX{**Definition**:: struct dim_cq_moder { u16 usec; u16 pkts; u16 comps; u8 cq_period_mode; struct rcu_head rcu; }; **Members** ``usec`` CQ timer suggestion (by DIM) ``pkts`` CQ packet counter suggestion (by DIM) ``comps`` Completion counter ``cq_period_mode`` CQ period count mode (from CQE/EQE) ``rcu`` for asynchronous kfree_rcu”h]”(hî)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K/hjubjþ)�”}”(hŒsstruct dim_cq_moder { u16 usec; u16 pkts; u16 comps; u8 cq_period_mode; struct rcu_head rcu; };”h]”hŒsstruct dim_cq_moder { u16 usec; u16 pkts; u16 comps; u8 cq_period_mode; struct rcu_head rcu; };”…”�”}”hj%sbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K1hjubhî)�”}”(hŒ **Members**”h]”j )�”}”(hj6h]”hŒMembers”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K9hjubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ&``usec`` CQ timer suggestion (by DIM) ”h]”(hŒterm”“”)�”}”(hŒ``usec``”h]”jœ)�”}”(hj[h]”hŒusec”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K/hjSubhŒ definition”“”)�”}”(hhh]”hî)�”}”(hŒCQ timer suggestion (by DIM)”h]”hŒCQ timer suggestion (by DIM)”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jph´K/hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jph´K/hjNubjR)�”}”(hŒ/``pkts`` CQ packet counter suggestion (by DIM) ”h]”(jX)�”}”(hŒ``pkts``”h]”jœ)�”}”(hj–h]”hŒpkts”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K0hj�ubjr)�”}”(hhh]”hî)�”}”(hŒ%CQ packet counter suggestion (by DIM)”h]”hŒ%CQ packet counter suggestion (by DIM)”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j«h´K0hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j«h´K0hjNubjR)�”}”(hŒ``comps`` Completion counter ”h]”(jX)�”}”(hŒ ``comps``”h]”jœ)�”}”(hjÏh]”hŒcomps”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K1hjÉubjr)�”}”(hhh]”hî)�”}”(hŒCompletion counter”h]”hŒCompletion counter”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jäh´K1hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jäh´K1hjNubjR)�”}”(hŒ7``cq_period_mode`` CQ period count mode (from CQE/EQE) ”h]”(jX)�”}”(hŒ``cq_period_mode``”h]”jœ)�”}”(hjh]”hŒcq_period_mode”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K2hjubjr)�”}”(hhh]”hî)�”}”(hŒ#CQ period count mode (from CQE/EQE)”h]”hŒ#CQ period count mode (from CQE/EQE)”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jh´K2hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´K2hjNubjR)�”}”(hŒ"``rcu`` for asynchronous kfree_rcu”h]”(jX)�”}”(hŒ``rcu``”h]”jœ)�”}”(hjAh]”hŒrcu”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K2hj;ubjr)�”}”(hhh]”hî)�”}”(hŒfor asynchronous kfree_rcu”h]”hŒfor asynchronous kfree_rcu”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K3hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jVh´K2hjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_irq_moder (C struct)”Œc.dim_irq_moder”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ dim_irq_moder”h]”j)�”}”(hŒstruct dim_irq_moder”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj—h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K9ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj—h²hh³j¨h´K9ubj¨)�”}”(hŒ dim_irq_moder”h]”j®)�”}”(hj•h]”hŒ dim_irq_moder”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj·ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj—h²hh³j¨h´K9ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj“h²hh³j¨h´K9ubah}”(h]”jŽah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j¨h´K9hj�h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ]Structure for irq moderation information. Used to collect irq moderation related information.”h]”hŒ]Structure for irq moderation information. Used to collect irq moderation related information.”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KDhjÚh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj�h²hh³j¨h´K9ubeh}”(h]”h ]”(j¨Œstruct”eh"]”h$]”h&]”júj¨jûjõjüjõjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXÓ**Definition**:: struct dim_irq_moder { u8 profile_flags; u8 coal_flags; u8 dim_rx_mode; u8 dim_tx_mode; struct dim_cq_moder *rx_profile; struct dim_cq_moder *tx_profile; void (*rx_dim_work)(struct work_struct *work); void (*tx_dim_work)(struct work_struct *work); }; **Members** ``profile_flags`` DIM_PROFILE_* ``coal_flags`` DIM_COALESCE_* for Rx and Tx ``dim_rx_mode`` Rx DIM period count mode: CQE or EQE ``dim_tx_mode`` Tx DIM period count mode: CQE or EQE ``rx_profile`` DIM profile list for Rx ``tx_profile`` DIM profile list for Tx ``rx_dim_work`` Rx DIM worker scheduled by net_dim() ``tx_dim_work`` Tx DIM worker scheduled by net_dim()”h]”(hî)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjýubhŒ:”…”�”}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KHhjùubjþ)�”}”(hXstruct dim_irq_moder { u8 profile_flags; u8 coal_flags; u8 dim_rx_mode; u8 dim_tx_mode; struct dim_cq_moder *rx_profile; struct dim_cq_moder *tx_profile; void (*rx_dim_work)(struct work_struct *work); void (*tx_dim_work)(struct work_struct *work); };”h]”hXstruct dim_irq_moder { u8 profile_flags; u8 coal_flags; u8 dim_rx_mode; u8 dim_tx_mode; struct dim_cq_moder *rx_profile; struct dim_cq_moder *tx_profile; void (*rx_dim_work)(struct work_struct *work); void (*tx_dim_work)(struct work_struct *work); };”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KJhjùubhî)�”}”(hŒ **Members**”h]”j )�”}”(hj+ h]”hŒMembers”…”�”}”(hj- h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj) ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KUhjùubjM)�”}”(hhh]”(jR)�”}”(hŒ ``profile_flags`` DIM_PROFILE_* ”h]”(jX)�”}”(hŒ``profile_flags``”h]”jœ)�”}”(hjJ h]”hŒ profile_flags”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KHhjD ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM_PROFILE_*”h]”hŒ DIM_PROFILE_*”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j_ h´KHhj` ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjD ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j_ h´KHhjA ubjR)�”}”(hŒ,``coal_flags`` DIM_COALESCE_* for Rx and Tx ”h]”(jX)�”}”(hŒ``coal_flags``”h]”jœ)�”}”(hjƒ h]”hŒ coal_flags”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KIhj} ubjr)�”}”(hhh]”hî)�”}”(hŒDIM_COALESCE_* for Rx and Tx”h]”hŒDIM_COALESCE_* for Rx and Tx”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j˜ h´KIhj™ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj} ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j˜ h´KIhjA ubjR)�”}”(hŒ5``dim_rx_mode`` Rx DIM period count mode: CQE or EQE ”h]”(jX)�”}”(hŒ``dim_rx_mode``”h]”jœ)�”}”(hj¼ h]”hŒ dim_rx_mode”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjº ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KJhj¶ ubjr)�”}”(hhh]”hî)�”}”(hŒ$Rx DIM period count mode: CQE or EQE”h]”hŒ$Rx DIM period count mode: CQE or EQE”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÑ h´KJhjÒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¶ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÑ h´KJhjA ubjR)�”}”(hŒ5``dim_tx_mode`` Tx DIM period count mode: CQE or EQE ”h]”(jX)�”}”(hŒ``dim_tx_mode``”h]”jœ)�”}”(hjõ h]”hŒ dim_tx_mode”…”�”}”(hj÷ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjó ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KKhjï ubjr)�”}”(hhh]”hî)�”}”(hŒ$Tx DIM period count mode: CQE or EQE”h]”hŒ$Tx DIM period count mode: CQE or EQE”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j h´KKhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjï ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j h´KKhjA ubjR)�”}”(hŒ'``rx_profile`` DIM profile list for Rx ”h]”(jX)�”}”(hŒ``rx_profile``”h]”jœ)�”}”(hj. h]”hŒ rx_profile”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj, ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KLhj( ubjr)�”}”(hhh]”hî)�”}”(hŒDIM profile list for Rx”h]”hŒDIM profile list for Rx”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jC h´KLhjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj( ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jC h´KLhjA ubjR)�”}”(hŒ'``tx_profile`` DIM profile list for Tx ”h]”(jX)�”}”(hŒ``tx_profile``”h]”jœ)�”}”(hjg h]”hŒ tx_profile”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KMhja ubjr)�”}”(hhh]”hî)�”}”(hŒDIM profile list for Tx”h]”hŒDIM profile list for Tx”…”�”}”(hj€ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j| h´KMhj} ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhja ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j| h´KMhjA ubjR)�”}”(hŒ5``rx_dim_work`` Rx DIM worker scheduled by net_dim() ”h]”(jX)�”}”(hŒ``rx_dim_work``”h]”jœ)�”}”(hj  h]”hŒ rx_dim_work”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjž ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KNhjš ubjr)�”}”(hhh]”hî)�”}”(hŒ$Rx DIM worker scheduled by net_dim()”h]”hŒ$Rx DIM worker scheduled by net_dim()”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jµ h´KNhj¶ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjš ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jµ h´KNhjA ubjR)�”}”(hŒ4``tx_dim_work`` Tx DIM worker scheduled by net_dim()”h]”(jX)�”}”(hŒ``tx_dim_work``”h]”jœ)�”}”(hjÙ h]”hŒ tx_dim_work”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj× ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KNhjÓ ubjr)�”}”(hhh]”hî)�”}”(hŒ$Tx DIM worker scheduled by net_dim()”h]”hŒ$Tx DIM worker scheduled by net_dim()”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KOhjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jî h´KNhjA ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjùubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_sample (C struct)”Œ c.dim_sample”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ dim_sample”h]”j)�”}”(hŒstruct dim_sample”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj3 h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj/ h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KUubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj/ h²hh³j@ h´KUubj¨)�”}”(hŒ dim_sample”h]”j®)�”}”(hj- h]”hŒ dim_sample”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjO ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj/ h²hh³j@ h´KUubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj+ h²hh³j@ h´KUubah}”(h]”j& ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j@ h´KUhj( h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒTStructure for DIM sample data. Used for communications between DIM and its consumer.”h]”hŒTStructure for DIM sample data. Used for communications between DIM and its consumer.”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K\hjr h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj( h²hh³j@ h´KUubeh}”(h]”h ]”(j¨Œstruct”eh"]”h$]”h&]”júj¨jûj� jüj� jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXH**Definition**:: struct dim_sample { ktime_t time; u32 pkt_ctr; u32 byte_ctr; u16 event_ctr; u32 comp_ctr; }; **Members** ``time`` Sample timestamp ``pkt_ctr`` Number of packets ``byte_ctr`` Number of bytes ``event_ctr`` Number of events ``comp_ctr`` Current completion counter”h]”(hî)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj• ubhŒ:”…”�”}”(hj• h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K`hj‘ ubjþ)�”}”(hŒpstruct dim_sample { ktime_t time; u32 pkt_ctr; u32 byte_ctr; u16 event_ctr; u32 comp_ctr; };”h]”hŒpstruct dim_sample { ktime_t time; u32 pkt_ctr; u32 byte_ctr; u16 event_ctr; u32 comp_ctr; };”…”�”}”hj² sbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kbhj‘ ubhî)�”}”(hŒ **Members**”h]”j )�”}”(hjà h]”hŒMembers”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÁ ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kjhj‘ ubjM)�”}”(hhh]”(jR)�”}”(hŒ``time`` Sample timestamp ”h]”(jX)�”}”(hŒ``time``”h]”jœ)�”}”(hjâ h]”hŒtime”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K`hjÜ ubjr)�”}”(hhh]”hî)�”}”(hŒSample timestamp”h]”hŒSample timestamp”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j÷ h´K`hjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j÷ h´K`hjÙ ubjR)�”}”(hŒ``pkt_ctr`` Number of packets ”h]”(jX)�”}”(hŒ ``pkt_ctr``”h]”jœ)�”}”(hj h]”hŒpkt_ctr”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kahj ubjr)�”}”(hhh]”hî)�”}”(hŒNumber of packets”h]”hŒNumber of packets”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j0 h´Kahj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j0 h´KahjÙ ubjR)�”}”(hŒ``byte_ctr`` Number of bytes ”h]”(jX)�”}”(hŒ ``byte_ctr``”h]”jœ)�”}”(hjT h]”hŒbyte_ctr”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KbhjN ubjr)�”}”(hhh]”hî)�”}”(hŒNumber of bytes”h]”hŒNumber of bytes”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ji h´Kbhjj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjN ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³ji h´KbhjÙ ubjR)�”}”(hŒ``event_ctr`` Number of events ”h]”(jX)�”}”(hŒ ``event_ctr``”h]”jœ)�”}”(hj� h]”hŒ event_ctr”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kchj‡ ubjr)�”}”(hhh]”hî)�”}”(hŒNumber of events”h]”hŒNumber of events”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j¢ h´Kchj£ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj‡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¢ h´KchjÙ ubjR)�”}”(hŒ'``comp_ctr`` Current completion counter”h]”(jX)�”}”(hŒ ``comp_ctr``”h]”jœ)�”}”(hjÆ h]”hŒcomp_ctr”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÄ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KchjÀ ubjr)�”}”(hhh]”hî)�”}”(hŒCurrent completion counter”h]”hŒCurrent completion counter”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KdhjÜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÀ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÛ h´KchjÙ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhj‘ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_stats (C struct)”Œ c.dim_stats”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ dim_stats”h]”j)�”}”(hŒstruct dim_stats”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kjubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj h²hh³j- h´Kjubj¨)�”}”(hŒ dim_stats”h]”j®)�”}”(hj h]”hŒ dim_stats”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj< ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj h²hh³j- h´Kjubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj h²hh³j- h´Kjubah}”(h]”j ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j- h´Kjhj h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒAStructure for DIM stats. Used for holding current measured rates.”h]”hŒAStructure for DIM stats. Used for holding current measured rates.”…”�”}”(hjb h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Knhj_ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj h²hh³j- h´Kjubeh}”(h]”h ]”(j¨Œstruct”eh"]”h$]”h&]”júj¨jûjz jüjz jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hX2**Definition**:: struct dim_stats { int ppms; int bpms; int epms; int cpms; int cpe_ratio; }; **Members** ``ppms`` Packets per msec ``bpms`` Bytes per msec ``epms`` Events per msec ``cpms`` Completions per msec ``cpe_ratio`` Ratio of completions to events”h]”(hî)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj‚ ubhŒ:”…”�”}”(hj‚ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Krhj~ ubjþ)�”}”(hŒ`struct dim_stats { int ppms; int bpms; int epms; int cpms; int cpe_ratio; };”h]”hŒ`struct dim_stats { int ppms; int bpms; int epms; int cpms; int cpe_ratio; };”…”�”}”hjŸ sbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kthj~ ubhî)�”}”(hŒ **Members**”h]”j )�”}”(hj° h]”hŒMembers”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj® ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K|hj~ ubjM)�”}”(hhh]”(jR)�”}”(hŒ``ppms`` Packets per msec ”h]”(jX)�”}”(hŒ``ppms``”h]”jœ)�”}”(hjÏ h]”hŒppms”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÍ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KrhjÉ ubjr)�”}”(hhh]”hî)�”}”(hŒPackets per msec”h]”hŒPackets per msec”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jä h´Krhjå ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÉ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jä h´KrhjÆ ubjR)�”}”(hŒ``bpms`` Bytes per msec ”h]”(jX)�”}”(hŒ``bpms``”h]”jœ)�”}”(hjh]”hŒbpms”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kshjubjr)�”}”(hhh]”hî)�”}”(hŒBytes per msec”h]”hŒBytes per msec”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jh´Kshjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´KshjÆ ubjR)�”}”(hŒ``epms`` Events per msec ”h]”(jX)�”}”(hŒ``epms``”h]”jœ)�”}”(hjAh]”hŒepms”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kthj;ubjr)�”}”(hhh]”hî)�”}”(hŒEvents per msec”h]”hŒEvents per msec”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jVh´KthjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jVh´KthjÆ ubjR)�”}”(hŒ``cpms`` Completions per msec ”h]”(jX)�”}”(hŒ``cpms``”h]”jœ)�”}”(hjzh]”hŒcpms”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kuhjtubjr)�”}”(hhh]”hî)�”}”(hŒCompletions per msec”h]”hŒCompletions per msec”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j�h´Kuhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j�h´KuhjÆ ubjR)�”}”(hŒ,``cpe_ratio`` Ratio of completions to events”h]”(jX)�”}”(hŒ ``cpe_ratio``”h]”jœ)�”}”(hj³h]”hŒ cpe_ratio”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kuhj­ubjr)�”}”(hhh]”hî)�”}”(hŒRatio of completions to events”h]”hŒRatio of completions to events”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KvhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÈh´KuhjÆ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhj~ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim (C struct)”Œc.dim”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒdim”h]”j)�”}”(hŒ struct dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K|ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj h²hh³jh´K|ubj¨)�”}”(hŒdim”h]”j®)�”}”(hjh]”hŒdim”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj)ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj h²hh³jh´K|ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjh²hh³jh´K|ubah}”(h]”jah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jh´K|hjh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒvMain structure for dynamic interrupt moderation (DIM). Used for holding all information about a specific DIM instance.”h]”hŒvMain structure for dynamic interrupt moderation (DIM). Used for holding all information about a specific DIM instance.”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K€hjLh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjh²hh³jh´K|ubeh}”(h]”h ]”(j¨Œstruct”eh"]”h$]”h&]”júj¨jûjgjüjgjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXõ**Definition**:: struct dim { u8 state; struct dim_stats prev_stats; struct dim_sample start_sample; struct dim_sample measuring_sample; struct work_struct work; void *priv; u8 profile_ix; u8 mode; u8 tune_state; u8 steps_right; u8 steps_left; u8 tired; }; **Members** ``state`` Algorithm state (see below) ``prev_stats`` Measured rates from previous iteration (for comparison) ``start_sample`` Sampled data at start of current iteration ``measuring_sample`` A :c:type:`dim_sample` that is used to update the current events ``work`` Work to perform on action required ``priv`` A pointer to the struct that points to dim ``profile_ix`` Current moderation profile ``mode`` CQ period count mode ``tune_state`` Algorithm tuning state (see below) ``steps_right`` Number of steps taken towards higher moderation ``steps_left`` Number of steps taken towards lower moderation ``tired`` Parking depth counter”h]”(hî)�”}”(hŒ**Definition**::”h]”(j )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjoubhŒ:”…”�”}”(hjoh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K„hjkubjþ)�”}”(hXstruct dim { u8 state; struct dim_stats prev_stats; struct dim_sample start_sample; struct dim_sample measuring_sample; struct work_struct work; void *priv; u8 profile_ix; u8 mode; u8 tune_state; u8 steps_right; u8 steps_left; u8 tired; };”h]”hXstruct dim { u8 state; struct dim_stats prev_stats; struct dim_sample start_sample; struct dim_sample measuring_sample; struct work_struct work; void *priv; u8 profile_ix; u8 mode; u8 tune_state; u8 steps_right; u8 steps_left; u8 tired; };”…”�”}”hjŒsbah}”(h]”h ]”h"]”h$]”h&]”j juh1jýh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K†hjkubhî)�”}”(hŒ **Members**”h]”j )�”}”(hj�h]”hŒMembers”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K•hjkubjM)�”}”(hhh]”(jR)�”}”(hŒ&``state`` Algorithm state (see below) ”h]”(jX)�”}”(hŒ ``state``”h]”jœ)�”}”(hj¼h]”hŒstate”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K„hj¶ubjr)�”}”(hhh]”hî)�”}”(hŒAlgorithm state (see below)”h]”hŒAlgorithm state (see below)”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÑh´K„hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÑh´K„hj³ubjR)�”}”(hŒG``prev_stats`` Measured rates from previous iteration (for comparison) ”h]”(jX)�”}”(hŒ``prev_stats``”h]”jœ)�”}”(hjõh]”hŒ prev_stats”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K…hjïubjr)�”}”(hhh]”hî)�”}”(hŒ7Measured rates from previous iteration (for comparison)”h]”hŒ7Measured rates from previous iteration (for comparison)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j h´K…hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j h´K…hj³ubjR)�”}”(hŒ<``start_sample`` Sampled data at start of current iteration ”h]”(jX)�”}”(hŒ``start_sample``”h]”jœ)�”}”(hj.h]”hŒ start_sample”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K†hj(ubjr)�”}”(hhh]”hî)�”}”(hŒ*Sampled data at start of current iteration”h]”hŒ*Sampled data at start of current iteration”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jCh´K†hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jCh´K†hj³ubjR)�”}”(hŒV``measuring_sample`` A :c:type:`dim_sample` that is used to update the current events ”h]”(jX)�”}”(hŒ``measuring_sample``”h]”jœ)�”}”(hjgh]”hŒmeasuring_sample”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K‡hjaubjr)�”}”(hhh]”hî)�”}”(hŒ@A :c:type:`dim_sample` that is used to update the current events”h]”(hŒA ”…”�”}”(hj€h²hh³Nh´Nubh)�”}”(hŒ:c:type:`dim_sample`”h]”jœ)�”}”(hjŠh]”hŒ dim_sample”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”•h&]”uh1j›hjˆubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbjºŒ dim_sample”uh1hh³j|h´K‡hj€ubhŒ* that is used to update the current events”…”�”}”(hj€h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1híh³j|h´K‡hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j|h´K‡hj³ubjR)�”}”(hŒ,``work`` Work to perform on action required ”h]”(jX)�”}”(hŒ``work``”h]”jœ)�”}”(hjËh]”hŒwork”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KˆhjÅubjr)�”}”(hhh]”hî)�”}”(hŒ"Work to perform on action required”h]”hŒ"Work to perform on action required”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jàh´Kˆhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jàh´Kˆhj³ubjR)�”}”(hŒ4``priv`` A pointer to the struct that points to dim ”h]”(jX)�”}”(hŒ``priv``”h]”jœ)�”}”(hjh]”hŒpriv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K‰hjþubjr)�”}”(hhh]”hî)�”}”(hŒ*A pointer to the struct that points to dim”h]”hŒ*A pointer to the struct that points to dim”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jh´K‰hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´K‰hj³ubjR)�”}”(hŒ*``profile_ix`` Current moderation profile ”h]”(jX)�”}”(hŒ``profile_ix``”h]”jœ)�”}”(hj=h]”hŒ profile_ix”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KŠhj7ubjr)�”}”(hhh]”hî)�”}”(hŒCurrent moderation profile”h]”hŒCurrent moderation profile”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jRh´KŠhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jRh´KŠhj³ubjR)�”}”(hŒ``mode`` CQ period count mode ”h]”(jX)�”}”(hŒ``mode``”h]”jœ)�”}”(hjvh]”hŒmode”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K‹hjpubjr)�”}”(hhh]”hî)�”}”(hŒCQ period count mode”h]”hŒCQ period count mode”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j‹h´K‹hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j‹h´K‹hj³ubjR)�”}”(hŒ2``tune_state`` Algorithm tuning state (see below) ”h]”(jX)�”}”(hŒ``tune_state``”h]”jœ)�”}”(hj¯h]”hŒ tune_state”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KŒhj©ubjr)�”}”(hhh]”hî)�”}”(hŒ"Algorithm tuning state (see below)”h]”hŒ"Algorithm tuning state (see below)”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÄh´KŒhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÄh´KŒhj³ubjR)�”}”(hŒ@``steps_right`` Number of steps taken towards higher moderation ”h]”(jX)�”}”(hŒ``steps_right``”h]”jœ)�”}”(hjèh]”hŒ steps_right”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K�hjâubjr)�”}”(hhh]”hî)�”}”(hŒ/Number of steps taken towards higher moderation”h]”hŒ/Number of steps taken towards higher moderation”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jýh´K�hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jýh´K�hj³ubjR)�”}”(hŒ>``steps_left`` Number of steps taken towards lower moderation ”h]”(jX)�”}”(hŒ``steps_left``”h]”jœ)�”}”(hj!h]”hŒ steps_left”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KŽhjubjr)�”}”(hhh]”hî)�”}”(hŒ.Number of steps taken towards lower moderation”h]”hŒ.Number of steps taken towards lower moderation”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j6h´KŽhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j6h´KŽhj³ubjR)�”}”(hŒ``tired`` Parking depth counter”h]”(jX)�”}”(hŒ ``tired``”h]”jœ)�”}”(hjZh]”hŒtired”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KŽhjTubjr)�”}”(hhh]”hî)�”}”(hŒParking depth counter”h]”hŒParking depth counter”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K�hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³joh´KŽhj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjkubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_cq_period_mode (C enum)”Œc.dim_cq_period_mode”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒdim_cq_period_mode”h]”j)�”}”(hŒenum dim_cq_period_mode”h]”(j…)�”}”(hŒenum”h]”hŒenum”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj°h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K•ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj°h²hh³jÂh´K•ubj¨)�”}”(hŒdim_cq_period_mode”h]”j®)�”}”(hj®h]”hŒdim_cq_period_mode”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÑubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj°h²hh³jÂh´K•ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj¬h²hh³jÂh´K•ubah}”(h]”j§ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jÂh´K•hj©h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒModes for CQ period count”h]”hŒModes for CQ period count”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K hjôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj©h²hh³jÂh´K•ubeh}”(h]”h ]”(j¨Œenum”eh"]”h$]”h&]”júj¨jûjjüjjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒÔ**Constants** ``DIM_CQ_PERIOD_MODE_START_FROM_EQE`` Start counting from EQE ``DIM_CQ_PERIOD_MODE_START_FROM_CQE`` Start counting from CQE (implies timer reset) ``DIM_CQ_PERIOD_NUM_MODES`` Number of modes”h]”(hî)�”}”(hŒ **Constants**”h]”j )�”}”(hjh]”hŒ Constants”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K¤hjubjM)�”}”(hhh]”(jR)�”}”(hŒ>``DIM_CQ_PERIOD_MODE_START_FROM_EQE`` Start counting from EQE ”h]”(jX)�”}”(hŒ%``DIM_CQ_PERIOD_MODE_START_FROM_EQE``”h]”jœ)�”}”(hj8h]”hŒ!DIM_CQ_PERIOD_MODE_START_FROM_EQE”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K§hj2ubjr)�”}”(hhh]”hî)�”}”(hŒStart counting from EQE”h]”hŒStart counting from EQE”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jMh´K§hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jMh´K§hj/ubjR)�”}”(hŒT``DIM_CQ_PERIOD_MODE_START_FROM_CQE`` Start counting from CQE (implies timer reset) ”h]”(jX)�”}”(hŒ%``DIM_CQ_PERIOD_MODE_START_FROM_CQE``”h]”jœ)�”}”(hjqh]”hŒ!DIM_CQ_PERIOD_MODE_START_FROM_CQE”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kªhjkubjr)�”}”(hhh]”hî)�”}”(hŒ-Start counting from CQE (implies timer reset)”h]”hŒ-Start counting from CQE (implies timer reset)”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j†h´Kªhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j†h´Kªhj/ubjR)�”}”(hŒ+``DIM_CQ_PERIOD_NUM_MODES`` Number of modes”h]”(jX)�”}”(hŒ``DIM_CQ_PERIOD_NUM_MODES``”h]”jœ)�”}”(hjªh]”hŒDIM_CQ_PERIOD_NUM_MODES”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K¬hj¤ubjr)�”}”(hhh]”hî)�”}”(hŒNumber of modes”h]”hŒNumber of modes”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K­hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¿h´K¬hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_state (C enum)”Œ c.dim_state”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ dim_state”h]”j)�”}”(hŒenum dim_state”h]”(j…)�”}”(hj¶h]”hŒenum”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K²ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjh²hh³jh´K²ubj¨)�”}”(hŒ dim_state”h]”j®)�”}”(hjþh]”hŒ dim_state”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjh²hh³jh´K²ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjüh²hh³jh´K²ubah}”(h]”j÷ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jh´K²hjùh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒDIM algorithm states”h]”hŒDIM algorithm states”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K­hjCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjùh²hh³jh´K²ubeh}”(h]”h ]”(j¨Œenum”eh"]”h$]”h&]”júj¨jûj^jüj^jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hX,**Constants** ``DIM_START_MEASURE`` This is the first iteration (also after applying a new profile) ``DIM_MEASURE_IN_PROGRESS`` Algorithm is already in progress - check if need to perform an action ``DIM_APPLY_NEW_PROFILE`` DIM consumer is currently applying a profile - no need to measure”h]”(hî)�”}”(hŒ **Constants**”h]”j )�”}”(hjhh]”hŒ Constants”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K±hjbubjM)�”}”(hhh]”(jR)�”}”(hŒV``DIM_START_MEASURE`` This is the first iteration (also after applying a new profile) ”h]”(jX)�”}”(hŒ``DIM_START_MEASURE``”h]”jœ)�”}”(hj‡h]”hŒDIM_START_MEASURE”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K´hj�ubjr)�”}”(hhh]”hî)�”}”(hŒ?This is the first iteration (also after applying a new profile)”h]”hŒ?This is the first iteration (also after applying a new profile)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jœh´K´hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jœh´K´hj~ubjR)�”}”(hŒb``DIM_MEASURE_IN_PROGRESS`` Algorithm is already in progress - check if need to perform an action ”h]”(jX)�”}”(hŒ``DIM_MEASURE_IN_PROGRESS``”h]”jœ)�”}”(hjÀh]”hŒDIM_MEASURE_IN_PROGRESS”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K¸hjºubjr)�”}”(hhh]”hî)�”}”(hŒEAlgorithm is already in progress - check if need to perform an action”h]”hŒEAlgorithm is already in progress - check if need to perform an action”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K·hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÕh´K¸hj~ubjR)�”}”(hŒ[``DIM_APPLY_NEW_PROFILE`` DIM consumer is currently applying a profile - no need to measure”h]”(jX)�”}”(hŒ``DIM_APPLY_NEW_PROFILE``”h]”jœ)�”}”(hjúh]”hŒDIM_APPLY_NEW_PROFILE”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kºhjôubjr)�”}”(hhh]”hî)�”}”(hŒADIM consumer is currently applying a profile - no need to measure”h]”hŒADIM consumer is currently applying a profile - no need to measure”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K»hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´Kºhj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj=h]”hŒ Description”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K½hjQh²hubhî)�”}”(hŒPThese will determine if the algorithm is in a valid state to start an iteration.”h]”hŒPThese will determine if the algorithm is in a valid state to start an iteration.”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K®hjQh²hubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_tune_state (C enum)”Œc.dim_tune_state”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒdim_tune_state”h]”j)�”}”(hŒenum dim_tune_state”h]”(j…)�”}”(hj¶h]”hŒenum”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjwh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K³ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjwh²hh³jˆh´K³ubj¨)�”}”(hŒdim_tune_state”h]”j®)�”}”(hjuh]”hŒdim_tune_state”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj—ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjwh²hh³jˆh´K³ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjsh²hh³jˆh´K³ubah}”(h]”jnah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jˆh´K³hjph²hubjÚ)�”}”(hhh]”hî)�”}”(hŒDIM algorithm tune states”h]”hŒDIM algorithm tune states”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K½hjºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjph²hh³jˆh´K³ubeh}”(h]”h ]”(j¨Œenum”eh"]”h$]”h&]”júj¨jûjÕjüjÕjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXX**Constants** ``DIM_PARKING_ON_TOP`` Algorithm found a local top point - exit on significant difference ``DIM_PARKING_TIRED`` Algorithm found a deep top point - don't exit if tired > 0 ``DIM_GOING_RIGHT`` Algorithm is currently trying higher moderation levels ``DIM_GOING_LEFT`` Algorithm is currently trying lower moderation levels”h]”(hî)�”}”(hŒ **Constants**”h]”j )�”}”(hjßh]”hŒ Constants”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÁhjÙubjM)�”}”(hhh]”(jR)�”}”(hŒZ``DIM_PARKING_ON_TOP`` Algorithm found a local top point - exit on significant difference ”h]”(jX)�”}”(hŒ``DIM_PARKING_ON_TOP``”h]”jœ)�”}”(hjþh]”hŒDIM_PARKING_ON_TOP”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÄhjøubjr)�”}”(hhh]”hî)�”}”(hŒBAlgorithm found a local top point - exit on significant difference”h]”hŒBAlgorithm found a local top point - exit on significant difference”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jh´KÄhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´KÄhjõubjR)�”}”(hŒQ``DIM_PARKING_TIRED`` Algorithm found a deep top point - don't exit if tired > 0 ”h]”(jX)�”}”(hŒ``DIM_PARKING_TIRED``”h]”jœ)�”}”(hj7h]”hŒDIM_PARKING_TIRED”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÇhj1ubjr)�”}”(hhh]”hî)�”}”(hŒ:Algorithm found a deep top point - don't exit if tired > 0”h]”hŒ 0”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jLh´KÇhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jLh´KÇhjõubjR)�”}”(hŒK``DIM_GOING_RIGHT`` Algorithm is currently trying higher moderation levels ”h]”(jX)�”}”(hŒ``DIM_GOING_RIGHT``”h]”jœ)�”}”(hjph]”hŒDIM_GOING_RIGHT”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÊhjjubjr)�”}”(hhh]”hî)�”}”(hŒ6Algorithm is currently trying higher moderation levels”h]”hŒ6Algorithm is currently trying higher moderation levels”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j…h´KÊhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j…h´KÊhjõubjR)�”}”(hŒH``DIM_GOING_LEFT`` Algorithm is currently trying lower moderation levels”h]”(jX)�”}”(hŒ``DIM_GOING_LEFT``”h]”jœ)�”}”(hj©h]”hŒDIM_GOING_LEFT”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÌhj£ubjr)�”}”(hhh]”hî)�”}”(hŒ5Algorithm is currently trying lower moderation levels”h]”hŒ5Algorithm is currently trying lower moderation levels”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÍhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¾h´KÌhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÙubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubhî)�”}”(hŒ**Description**”h]”j )�”}”(hjìh]”hŒ Description”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÏhjQh²hubhî)�”}”(hŒ?These will determine which action the algorithm should perform.”h]”hŒ?These will determine which action the algorithm should perform.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´K¾hjQh²hubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_stats_state (C enum)”Œc.dim_stats_state”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒdim_stats_state”h]”j)�”}”(hŒenum dim_stats_state”h]”(j…)�”}”(hj¶h]”hŒenum”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj&h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÃubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj&h²hh³j7h´KÃubj¨)�”}”(hŒdim_stats_state”h]”j®)�”}”(hj$h]”hŒdim_stats_state”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjFubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj&h²hh³j7h´KÃubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj"h²hh³j7h´KÃubah}”(h]”jah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j7h´KÃhjh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒDIM algorithm statistics states”h]”hŒDIM algorithm statistics states”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÎhjih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjh²hh³j7h´KÃubeh}”(h]”h ]”(j¨Œenum”eh"]”h$]”h&]”júj¨jûj„jüj„jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒô**Constants** ``DIM_STATS_WORSE`` Current iteration shows worse performance than before ``DIM_STATS_SAME`` Current iteration shows same performance than before ``DIM_STATS_BETTER`` Current iteration shows better performance than before”h]”(hî)�”}”(hŒ **Constants**”h]”j )�”}”(hjŽh]”hŒ Constants”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÒhjˆubjM)�”}”(hhh]”(jR)�”}”(hŒJ``DIM_STATS_WORSE`` Current iteration shows worse performance than before ”h]”(jX)�”}”(hŒ``DIM_STATS_WORSE``”h]”jœ)�”}”(hj­h]”hŒDIM_STATS_WORSE”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÕhj§ubjr)�”}”(hhh]”hî)�”}”(hŒ5Current iteration shows worse performance than before”h]”hŒ5Current iteration shows worse performance than before”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÂh´KÕhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÂh´KÕhj¤ubjR)�”}”(hŒH``DIM_STATS_SAME`` Current iteration shows same performance than before ”h]”(jX)�”}”(hŒ``DIM_STATS_SAME``”h]”jœ)�”}”(hjæh]”hŒDIM_STATS_SAME”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KØhjàubjr)�”}”(hhh]”hî)�”}”(hŒ4Current iteration shows same performance than before”h]”hŒ4Current iteration shows same performance than before”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jûh´KØhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jûh´KØhj¤ubjR)�”}”(hŒK``DIM_STATS_BETTER`` Current iteration shows better performance than before”h]”(jX)�”}”(hŒ``DIM_STATS_BETTER``”h]”jœ)�”}”(hjh]”hŒDIM_STATS_BETTER”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÚhjubjr)�”}”(hhh]”hî)�”}”(hŒ6Current iteration shows better performance than before”h]”hŒ6Current iteration shows better performance than before”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÛhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j4h´KÚhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjˆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubhî)�”}”(hŒ**Description**”h]”j )�”}”(hjbh]”hŒ Description”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÝhjQh²hubhî)�”}”(hŒ6These will determine the verdict of current iteration.”h]”hŒ6These will determine the verdict of current iteration.”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÏhjQh²hubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_step_result (C enum)”Œc.dim_step_result”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒdim_step_result”h]”j)�”}”(hŒenum dim_step_result”h]”(j…)�”}”(hj¶h]”hŒenum”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjœh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÔubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjœh²hh³j­h´KÔubj¨)�”}”(hŒdim_step_result”h]”j®)�”}”(hjšh]”hŒdim_step_result”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¼ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjœh²hh³j­h´KÔubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj˜h²hh³j­h´KÔubah}”(h]”j“ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j­h´KÔhj•h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒDIM algorithm step results”h]”hŒDIM algorithm step results”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÝhjßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj•h²hh³j­h´KÔubeh}”(h]”h ]”(j¨Œenum”eh"]”h$]”h&]”júj¨jûjújüjújý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒÑ**Constants** ``DIM_STEPPED`` Performed a regular step ``DIM_TOO_TIRED`` Same kind of step was done multiple times - should go to tired parking ``DIM_ON_EDGE`` Stepped to the most left/right profile”h]”(hî)�”}”(hŒ **Constants**”h]”j )�”}”(hjh]”hŒ Constants”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KáhjþubjM)�”}”(hhh]”(jR)�”}”(hŒ)``DIM_STEPPED`` Performed a regular step ”h]”(jX)�”}”(hŒ``DIM_STEPPED``”h]”jœ)�”}”(hj#h]”hŒ DIM_STEPPED”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kähjubjr)�”}”(hhh]”hî)�”}”(hŒPerformed a regular step”h]”hŒPerformed a regular step”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j8h´Kähj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j8h´KähjubjR)�”}”(hŒY``DIM_TOO_TIRED`` Same kind of step was done multiple times - should go to tired parking ”h]”(jX)�”}”(hŒ``DIM_TOO_TIRED``”h]”jœ)�”}”(hj\h]”hŒ DIM_TOO_TIRED”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KèhjVubjr)�”}”(hhh]”hî)�”}”(hŒFSame kind of step was done multiple times - should go to tired parking”h]”hŒFSame kind of step was done multiple times - should go to tired parking”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kçhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jqh´KèhjubjR)�”}”(hŒ6``DIM_ON_EDGE`` Stepped to the most left/right profile”h]”(jX)�”}”(hŒ``DIM_ON_EDGE``”h]”jœ)�”}”(hj–h]”hŒ DIM_ON_EDGE”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kêhj�ubjr)�”}”(hhh]”hî)�”}”(hŒ&Stepped to the most left/right profile”h]”hŒ&Stepped to the most left/right profile”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Këhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j«h´Kêhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjþubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubhî)�”}”(hŒ**Description**”h]”j )�”}”(hjÙh]”hŒ Description”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KíhjQh²hubhî)�”}”(hŒ$These describe the result of a step.”h]”hŒ$These describe the result of a step.”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KÞhjQh²hubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ#net_dim_init_irq_moder (C function)”Œc.net_dim_init_irq_moder”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒÊint net_dim_init_irq_moder (struct net_device *dev, u8 profile_flags, u8 coal_flags, u8 rx_mode, u8 tx_mode, void (*rx_dim_work)(struct work_struct *work), void (*tx_dim_work)(struct work_struct *work))”h]”j)�”}”(hŒÉint net_dim_init_irq_moder(struct net_device *dev, u8 profile_flags, u8 coal_flags, u8 rx_mode, u8 tx_mode, void (*rx_dim_work)(struct work_struct *work), void (*tx_dim_work)(struct work_struct *work))”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jhjh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kíubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjh²hh³j(h´Kíubj¨)�”}”(hŒnet_dim_init_irq_moder”h]”j®)�”}”(hŒnet_dim_init_irq_moder”h]”hŒnet_dim_init_irq_moder”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj7ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjh²hh³j(h´KíubhŒdesc_parameterlist”“”)�”}”(hŒ¯(struct net_device *dev, u8 profile_flags, u8 coal_flags, u8 rx_mode, u8 tx_mode, void (*rx_dim_work)(struct work_struct *work), void (*tx_dim_work)(struct work_struct *work))”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct net_device *dev”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjWubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjWubh)�”}”(hhh]”j®)�”}”(hŒ net_device”h]”hŒ net_device”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjvubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”Œ identifier”Œ reftarget”j{Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j§Œ ASTIdentifier”“”)�”}”j�j=sbŒc.net_dim_init_irq_moder”†”asbuh1hhjWubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjWubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jªhjWubj®)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒu8 profile_flags”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÔubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÙŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhjÐubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÐubj®)�”}”(hŒ profile_flags”h]”hŒ profile_flags”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÐubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒ u8 coal_flags”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j!Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhjubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjubj®)�”}”(hŒ coal_flags”h]”hŒ coal_flags”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒ u8 rx_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jiŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhj`ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj`ubj®)�”}”(hŒrx_mode”h]”hŒrx_mode”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒ u8 tx_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¬ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j±Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhj¨ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj¨ubj®)�”}”(hŒtx_mode”h]”hŒtx_mode”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒ-void (*rx_dim_work)(struct work_struct *work)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjðubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjðubj«)�”}”(hŒ(”h]”hŒ(”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubj®)�”}”(hŒ rx_dim_work”h]”hŒ rx_dim_work”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjðubj«)�”}”(hŒ)”h]”hŒ)”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubj«)�”}”(hjh]”hŒ(”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubj…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjðubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjðubh)�”}”(hhh]”j®)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jtŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhjðubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjðubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubj®)�”}”(hŒwork”h]”hŒwork”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjðubj«)�”}”(hj;h]”hŒ)”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubjV)�”}”(hŒ-void (*tx_dim_work)(struct work_struct *work)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjÍubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÍubj«)�”}”(hjh]”hŒ(”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubj®)�”}”(hŒ tx_dim_work”h]”hŒ tx_dim_work”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÍubj«)�”}”(hj;h]”hŒ)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubj«)�”}”(hjh]”hŒ(”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubj…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÍubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÍubh)�”}”(hhh]”j®)�”}”(hŒ work_struct”h]”hŒ work_struct”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjJubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jOŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j˜Œc.net_dim_init_irq_moder”†”asbuh1hhjÍubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÍubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubj®)�”}”(hŒwork”h]”hŒwork”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÍubj«)�”}”(hj;h]”hŒ)”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjQubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjh²hh³j(h´Kíubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjh²hh³j(h´Kíubah}”(h]”j ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j(h´Kíhj h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ0collect information to initialize irq moderation”h]”hŒ0collect information to initialize irq moderation”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kíhjºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj h²hh³j(h´Kíubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjÕjüjÕjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXê**Parameters** ``struct net_device *dev`` target network device ``u8 profile_flags`` Rx or Tx profile modification capability ``u8 coal_flags`` irq moderation params flags ``u8 rx_mode`` CQ period mode for Rx ``u8 tx_mode`` CQ period mode for Tx ``void (*rx_dim_work)(struct work_struct *work)`` Rx worker called after dim decision ``void (*tx_dim_work)(struct work_struct *work)`` Tx worker called after dim decision **Return** 0 on success or a negative error code.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjßh]”hŒ Parameters”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KñhjÙubjM)�”}”(hhh]”(jR)�”}”(hŒ1``struct net_device *dev`` target network device ”h]”(jX)�”}”(hŒ``struct net_device *dev``”h]”jœ)�”}”(hjþh]”hŒstruct net_device *dev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kîhjøubjr)�”}”(hhh]”hî)�”}”(hŒtarget network device”h]”hŒtarget network device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jh´Kîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jh´KîhjõubjR)�”}”(hŒ>``u8 profile_flags`` Rx or Tx profile modification capability ”h]”(jX)�”}”(hŒ``u8 profile_flags``”h]”jœ)�”}”(hj7h]”hŒu8 profile_flags”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kïhj1ubjr)�”}”(hhh]”hî)�”}”(hŒ(Rx or Tx profile modification capability”h]”hŒ(Rx or Tx profile modification capability”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jLh´KïhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jLh´KïhjõubjR)�”}”(hŒ.``u8 coal_flags`` irq moderation params flags ”h]”(jX)�”}”(hŒ``u8 coal_flags``”h]”jœ)�”}”(hjph]”hŒ u8 coal_flags”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kðhjjubjr)�”}”(hhh]”hî)�”}”(hŒirq moderation params flags”h]”hŒirq moderation params flags”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j…h´Kðhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j…h´KðhjõubjR)�”}”(hŒ%``u8 rx_mode`` CQ period mode for Rx ”h]”(jX)�”}”(hŒ``u8 rx_mode``”h]”jœ)�”}”(hj©h]”hŒ u8 rx_mode”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kñhj£ubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode for Rx”h]”hŒCQ period mode for Rx”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j¾h´Kñhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¾h´KñhjõubjR)�”}”(hŒ%``u8 tx_mode`` CQ period mode for Tx ”h]”(jX)�”}”(hŒ``u8 tx_mode``”h]”jœ)�”}”(hjâh]”hŒ u8 tx_mode”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KòhjÜubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode for Tx”h]”hŒCQ period mode for Tx”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j÷h´Kòhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j÷h´KòhjõubjR)�”}”(hŒV``void (*rx_dim_work)(struct work_struct *work)`` Rx worker called after dim decision ”h]”(jX)�”}”(hŒ1``void (*rx_dim_work)(struct work_struct *work)``”h]”jœ)�”}”(hjh]”hŒ-void (*rx_dim_work)(struct work_struct *work)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kóhjubjr)�”}”(hhh]”hî)�”}”(hŒ#Rx worker called after dim decision”h]”hŒ#Rx worker called after dim decision”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j0h´Kóhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j0h´KóhjõubjR)�”}”(hŒV``void (*tx_dim_work)(struct work_struct *work)`` Tx worker called after dim decision ”h]”(jX)�”}”(hŒ1``void (*tx_dim_work)(struct work_struct *work)``”h]”jœ)�”}”(hjTh]”hŒ-void (*tx_dim_work)(struct work_struct *work)”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KôhjNubjr)�”}”(hhh]”hî)�”}”(hŒ#Tx worker called after dim decision”h]”hŒ#Tx worker called after dim decision”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jih´Kôhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jih´Kôhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÙubhî)�”}”(hŒ **Return**”h]”j )�”}”(hj�h]”hŒReturn”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KöhjÙubhî)�”}”(hŒ&0 on success or a negative error code.”h]”hŒ&0 on success or a negative error code.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´KöhjÙubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ#net_dim_free_irq_moder (C function)”Œc.net_dim_free_irq_moder”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ4void net_dim_free_irq_moder (struct net_device *dev)”h]”j)�”}”(hŒ3void net_dim_free_irq_moder(struct net_device *dev)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjÐh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kþubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÐh²hh³jâh´Kþubj¨)�”}”(hŒnet_dim_free_irq_moder”h]”j®)�”}”(hŒnet_dim_free_irq_moder”h]”hŒnet_dim_free_irq_moder”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjñubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjÐh²hh³jâh´KþubjP)�”}”(hŒ(struct net_device *dev)”h]”jV)�”}”(hŒstruct net_device *dev”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj ubh)�”}”(hhh]”j®)�”}”(hŒ net_device”h]”hŒ net_device”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj, ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j1 Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�j÷sbŒc.net_dim_free_irq_moder”†”asbuh1hhj ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj ubj®)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj ubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjÐh²hh³jâh´Kþubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjÌh²hh³jâh´Kþubah}”(h]”jÇah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jâh´KþhjÉh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒfree fields for irq moderation”h]”hŒfree fields for irq moderation”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kþhj‘ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjÉh²hh³jâh´Kþubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj¬ jüj¬ jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒB**Parameters** ``struct net_device *dev`` target network device”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj¶ h]”hŒ Parameters”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj´ ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj° ubjM)�”}”(hhh]”jR)�”}”(hŒ0``struct net_device *dev`` target network device”h]”(jX)�”}”(hŒ``struct net_device *dev``”h]”jœ)�”}”(hjÕ h]”hŒstruct net_device *dev”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhjÏ ubjr)�”}”(hhh]”hî)�”}”(hŒtarget network device”h]”hŒtarget network device”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Kÿhjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÏ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jê h´MhjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj° ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒnet_dim_setting (C function)”Œc.net_dim_setting”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒJvoid net_dim_setting (struct net_device *dev, struct dim *dim, bool is_tx)”h]”j)�”}”(hŒIvoid net_dim_setting(struct net_device *dev, struct dim *dim, bool is_tx)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj/!h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj+!h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>!h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj+!h²hh³j=!h´Mubj¨)�”}”(hŒnet_dim_setting”h]”j®)�”}”(hŒnet_dim_setting”h]”hŒnet_dim_setting”…”�”}”(hjP!h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjL!ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj+!h²hh³j=!h´MubjP)�”}”(hŒ5(struct net_device *dev, struct dim *dim, bool is_tx)”h]”(jV)�”}”(hŒstruct net_device *dev”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjl!h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjh!ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjy!h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjh!ubh)�”}”(hhh]”j®)�”}”(hŒ net_device”h]”hŒ net_device”…”�”}”(hjŠ!h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj‡!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jŒ!Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�jR!sbŒc.net_dim_setting”†”asbuh1hhjh!ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª!h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjh!ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj¸!h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjh!ubj®)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÅ!h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjh!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjd!ubjV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÞ!h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÚ!ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë!h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÚ!ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjü!h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjù!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jþ!Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j¦!Œc.net_dim_setting”†”asbuh1hhjÚ!ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÚ!ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj("h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÚ!ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj5"h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÚ!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjd!ubjV)�”}”(hŒ bool is_tx”h]”(j)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjN"h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjJ"ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\"h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjJ"ubj®)�”}”(hŒis_tx”h]”hŒis_tx”…”�”}”(hjj"h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjJ"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjd!ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhj+!h²hh³j=!h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj'!h²hh³j=!h´Mubah}”(h]”j"!ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j=!h´Mhj$!h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ,initialize DIM's cq mode and schedule worker”h]”hŒ.initialize DIM’s cq mode and schedule worker”…”�”}”(hj”"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj‘"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj$!h²hh³j=!h´Mubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj¬"jüj¬"jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ¹**Parameters** ``struct net_device *dev`` target network device ``struct dim *dim`` DIM context ``bool is_tx`` true indicates the tx direction, false indicates the rx direction”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj¶"h]”hŒ Parameters”…”�”}”(hj¸"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj´"ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj°"ubjM)�”}”(hhh]”(jR)�”}”(hŒ1``struct net_device *dev`` target network device ”h]”(jX)�”}”(hŒ``struct net_device *dev``”h]”jœ)�”}”(hjÕ"h]”hŒstruct net_device *dev”…”�”}”(hj×"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÓ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhjÏ"ubjr)�”}”(hhh]”hî)�”}”(hŒtarget network device”h]”hŒtarget network device”…”�”}”(hjî"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jê"h´Mhjë"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÏ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jê"h´MhjÌ"ubjR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hj#h]”hŒstruct dim *dim”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj #ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj#ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hj'#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j##h´Mhj$#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j##h´MhjÌ"ubjR)�”}”(hŒP``bool is_tx`` true indicates the tx direction, false indicates the rx direction”h]”(jX)�”}”(hŒ``bool is_tx``”h]”jœ)�”}”(hjG#h]”hŒ bool is_tx”…”�”}”(hjI#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjE#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhjA#ubjr)�”}”(hhh]”hî)�”}”(hŒAtrue indicates the tx direction, false indicates the rx direction”h]”hŒAtrue indicates the tx direction, false indicates the rx direction”…”�”}”(hj`#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj]#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjA#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j\#h´MhjÌ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhj°"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ net_dim_work_cancel (C function)”Œc.net_dim_work_cancel”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ*void net_dim_work_cancel (struct dim *dim)”h]”j)�”}”(hŒ)void net_dim_work_cancel(struct dim *dim)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¡#h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj�#h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°#h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj�#h²hh³j¯#h´M ubj¨)�”}”(hŒnet_dim_work_cancel”h]”j®)�”}”(hŒnet_dim_work_cancel”h]”hŒnet_dim_work_cancel”…”�”}”(hjÂ#h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¾#ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj�#h²hh³j¯#h´M ubjP)�”}”(hŒ(struct dim *dim)”h]”jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÞ#h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÚ#ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë#h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÚ#ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjü#h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjù#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jþ#Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�jÄ#sbŒc.net_dim_work_cancel”†”asbuh1hhjÚ#ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÚ#ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj*$h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÚ#ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj7$h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÚ#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjÖ#ubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhj�#h²hh³j¯#h´M ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj™#h²hh³j¯#h´M ubah}”(h]”j”#ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j¯#h´M hj–#h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ!synchronously cancel dim's worker”h]”hŒ#synchronously cancel dim’s worker”…”�”}”(hja$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M hj^$h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj–#h²hh³j¯#h´M ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjy$jüjy$jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ1**Parameters** ``struct dim *dim`` DIM context”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjƒ$h]”hŒ Parameters”…”�”}”(hj…$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj�$ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj}$ubjM)�”}”(hhh]”jR)�”}”(hŒ``struct dim *dim`` DIM context”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hj¢$h]”hŒstruct dim *dim”…”�”}”(hj¤$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhjœ$ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hj»$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M hj¸$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjœ$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j·$h´Mhj™$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj}$ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ%net_dim_get_rx_irq_moder (C function)”Œc.net_dim_get_rx_irq_moder”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒVstruct dim_cq_moder net_dim_get_rx_irq_moder (struct net_device *dev, struct dim *dim)”h]”j)�”}”(hŒUstruct dim_cq_moder net_dim_get_rx_irq_moder(struct net_device *dev, struct dim *dim)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjü$h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjø$h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjø$h²hh³j %h´Mubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j%Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_rx_irq_moder”sbŒc.net_dim_get_rx_irq_moder”†”asbuh1hhjø$h²hh³j %h´Mubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<%h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjø$h²hh³j %h´Mubj¨)�”}”(hŒnet_dim_get_rx_irq_moder”h]”j®)�”}”(hj9%h]”hŒnet_dim_get_rx_irq_moder”…”�”}”(hjN%h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjJ%ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjø$h²hh³j %h´MubjP)�”}”(hŒ)(struct net_device *dev, struct dim *dim)”h]”(jV)�”}”(hŒstruct net_device *dev”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hji%h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hje%ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv%h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hje%ubh)�”}”(hhh]”j®)�”}”(hŒ net_device”h]”hŒ net_device”…”�”}”(hj‡%h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj„%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j‰%Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j7%Œc.net_dim_get_rx_irq_moder”†”asbuh1hhje%ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥%h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hje%ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj³%h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhje%ubj®)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÀ%h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hje%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhja%ubjV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÙ%h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjÕ%ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ%h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÕ%ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj÷%h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjô%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jù%Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j7%Œc.net_dim_get_rx_irq_moder”†”asbuh1hhjÕ%ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÕ%ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj#&h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjÕ%ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj0&h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÕ%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhja%ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjø$h²hh³j %h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjô$h²hh³j %h´Mubah}”(h]”jï$ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j %h´Mhjñ$h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ&get DIM rx results based on profile_ix”h]”hŒ&get DIM rx results based on profile_ix”…”�”}”(hjZ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhjW&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjñ$h²hh³j %h´Mubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjr&jüjr&jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ…**Parameters** ``struct net_device *dev`` target network device ``struct dim *dim`` DIM context **Return** DIM irq moderation”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj|&h]”hŒ Parameters”…”�”}”(hj~&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjz&ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhjv&ubjM)�”}”(hhh]”(jR)�”}”(hŒ1``struct net_device *dev`` target network device ”h]”(jX)�”}”(hŒ``struct net_device *dev``”h]”jœ)�”}”(hj›&h]”hŒstruct net_device *dev”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj™&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj•&ubjr)�”}”(hhh]”hî)�”}”(hŒtarget network device”h]”hŒtarget network device”…”�”}”(hj´&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j°&h´Mhj±&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj•&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j°&h´Mhj’&ubjR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hjÔ&h]”hŒstruct dim *dim”…”�”}”(hjÖ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÒ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhjÎ&ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hjí&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jé&h´Mhjê&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÎ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jé&h´Mhj’&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjv&ubhî)�”}”(hŒ **Return**”h]”j )�”•}”(hj'h]”hŒReturn”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj 'ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhjv&ubhî)�”}”(hŒDIM irq moderation”h]”hŒDIM irq moderation”…”�”}”(hj%'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhjv&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ%net_dim_get_tx_irq_moder (C function)”Œc.net_dim_get_tx_irq_moder”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒVstruct dim_cq_moder net_dim_get_tx_irq_moder (struct net_device *dev, struct dim *dim)”h]”j)�”}”(hŒUstruct dim_cq_moder net_dim_get_tx_irq_moder(struct net_device *dev, struct dim *dim)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjT'h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjP'h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb'h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjP'h²hh³ja'h´Mubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hjs'h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjp'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”ju'Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_tx_irq_moder”sbŒc.net_dim_get_tx_irq_moder”†”asbuh1hhjP'h²hh³ja'h´Mubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”'h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjP'h²hh³ja'h´Mubj¨)�”}”(hŒnet_dim_get_tx_irq_moder”h]”j®)�”}”(hj‘'h]”hŒnet_dim_get_tx_irq_moder”…”�”}”(hj¦'h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¢'ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjP'h²hh³ja'h´MubjP)�”}”(hŒ)(struct net_device *dev, struct dim *dim)”h]”(jV)�”}”(hŒstruct net_device *dev”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÁ'h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj½'ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ'h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj½'ubh)�”}”(hhh]”j®)�”}”(hŒ net_device”h]”hŒ net_device”…”�”}”(hjß'h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÜ'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”já'Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j�'Œc.net_dim_get_tx_irq_moder”†”asbuh1hhj½'ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý'h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj½'ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj½'ubj®)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj½'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¹'ubjV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj1(h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj-(ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>(h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj-(ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjO(h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjL(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jQ(Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j�'Œc.net_dim_get_tx_irq_moder”†”asbuh1hhj-(ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm(h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj-(ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj{(h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj-(ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjˆ(h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj-(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¹'ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjP'h²hh³ja'h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjL'h²hh³ja'h´Mubah}”(h]”jG'ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³ja'h´MhjI'h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ&get DIM tx results based on profile_ix”h]”hŒ&get DIM tx results based on profile_ix”…”�”}”(hj²(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj¯(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjI'h²hh³ja'h´Mubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjÊ(jüjÊ(jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ…**Parameters** ``struct net_device *dev`` target network device ``struct dim *dim`` DIM context **Return** DIM irq moderation”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjÔ(h]”hŒ Parameters”…”�”}”(hjÖ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÒ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M hjÎ(ubjM)�”}”(hhh]”(jR)�”}”(hŒ1``struct net_device *dev`` target network device ”h]”(jX)�”}”(hŒ``struct net_device *dev``”h]”jœ)�”}”(hjó(h]”hŒstruct net_device *dev”…”�”}”(hjõ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjñ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhjí(ubjr)�”}”(hhh]”hî)�”}”(hŒtarget network device”h]”hŒtarget network device”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j)h´Mhj )ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjí(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j)h´Mhjê(ubjR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hj,)h]”hŒstruct dim *dim”…”�”}”(hj.)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj*)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mhj&)ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hjE)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jA)h´MhjB)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj&)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jA)h´Mhjê(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÎ(ubhî)�”}”(hŒ **Return**”h]”j )�”}”(hjg)h]”hŒReturn”…”�”}”(hji)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hje)ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M hjÎ(ubhî)�”}”(hŒDIM irq moderation”h]”hŒDIM irq moderation”…”�”}”(hj})h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M hjÎ(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ net_dim_set_rx_mode (C function)”Œc.net_dim_set_rx_mode”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ=void net_dim_set_rx_mode (struct net_device *dev, u8 rx_mode)”h]”j)�”}”(hŒubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó.h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjà.h²hh³jò.h´M>ubj¨)�”}”(hŒdim_turn”h]”j®)�”}”(hŒdim_turn”h]”hŒdim_turn”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj/ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjà.h²hh³jò.h´M>ubjP)�”}”(hŒ(struct dim *dim)”h]”jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj!/h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj/ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj./h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj/ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj?/h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjÜ.h²hh³jò.h´M>ubah}”(h]”j×.ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jò.h´M>hjÙ.h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ!change profile altering direction”h]”hŒ!change profile altering direction”…”�”}”(hj¤/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M>hj¡/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjÙ.h²hh³jò.h´M>ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj¼/jüj¼/jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ“**Parameters** ``struct dim *dim`` DIM context **Description** Go left if we were going right and vice-versa. Do nothing if currently parking.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjÆ/h]”hŒ Parameters”…”�”}”(hjÈ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÄ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MBhjÀ/ubjM)�”}”(hhh]”jR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hjå/h]”hŒstruct dim *dim”…”�”}”(hjç/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjã/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M?hjß/ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hjþ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jú/h´M?hjû/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjß/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jú/h´M?hjÜ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÀ/ubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj 0h]”hŒ Description”…”�”}”(hj"0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MAhjÀ/ubhî)�”}”(hŒOGo left if we were going right and vice-versa. Do nothing if currently parking.”h]”hŒOGo left if we were going right and vice-versa. Do nothing if currently parking.”…”�”}”(hj60h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M@hjÀ/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_park_on_top (C function)”Œc.dim_park_on_top”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ&void dim_park_on_top (struct dim *dim)”h]”j)�”}”(hŒ%void dim_park_on_top(struct dim *dim)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hje0h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhja0h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MGubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt0h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hja0h²hh³js0h´MGubj¨)�”}”(hŒdim_park_on_top”h]”j®)�”}”(hŒdim_park_on_top”h]”hŒdim_park_on_top”…”�”}”(hj†0h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj‚0ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hja0h²hh³js0h´MGubjP)�”}”(hŒ(struct dim *dim)”h]”jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj¢0h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjž0ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯0h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjž0ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjÀ0h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj½0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÂ0Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�jˆ0sbŒc.dim_park_on_top”†”asbuh1hhjž0ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà0h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjž0ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjî0h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjž0ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjû0h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjž0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjš0ubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhja0h²hh³js0h´MGubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj]0h²hh³js0h´MGubah}”(h]”jX0ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³js0h´MGhjZ0h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ'enter a parking state on a top location”h]”hŒ'enter a parking state on a top location”…”�”}”(hj%1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MGhj"1h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjZ0h²hh³js0h´MGubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj=1jüj=1jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒt**Parameters** ``struct dim *dim`` DIM context **Description** Enter parking state. Clear all movement history.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjG1h]”hŒ Parameters”…”�”}”(hjI1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjE1ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MKhjA1ubjM)�”}”(hhh]”jR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hjf1h]”hŒstruct dim *dim”…”�”}”(hjh1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjd1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MHhj`1ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j{1h´MHhj|1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj`1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j{1h´MHhj]1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjA1ubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj¡1h]”hŒ Description”…”�”}”(hj£1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjŸ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MJhjA1ubhî)�”}”(hŒ0Enter parking state. Clear all movement history.”h]”hŒ0Enter parking state. Clear all movement history.”…”�”}”(hj·1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MIhjA1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_park_tired (C function)”Œc.dim_park_tired”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ%void dim_park_tired (struct dim *dim)”h]”j)�”}”(hŒ$void dim_park_tired(struct dim *dim)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjæ1h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjâ1h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MPubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ1h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjâ1h²hh³jô1h´MPubj¨)�”}”(hŒdim_park_tired”h]”j®)�”}”(hŒdim_park_tired”h]”hŒdim_park_tired”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj2ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjâ1h²hh³jô1h´MPubjP)�”}”(hŒ(struct dim *dim)”h]”jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj#2h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj2ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj02h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj2ubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjA2h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj>2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jC2Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�j 2sbŒc.dim_park_tired”†”asbuh1hhj2ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja2h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj2ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjo2h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj2ubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj|2h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj2ubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjâ1h²hh³jô1h´MPubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjÞ1h²hh³jô1h´MPubah}”(h]”jÙ1ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jô1h´MPhjÛ1h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒenter a tired parking state”h]”hŒenter a tired parking state”…”�”}”(hj¦2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MPhj£2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjÛ1h²hh³jô1h´MPubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj¾2jüj¾2jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ�**Parameters** ``struct dim *dim`` DIM context **Description** Enter parking state. Clear all movement history and cause DIM checks frequency to reduce.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjÈ2h]”hŒ Parameters”…”�”}”(hjÊ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÆ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MThjÂ2ubjM)�”}”(hhh]”jR)�”}”(hŒ ``struct dim *dim`` DIM context ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hjç2h]”hŒstruct dim *dim”…”�”}”(hjé2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjå2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MQhjá2ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM context”h]”hŒ DIM context”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jü2h´MQhjý2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjá2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jü2h´MQhjÞ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÂ2ubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj"3h]”hŒ Description”…”�”}”(hj$3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MShjÂ2ubhî)�”}”(hŒYEnter parking state. Clear all movement history and cause DIM checks frequency to reduce.”h]”hŒYEnter parking state. Clear all movement history and cause DIM checks frequency to reduce.”…”�”}”(hj83h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MRhjÂ2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_calc_stats (C function)”Œc.dim_calc_stats”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒpbool dim_calc_stats (const struct dim_sample *start, const struct dim_sample *end, struct dim_stats *curr_stats)”h]”j)�”}”(hŒobool dim_calc_stats(const struct dim_sample *start, const struct dim_sample *end, struct dim_stats *curr_stats)”h]”(j)�”}”(hjP"h]”hŒbool”…”�”}”(hjg3h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjc3h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MYubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju3h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjc3h²hh³jt3h´MYubj¨)�”}”(hŒdim_calc_stats”h]”j®)�”}”(hŒdim_calc_stats”h]”hŒdim_calc_stats”…”�”}”(hj‡3h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjƒ3ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjc3h²hh³jt3h´MYubjP)�”}”(hŒ\(const struct dim_sample *start, const struct dim_sample *end, struct dim_stats *curr_stats)”h]”(jV)�”}”(hŒconst struct dim_sample *start”h]”(j…)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj£3h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjŸ3ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±3h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjŸ3ubj…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj¿3h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjŸ3ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ3h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjŸ3ubh)�”}”(hhh]”j®)�”}”(hŒ dim_sample”h]”hŒ dim_sample”…”�”}”(hjÝ3h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÚ3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jß3Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�j‰3sbŒc.dim_calc_stats”†”asbuh1hhjŸ3ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý3h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjŸ3ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjŸ3ubj®)�”}”(hŒstart”h]”hŒstart”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjŸ3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj›3ubjV)�”}”(hŒconst struct dim_sample *end”h]”(j…)�”}”(hj¥3h]”hŒconst”…”�”}”(hj14h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj-4ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>4h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj-4ubj…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjL4h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj-4ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjY4h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj-4ubh)�”}”(hhh]”j®)�”}”(hŒ dim_sample”h]”hŒ dim_sample”…”�”}”(hjj4h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjg4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jl4Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jù3Œc.dim_calc_stats”†”asbuh1hhj-4ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆ4h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj-4ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj–4h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj-4ubj®)�”}”(hŒend”h]”hŒend”…”�”}”(hj£4h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj-4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj›3ubjV)�”}”(hŒstruct dim_stats *curr_stats”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj¼4h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj¸4ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ4h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj¸4ubh)�”}”(hhh]”j®)�”}”(hŒ dim_stats”h]”hŒ dim_stats”…”�”}”(hjÚ4h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj×4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÜ4Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jù3Œc.dim_calc_stats”†”asbuh1hhj¸4ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø4h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj¸4ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj¸4ubj®)�”}”(hŒ curr_stats”h]”hŒ curr_stats”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¸4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj›3ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjc3h²hh³jt3h´MYubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj_3h²hh³jt3h´MYubah}”(h]”jZ3ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jt3h´MYhj\3h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ,calculate the difference between two samples”h]”hŒ,calculate the difference between two samples”…”�”}”(hj=5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MYhj:5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj\3h²hh³jt3h´MYubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjU5jüjU5jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hX_**Parameters** ``const struct dim_sample *start`` start sample ``const struct dim_sample *end`` end sample ``struct dim_stats *curr_stats`` delta between samples **Description** Calculate the delta between two samples (in data rates). Takes into consideration counter wrap-around. Returned boolean indicates whether curr_stats are reliable.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj_5h]”hŒ Parameters”…”�”}”(hja5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj]5ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M]hjY5ubjM)�”}”(hhh]”(jR)�”}”(hŒ0``const struct dim_sample *start`` start sample ”h]”(jX)�”}”(hŒ"``const struct dim_sample *start``”h]”jœ)�”}”(hj~5h]”hŒconst struct dim_sample *start”…”�”}”(hj€5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj|5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MZhjx5ubjr)�”}”(hhh]”hî)�”}”(hŒ start sample”h]”hŒ start sample”…”�”}”(hj—5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j“5h´MZhj”5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjx5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j“5h´MZhju5ubjR)�”}”(hŒ,``const struct dim_sample *end`` end sample ”h]”(jX)�”}”(hŒ ``const struct dim_sample *end``”h]”jœ)�”}”(hj·5h]”hŒconst struct dim_sample *end”…”�”}”(hj¹5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjµ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M[hj±5ubjr)�”}”(hhh]”hî)�”}”(hŒ end sample”h]”hŒ end sample”…”�”}”(hjÐ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÌ5h´M[hjÍ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj±5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÌ5h´M[hju5ubjR)�”}”(hŒ7``struct dim_stats *curr_stats`` delta between samples ”h]”(jX)�”}”(hŒ ``struct dim_stats *curr_stats``”h]”jœ)�”}”(hjð5h]”hŒstruct dim_stats *curr_stats”…”�”}”(hjò5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjî5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M\hjê5ubjr)�”}”(hhh]”hî)�”}”(hŒdelta between samples”h]”hŒdelta between samples”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j6h´M\hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjê5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j6h´M\hju5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjY5ubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj+6h]”hŒ Description”…”�”}”(hj-6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj)6ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M^hjY5ubhî)�”}”(hŒ¢Calculate the delta between two samples (in data rates). Takes into consideration counter wrap-around. Returned boolean indicates whether curr_stats are reliable.”h]”hŒ¢Calculate the delta between two samples (in data rates). Takes into consideration counter wrap-around. Returned boolean indicates whether curr_stats are reliable.”…”�”}”(hjA6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M]hjY5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒdim_update_sample (C function)”Œc.dim_update_sample”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒTvoid dim_update_sample (u16 event_ctr, u64 packets, u64 bytes, struct dim_sample *s)”h]”j)�”}”(hŒSvoid dim_update_sample(u16 event_ctr, u64 packets, u64 bytes, struct dim_sample *s)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjp6h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjl6h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mgubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjl6h²hh³j~6h´Mgubj¨)�”}”(hŒdim_update_sample”h]”j®)�”}”(hŒdim_update_sample”h]”hŒdim_update_sample”…”�”}”(hj‘6h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj�6ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjl6h²hh³j~6h´MgubjP)�”}”(hŒ=(u16 event_ctr, u64 packets, u64 bytes, struct dim_sample *s)”h]”(jV)�”}”(hŒ u16 event_ctr”h]”(h)�”}”(hhh]”j®)�”}”(hŒu16”h]”hŒu16”…”�”}”(hj°6h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj­6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j²6Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�j“6sbŒc.dim_update_sample”†”asbuh1hhj©6ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ6h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj©6ubj®)�”}”(hŒ event_ctr”h]”hŒ event_ctr”…”�”}”(hjÞ6h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj©6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¥6ubjV)�”}”(hŒ u64 packets”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjú6h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj÷6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jü6Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jÌ6Œc.dim_update_sample”†”asbuh1hhjó6ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjó6ubj®)�”}”(hŒpackets”h]”hŒpackets”…”�”}”(hj&7h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjó6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¥6ubjV)�”}”(hŒ u64 bytes”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjB7h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj?7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jD7Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jÌ6Œc.dim_update_sample”†”asbuh1hhj;7ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`7h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj;7ubj®)�”}”(hŒbytes”h]”hŒbytes”…”�”}”(hjn7h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj;7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¥6ubjV)�”}”(hŒstruct dim_sample *s”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj‡7h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjƒ7ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”7h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjƒ7ubh)�”}”(hhh]”j®)�”}”(hŒ dim_sample”h]”hŒ dim_sample”…”�”}”(hj¥7h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj¢7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j§7Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jÌ6Œc.dim_update_sample”†”asbuh1hhjƒ7ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃ7h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjƒ7ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjÑ7h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjƒ7ubj®)�”}”(hŒs”h]”hŒs”…”�”}”(hjÞ7h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjƒ7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj¥6ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjl6h²hh³j~6h´Mgubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjh6h²hh³j~6h´Mgubah}”(h]”jc6ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j~6h´Mghje6h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ'set a sample's fields with given values”h]”hŒ)set a sample’s fields with given values”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mghj8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhje6h²hh³j~6h´Mgubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj 8jüj 8jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ¶**Parameters** ``u16 event_ctr`` number of events to set ``u64 packets`` number of packets to set ``u64 bytes`` number of bytes to set ``struct dim_sample *s`` DIM sample”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj*8h]”hŒ Parameters”…”�”}”(hj,8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj(8ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mkhj$8ubjM)�”}”(hhh]”(jR)�”}”(hŒ*``u16 event_ctr`` number of events to set ”h]”(jX)�”}”(hŒ``u16 event_ctr``”h]”jœ)�”}”(hjI8h]”hŒ u16 event_ctr”…”�”}”(hjK8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjG8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MhhjC8ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of events to set”h]”hŒnumber of events to set”…”�”}”(hjb8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j^8h´Mhhj_8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjC8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j^8h´Mhhj@8ubjR)�”}”(hŒ)``u64 packets`` number of packets to set ”h]”(jX)�”}”(hŒ``u64 packets``”h]”jœ)�”}”(hj‚8h]”hŒ u64 packets”…”�”}”(hj„8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj€8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mihj|8ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of packets to set”h]”hŒnumber of packets to set”…”�”}”(hj›8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j—8h´Mihj˜8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj|8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j—8h´Mihj@8ubjR)�”}”(hŒ%``u64 bytes`` number of bytes to set ”h]”(jX)�”}”(hŒ ``u64 bytes``”h]”jœ)�”}”(hj»8h]”hŒ u64 bytes”…”�”}”(hj½8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¹8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mjhjµ8ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of bytes to set”h]”hŒnumber of bytes to set”…”�”}”(hjÔ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jÐ8h´MjhjÑ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjµ8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÐ8h´Mjhj@8ubjR)�”}”(hŒ#``struct dim_sample *s`` DIM sample”h]”(jX)�”}”(hŒ``struct dim_sample *s``”h]”jœ)�”}”(hjô8h]”hŒstruct dim_sample *s”…”�”}”(hjö8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjò8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mlhjî8ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM sample”h]”hŒ DIM sample”…”�”}”(hj 9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mkhj 9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjî8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j 9h´Mlhj@8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhj$8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ)dim_update_sample_with_comps (C function)”Œc.dim_update_sample_with_comps”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒjvoid dim_update_sample_with_comps (u16 event_ctr, u64 packets, u64 bytes, u64 comps, struct dim_sample *s)”h]”j)�”}”(hŒivoid dim_update_sample_with_comps(u16 event_ctr, u64 packets, u64 bytes, u64 comps, struct dim_sample *s)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjN9h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjJ9h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mwubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]9h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjJ9h²hh³j\9h´Mwubj¨)�”}”(hŒdim_update_sample_with_comps”h]”j®)�”}”(hŒdim_update_sample_with_comps”h]”hŒdim_update_sample_with_comps”…”�”}”(hjo9h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjk9ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjJ9h²hh³j\9h´MwubjP)�”}”(hŒH(u16 event_ctr, u64 packets, u64 bytes, u64 comps, struct dim_sample *s)”h]”(jV)�”}”(hŒ u16 event_ctr”h]”(h)�”}”(hhh]”j®)�”}”(hŒu16”h]”hŒu16”…”�”}”(hjŽ9h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj‹9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j�9Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�jq9sbŒc.dim_update_sample_with_comps”†”asbuh1hhj‡9ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®9h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj‡9ubj®)�”}”(hŒ event_ctr”h]”hŒ event_ctr”…”�”}”(hj¼9h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj‡9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjƒ9ubjV)�”}”(hŒ u64 packets”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjØ9h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÕ9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÚ9Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jª9Œc.dim_update_sample_with_comps”†”asbuh1hhjÑ9ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö9h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjÑ9ubj®)�”}”(hŒpackets”h]”hŒpackets”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÑ9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjƒ9ubjV)�”}”(hŒ u64 bytes”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hj :h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j":Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jª9Œc.dim_update_sample_with_comps”†”asbuh1hhj:ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>:h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj:ubj®)�”}”(hŒbytes”h]”hŒbytes”…”�”}”(hjL:h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjƒ9ubjV)�”}”(hŒ u64 comps”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjh:h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hje:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jj:Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jª9Œc.dim_update_sample_with_comps”†”asbuh1hhja:ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†:h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hja:ubj®)�”}”(hŒcomps”h]”hŒcomps”…”�”}”(hj”:h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hja:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjƒ9ubjV)�”}”(hŒstruct dim_sample *s”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj­:h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj©:ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº:h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj©:ubh)�”}”(hhh]”j®)�”}”(hŒ dim_sample”h]”hŒ dim_sample”…”�”}”(hjË:h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÈ:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÍ:Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jª9Œc.dim_update_sample_with_comps”†”asbuh1hhj©:ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé:h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj©:ubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj÷:h²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj©:ubj®)�”}”(hjà7h]”hŒs”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj©:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjƒ9ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjJ9h²hh³j\9h´Mwubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjF9h²hh³j\9h´Mwubah}”(h]”jA9ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j\9h´MwhjC9h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒJset a sample's fields with given values including the completion parameter”h]”hŒLset a sample’s fields with given values including the completion parameter”…”�”}”(hj-;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mwhj*;h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjC9h²hh³j\9h´Mwubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjE;jüjE;jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒä**Parameters** ``u16 event_ctr`` number of events to set ``u64 packets`` number of packets to set ``u64 bytes`` number of bytes to set ``u64 comps`` number of completions to set ``struct dim_sample *s`` DIM sample”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjO;h]”hŒ Parameters”…”�”}”(hjQ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjM;ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M{hjI;ubjM)�”}”(hhh]”(jR)�”}”(hŒ*``u16 event_ctr`` number of events to set ”h]”(jX)�”}”(hŒ``u16 event_ctr``”h]”jœ)�”}”(hjn;h]”hŒ u16 event_ctr”…”�”}”(hjp;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjl;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Myhjh;ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of events to set”h]”hŒnumber of events to set”…”�”}”(hj‡;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jƒ;h´Myhj„;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjh;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jƒ;h´Myhje;ubjR)�”}”(hŒ)``u64 packets`` number of packets to set ”h]”(jX)�”}”(hŒ``u64 packets``”h]”jœ)�”}”(hj§;h]”hŒ u64 packets”…”�”}”(hj©;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¥;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mzhj¡;ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of packets to set”h]”hŒnumber of packets to set”…”�”}”(hjÀ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j¼;h´Mzhj½;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¡;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¼;h´Mzhje;ubjR)�”}”(hŒ%``u64 bytes`` number of bytes to set ”h]”(jX)�”}”(hŒ ``u64 bytes``”h]”jœ)�”}”(hjà;h]”hŒ u64 bytes”…”�”}”(hjâ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÞ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M{hjÚ;ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of bytes to set”h]”hŒnumber of bytes to set”…”�”}”(hjù;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jõ;h´M{hjö;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÚ;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jõ;h´M{hje;ubjR)�”}”(hŒ+``u64 comps`` number of completions to set ”h]”(jX)�”}”(hŒ ``u64 comps``”h]”jœ)�”}”(hj<h]”hŒ u64 comps”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M|hj<ubjr)�”}”(hhh]”hî)�”}”(hŒnumber of completions to set”h]”hŒnumber of completions to set”…”�”}”(hj2<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j.<h´M|hj/<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j.<h´M|hje;ubjR)�”}”(hŒ#``struct dim_sample *s`` DIM sample”h]”(jX)�”}”(hŒ``struct dim_sample *s``”h]”jœ)�”}”(hjR<h]”hŒstruct dim_sample *s”…”�”}”(hjT<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjP<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M~hjL<ubjr)�”}”(hhh]”hî)�”}”(hŒ DIM sample”h]”hŒ DIM sample”…”�”}”(hjk<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M}hjh<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjL<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jg<h´M~hje;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjI;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ&net_dim_get_rx_moderation (C function)”Œc.net_dim_get_rx_moderation”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒIstruct dim_cq_moder net_dim_get_rx_moderation (u8 cq_period_mode, int ix)”h]”j)�”}”(hŒHstruct dim_cq_moder net_dim_get_rx_moderation(u8 cq_period_mode, int ix)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj¬<h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj¨<h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MŠubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº<h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj¨<h²hh³j¹<h´MŠubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hjË<h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÈ<ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÍ<Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_rx_moderation”sbŒc.net_dim_get_rx_moderation”†”asbuh1hhj¨<h²hh³j¹<h´MŠubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì<h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj¨<h²hh³j¹<h´MŠubj¨)�”}”(hŒnet_dim_get_rx_moderation”h]”j®)�”}”(hjé<h]”hŒnet_dim_get_rx_moderation”…”�”}”(hjþ<h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjú<ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj¨<h²hh³j¹<h´MŠubjP)�”}”(hŒ(u8 cq_period_mode, int ix)”h]”(jV)�”}”(hŒu8 cq_period_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j=Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”jç<Œc.net_dim_get_rx_moderation”†”asbuh1hhj=ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:=h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj=ubj®)�”}”(hŒcq_period_mode”h]”hŒcq_period_mode”…”�”}”(hjH=h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj=ubjV)�”}”(hŒint ix”h]”(j)�”}”(hŒint”h]”hŒint”…”�”}”(hja=h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj]=ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo=h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj]=ubj®)�”}”(hŒix”h]”hŒix”…”�”}”(hj}=h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj]=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj=ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhj¨<h²hh³j¹<h´MŠubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj¤<h²hh³j¹<h´MŠubah}”(h]”jŸ<ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j¹<h´MŠhj¡<h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ7provide a CQ moderation object for the given RX profile”h]”hŒ7provide a CQ moderation object for the given RX profile”…”�”}”(hj§=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MŠhj¤=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj¡<h²hh³j¹<h´MŠubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj¿=jüj¿=jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒR**Parameters** ``u8 cq_period_mode`` CQ period mode ``int ix`` Profile index”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjÉ=h]”hŒ Parameters”…”�”}”(hjË=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÇ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MŽhjÃ=ubjM)�”}”(hhh]”(jR)�”}”(hŒ%``u8 cq_period_mode`` CQ period mode ”h]”(jX)�”}”(hŒ``u8 cq_period_mode``”h]”jœ)�”}”(hjè=h]”hŒu8 cq_period_mode”…”�”}”(hjê=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjæ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M‹hjâ=ubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode”h]”hŒCQ period mode”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jý=h´M‹hjþ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjâ=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jý=h´M‹hjß=ubjR)�”}”(hŒ``int ix`` Profile index”h]”(jX)�”}”(hŒ ``int ix``”h]”jœ)�”}”(hj!>h]”hŒint ix”…”�”}”(hj#>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M�hj>ubjr)�”}”(hhh]”hî)�”}”(hŒ Profile index”h]”hŒ Profile index”…”�”}”(hj:>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MŒhj7>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j6>h´M�hjß=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÃ=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ*net_dim_get_def_rx_moderation (C function)”Œc.net_dim_get_def_rx_moderation”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒEstruct dim_cq_moder net_dim_get_def_rx_moderation (u8 cq_period_mode)”h]”j)�”}”(hŒDstruct dim_cq_moder net_dim_get_def_rx_moderation(u8 cq_period_mode)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj{>h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjw>h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M‘ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰>h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjw>h²hh³jˆ>h´M‘ubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hjš>h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj—>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jœ>Œmodname”NŒ classname”•ñjNj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_def_rx_moderation”sbŒc.net_dim_get_def_rx_moderation”†”asbuh1hhjw>h²hh³jˆ>h´M‘ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»>h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjw>h²hh³jˆ>h´M‘ubj¨)�”}”(hŒnet_dim_get_def_rx_moderation”h]”j®)�”}”(hj¸>h]”hŒnet_dim_get_def_rx_moderation”…”�”}”(hjÍ>h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÉ>ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjw>h²hh³jˆ>h´M‘ubjP)�”}”(hŒ(u8 cq_period_mode)”h]”jV)�”}”(hŒu8 cq_period_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjë>h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjè>ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jí>Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j¶>Œc.net_dim_get_def_rx_moderation”†”asbuh1hhjä>ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ?h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjä>ubj®)�”}”(hŒcq_period_mode”h]”hŒcq_period_mode”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjä>ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjà>ubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjw>h²hh³jˆ>h´M‘ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjs>h²hh³jˆ>h´M‘ubah}”(h]”jn>ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jˆ>h´M‘hjp>h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ!provide the default RX moderation”h]”hŒ!provide the default RX moderation”…”�”}”(hjA?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M‘hj>?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjp>h²hh³jˆ>h´M‘ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjY?jüjY?jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ6**Parameters** ``u8 cq_period_mode`` CQ period mode”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjc?h]”hŒ Parameters”…”�”}”(hje?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hja?ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M•hj]?ubjM)�”}”(hhh]”jR)�”}”(hŒ$``u8 cq_period_mode`` CQ period mode”h]”(jX)�”}”(hŒ``u8 cq_period_mode``”h]”jœ)�”}”(hj‚?h]”hŒu8 cq_period_mode”…”�”}”(hj„?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj€?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M—hj|?ubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode”h]”hŒCQ period mode”…”�”}”(hj›?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M’hj˜?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj|?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j—?h´M—hjy?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj]?ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ&net_dim_get_tx_moderation (C function)”Œc.net_dim_get_tx_moderation”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒIstruct dim_cq_moder net_dim_get_tx_moderation (u8 cq_period_mode, int ix)”h]”j)�”}”(hŒHstruct dim_cq_moder net_dim_get_tx_moderation(u8 cq_period_mode, int ix)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÜ?h²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjØ?h²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M—ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê?h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjØ?h²hh³jé?h´M—ubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hjû?h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjø?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jý?Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_tx_moderation”sbŒc.net_dim_get_tx_moderation”†”asbuh1hhjØ?h²hh³jé?h´M—ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjØ?h²hh³jé?h´M—ubj¨)�”}”(hŒnet_dim_get_tx_moderation”h]”j®)�”}”(hj@h]”hŒnet_dim_get_tx_moderation”…”�”}”(hj.@h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj*@ubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjØ?h²hh³jé?h´M—ubjP)�”}”(hŒ(u8 cq_period_mode, int ix)”h]”(jV)�”}”(hŒu8 cq_period_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjL@h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjI@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jN@Œmodname”NŒ classname”Nj¦j©)�”}”j¬]”j@Œc.net_dim_get_tx_moderation”†”asbuh1hhjE@ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj@h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjE@ubj®)�”}”(hŒcq_period_mode”h]”hŒcq_period_mode”…”�”}”(hjx@h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjE@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjA@ubjV)�”}”(hŒint ix”h]”(j)�”}”(hŒint”h]”hŒint”…”�”}”(hj‘@h²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhj�@ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ@h²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj�@ubj®)�”}”(hŒix”h]”hŒix”…”�”}”(hj­@h²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj�@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjA@ubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjØ?h²hh³jé?h´M—ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjÔ?h²hh³jé?h´M—ubah}”(h]”jÏ?ah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jé?h´M—hjÑ?h²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ7provide a CQ moderation object for the given TX profile”h]”hŒ7provide a CQ moderation object for the given TX profile”…”�”}”(hj×@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M—hjÔ@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjÑ?h²hh³jé?h´M—ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjï@jüjï@jý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒR**Parameters** ``u8 cq_period_mode`` CQ period mode ``int ix`` Profile index”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjù@h]”hŒ Parameters”…”�”}”(hjû@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj÷@ubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M›hjó@ubjM)�”}”(hhh]”(jR)�”}”(hŒ%``u8 cq_period_mode`` CQ period mode ”h]”(jX)�”}”(hŒ``u8 cq_period_mode``”h]”jœ)�”}”(hjAh]”hŒu8 cq_period_mode”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M˜hjAubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode”h]”hŒCQ period mode”…”�”}”(hj1Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j-Ah´M˜hj.Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j-Ah´M˜hjAubjR)�”}”(hŒ``int ix`` Profile index”h]”(jX)�”}”(hŒ ``int ix``”h]”jœ)�”}”(hjQAh]”hŒint ix”…”�”}”(hjSAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjOAubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MšhjKAubjr)�”}”(hhh]”hî)�”}”(hŒ Profile index”h]”hŒ Profile index”…”�”}”(hjjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M™hjgAubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjKAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jfAh´MšhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjó@ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒ*net_dim_get_def_tx_moderation (C function)”Œc.net_dim_get_def_tx_moderation”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒEstruct dim_cq_moder net_dim_get_def_tx_moderation (u8 cq_period_mode)”h]”j)�”}”(hŒDstruct dim_cq_moder net_dim_get_def_tx_moderation(u8 cq_period_mode)”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hj«Ah²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj§Ah²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´Mžubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹Ah²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj§Ah²hh³j¸Ah´Mžubh)�”}”(hhh]”j®)�”}”(hŒ dim_cq_moder”h]”hŒ dim_cq_moder”…”�”}”(hjÊAh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjÇAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jÌAŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�Œnet_dim_get_def_tx_moderation”sbŒc.net_dim_get_def_tx_moderation”†”asbuh1hhj§Ah²hh³j¸Ah´Mžubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëAh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj§Ah²hh³j¸Ah´Mžubj¨)�”}”(hŒnet_dim_get_def_tx_moderation”h]”j®)�”}”(hjèAh]”hŒnet_dim_get_def_tx_moderation”…”�”}”(hjýAh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjùAubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hj§Ah²hh³j¸Ah´MžubjP)�”}”(hŒ(u8 cq_period_mode)”h]”jV)�”}”(hŒu8 cq_period_mode”h]”(h)�”}”(hhh]”j®)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jBŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”jæAŒc.net_dim_get_def_tx_moderation”†”asbuh1hhjBubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9Bh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjBubj®)�”}”(hŒcq_period_mode”h]”hŒcq_period_mode”…”�”}”(hjGBh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjBubah}”(h]”h ]”h"]”h$]”h&]”j juh1jOhj§Ah²hh³j¸Ah´Mžubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhj£Ah²hh³j¸Ah´Mžubah}”(h]”jžAah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j¸Ah´Mžhj Ah²hubjÚ)�”}”(hhh]”hî)�”}”(hŒ!provide the default TX moderation”h]”hŒ!provide the default TX moderation”…”�”}”(hjqBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MžhjnBh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhj Ah²hh³j¸Ah´Mžubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûj‰Bjüj‰Bjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hŒ6**Parameters** ``u8 cq_period_mode`` CQ period mode”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj“Bh]”hŒ Parameters”…”�”}”(hj•Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj‘Bubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¢hj�BubjM)�”}”(hhh]”jR)�”}”(hŒ$``u8 cq_period_mode`` CQ period mode”h]”(jX)�”}”(hŒ``u8 cq_period_mode``”h]”jœ)�”}”(hj²Bh]”hŒu8 cq_period_mode”…”�”}”(hj´Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj°Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¤hj¬Bubjr)�”}”(hhh]”hî)�”}”(hŒCQ period mode”h]”hŒCQ period mode”…”�”}”(hjËBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MŸhjÈBubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj¬Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jÇBh´M¤hj©Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj�Bubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒnet_dim (C function)”Œ c.net_dim”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒCvoid net_dim (struct dim *dim, const struct dim_sample *end_sample)”h]”j)�”}”(hŒBvoid net_dim(struct dim *dim, const struct dim_sample *end_sample)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj Ch²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjCh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¤ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjCh²hh³jCh´M¤ubj¨)�”}”(hŒnet_dim”h]”j®)�”}”(hŒnet_dim”h]”hŒnet_dim”…”�”}”(hj-Ch²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj)Cubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjCh²hh³jCh´M¤ubjP)�”}”(hŒ6(struct dim *dim, const struct dim_sample *end_sample)”h]”(jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjICh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjECubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjVCh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjECubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjgCh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjdCubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jiCŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�j/CsbŒ c.net_dim”†”asbuh1hhjECubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡Ch²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjECubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj•Ch²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjECubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj¢Ch²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjECubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjACubjV)�”}”(hŒ#const struct dim_sample *end_sample”h]”(j…)�”}”(hj¥3h]”hŒconst”…”�”}”(hj»Ch²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj·Cubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈCh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj·Cubj…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjÖCh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hj·Cubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãCh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj·Cubh)�”}”(hhh]”j®)�”}”(hŒ dim_sample”h]”hŒ dim_sample”…”�”}”(hjôCh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjñCubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jöCŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”jƒCŒ c.net_dim”†”asbuh1hhj·Cubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hj·Cubj«)�”}”(hj®h]”hŒ*”…”�”}”(hj Dh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhj·Cubj®)�”}”(hŒ end_sample”h]”hŒ end_sample”…”�”}”(hj-Dh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj·Cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhjACubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjCh²hh³jCh´M¤ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjCh²hh³jCh´M¤ubah}”(h]”jÿBah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³jCh´M¤hjCh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒmain DIM algorithm entry point”h]”hŒmain DIM algorithm entry point”…”�”}”(hjWDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¤hjTDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjCh²hh³jCh´M¤ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjoDjüjoDjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hX**Parameters** ``struct dim *dim`` DIM instance information ``const struct dim_sample *end_sample`` Current data measurement **Description** Called by the consumer. This is the main logic of the algorithm, where data is processed in order to decide on next required action.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hjyDh]”hŒ Parameters”…”�”}”(hj{Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjwDubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¨hjsDubjM)�”}”(hhh]”(jR)�”}”(hŒ-``struct dim *dim`` DIM instance information ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hj˜Dh]”hŒstruct dim *dim”…”�”}”(hjšDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj–Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¥hj’Dubjr)�”}”(hhh]”hî)�”}”(hŒDIM instance information”h]”hŒDIM instance information”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j­Dh´M¥hj®Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj’Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j­Dh´M¥hj�DubjR)�”}”(hŒA``const struct dim_sample *end_sample`` Current data measurement ”h]”(jX)�”}”(hŒ'``const struct dim_sample *end_sample``”h]”jœ)�”}”(hjÑDh]”hŒ#const struct dim_sample *end_sample”…”�”}”(hjÓDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÏDubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¦hjËDubjr)�”}”(hhh]”hî)�”}”(hŒCurrent data measurement”h]”hŒCurrent data measurement”…”�”}”(hjêDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jæDh´M¦hjçDubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjËDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jæDh´M¦hj�Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjsDubhî)�”}”(hŒ**Description**”h]”j )�”}”(hj Eh]”hŒ Description”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj Eubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¨hjsDubhî)�”}”(hŒ„Called by the consumer. This is the main logic of the algorithm, where data is processed in order to decide on next required action.”h]”hŒ„Called by the consumer. This is the main logic of the algorithm, where data is processed in order to decide on next required action.”…”�”}”(hj"Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M§hjsDubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubjc)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(joŒrdma_dim (C function)”Œ c.rdma_dim”hNt”auh1jbhjQh²hh³Nh´Nubjt)�”}”(hhh]”(jy)�”}”(hŒ0void rdma_dim (struct dim *dim, u64 completions)”h]”j)�”}”(hŒ/void rdma_dim(struct dim *dim, u64 completions)”h]”(j)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjQEh²hh³Nh´Nubah}”(h]”h ]”j$ah"]”h$]”h&]”uh1jhjMEh²hh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¸ubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`Eh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjMEh²hh³j_Eh´M¸ubj¨)�”}”(hŒrdma_dim”h]”j®)�”}”(hŒrdma_dim”h]”hŒrdma_dim”…”�”}”(hjrEh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjnEubah}”(h]”h ]”(jÀjÁeh"]”h$]”h&]”j juh1j§hjMEh²hh³j_Eh´M¸ubjP)�”}”(hŒ"(struct dim *dim, u64 completions)”h]”(jV)�”}”(hŒstruct dim *dim”h]”(j…)�”}”(hjˆh]”hŒstruct”…”�”}”(hjŽEh²hh³Nh´Nubah}”(h]”h ]”j‘ah"]”h$]”h&]”uh1j„hjŠEubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›Eh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjŠEubh)�”}”(hhh]”j®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hj¬Eh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hj©Eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”j®EŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”j—)�”}”j�jtEsbŒ c.rdma_dim”†”asbuh1hhjŠEubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌEh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjŠEubj«)�”}”(hj®h]”hŒ*”…”�”}”(hjÚEh²hh³Nh´Nubah}”(h]”h ]”j·ah"]”h$]”h&]”uh1jªhjŠEubj®)�”}”(hŒdim”h]”hŒdim”…”�”}”(hjçEh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjŠEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj†EubjV)�”}”(hŒu64 completions”h]”(h)�”}”(hhh]”j®)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j¨Œreftype”j�Œ reftarget”jFŒmodname”NŒ classname”Nj¦j©)�”}”j¬]”jÈEŒ c.rdma_dim”†”asbuh1hhjüEubj—)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!Fh²hh³Nh´Nubah}”(h]”h ]”j£ah"]”h$]”h&]”uh1j–hjüEubj®)�”}”(hŒ completions”h]”hŒ completions”…”�”}”(hj/Fh²hh³Nh´Nubah}”(h]”h ]”j¹ah"]”h$]”h&]”uh1j­hjüEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj juh1jUhj†Eubeh}”(h]”h ]”h"]”h$]”h&]”j juh1jOhjMEh²hh³j_Eh´M¸ubeh}”(h]”h ]”h"]”h$]”h&]”j jjˈuh1j~jÌjÍhjIEh²hh³j_Eh´M¸ubah}”(h]”jDEah ]”(jÑjÒeh"]”h$]”h&]”jÖˆj×)jØhuh1jxh³j_Eh´M¸hjFEh²hubjÚ)�”}”(hhh]”hî)�”}”(hŒRuns the adaptive moderation.”h]”hŒRuns the adaptive moderation.”…”�”}”(hjYFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¸hjVFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÙhjFEh²hh³j_Eh´M¸ubeh}”(h]”h ]”(j¨Œfunction”eh"]”h$]”h&]”júj¨jûjqFjüjqFjý‰jþ‰jÿ‰uh1jsh²hhjQh³Nh´Nubj)�”}”(hXc**Parameters** ``struct dim *dim`` The moderation struct. ``u64 completions`` The number of completions collected in this round. **Description** Each call to rdma_dim takes the latest amount of completions that have been collected and counts them as a new event. Once enough events have been collected the algorithm decides a new moderation level.”h]”(hî)�”}”(hŒ**Parameters**”h]”j )�”}”(hj{Fh]”hŒ Parameters”…”�”}”(hj}Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjyFubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¼hjuFubjM)�”}”(hhh]”(jR)�”}”(hŒ+``struct dim *dim`` The moderation struct. ”h]”(jX)�”}”(hŒ``struct dim *dim``”h]”jœ)�”}”(hjšFh]”hŒstruct dim *dim”…”�”}”(hjœFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj˜Fubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¹hj”Fubjr)�”}”(hhh]”hî)�”}”(hŒThe moderation struct.”h]”hŒThe moderation struct.”…”�”}”(hj³Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³j¯Fh´M¹hj°Fubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj”Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³j¯Fh´M¹hj‘FubjR)�”}”(hŒG``u64 completions`` The number of completions collected in this round. ”h]”(jX)�”}”(hŒ``u64 completions``”h]”jœ)�”}”(hjÓFh]”hŒu64 completions”…”�”}”(hjÕFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÑFubah}”(h]”h ]”h"]”h$]”h&]”uh1jWh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´MºhjÍFubjr)�”}”(hhh]”hî)�”}”(hŒ2The number of completions collected in this round.”h]”hŒ2The number of completions collected in this round.”…”�”}”(hjìFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³jèFh´MºhjéFubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjÍFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jQh³jèFh´Mºhj‘Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1jLhjuFubhî)�”}”(hŒ**Description**”h]”j )�”}”(hjGh]”hŒ Description”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj Gubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M¼hjuFubhî)�”}”(hŒÊEach call to rdma_dim takes the latest amount of completions that have been collected and counts them as a new event. Once enough events have been collected the algorithm decides a new moderation level.”h]”hŒÊEach call to rdma_dim takes the latest amount of completions that have been collected and counts them as a new event. Once enough events have been collected the algorithm decides a new moderation level.”…”�”}”(hj$Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1híh³ŒW/var/lib/git/docbuild/linux/Documentation/networking/net_dim:217: ./include/linux/dim.h”h´M»hjuFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jhjQh²hh³Nh´Nubeh}”(h]”j?ah ]”h"]”Œ.dynamic interrupt moderation (dim) library api”ah$]”h&]”uh1hµhh·h²hh³hÌh´K×ubeh}”(h]”jTah ]”h"]”Œ6net dim - generic network dynamic interrupt moderation”ah$]”h&]”uh1hµhhh²hh³hÌh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÌuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jkGŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÌŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jEGjTjdj`jŠjsj°j•j{j·jÛjÙjjûjNjj>Gj?uŒ nametypes”}”(jEG‰jd‰jЉj°‰j{‰jÛ‰j‰jN‰j>G‰uh}”(jTh·j`j'jsjgj•j�j·j³jÙj~jûjÞjjj?jQjqjzjŽj“j& j+ j j jjj§j¬j÷jüjnjsjj"j“j˜j jjÇjÌj"!j'!j”#j™#jï$jô$jG'jL'jŸ)j¤)j{+j€+jW-j\-j×.jÜ.jX0j]0jÙ1jÞ1jZ3j_3jc6jh6jA9jF9jŸ<j¤<jn>js>jÏ?jÔ?jžAj£AjÿBjCjDEjIEhËjFjmjdj�j†j±j¨jÓjÊjõjìjjj9j0uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jyGKs…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.