€•èrŒ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”ŒA/translations/zh_CN/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/zh_TW/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/it_IT/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/ja_JP/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/ko_KR/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/pt_BR/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”ŒA/translations/sp_SP/networking/device_drivers/ethernet/intel/idpf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ!SPDX-License-Identifier: GPL-2.0+”h]”hŒ!SPDX-License-Identifier: GPL-2.0+”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/intel/idpf.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒJidpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function”h]”hŒJidpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œid1”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒ=Intel idpf Linux driver. Copyright(C) 2023 Intel Corporation.”h]”hŒ=Intel idpf Linux driver. Copyright(C) 2023 Intel Corporation.”…””}”(hháh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KhhÊh²hubhŒtopic”“”)”}”(hŒ Contents ”h]”(hÎ)”}”(hŒContents”h]”hŒContents”…””}”(hhõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhñh³hÇh´K ubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hhh]”(hà)”}”(hhh]”hŒ reference”“”)”}”(hhh]”hŒJidpf Linux* Base Driver for the Intel(R) Infrastructure Data Path Function”…””}”(hjh²hh³Nh´Nubah}”(h]”hÞah ]”h"]”h$]”h&]”Œrefid”ŒHidpf-linux-base-driver-for-the-intel-r-infrastructure-data-path-function”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhj ubj)”}”(hhh]”(j )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒIdentifying Your Adapter”…””}”(hj0h²hh³Nh´Nubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”Œrefid”Œidentifying-your-adapter”uh1jhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubj )”}”(hhh]”(hà)”}”(hhh]”j)”}”(hhh]”hŒ&Additional Features and Configurations”…””}”(hjRh²hh³Nh´Nubah}”(h]”Œid3”ah ]”h"]”h$]”h&]”Œrefid”Œ&additional-features-and-configurations”uh1jhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjLubj)”}”(hhh]”(j )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒethtool”…””}”(hjqh²hh³Nh´Nubah}”(h]”Œid4”ah ]”h"]”h$]”h&]”Œrefid”Œethtool”uh1jhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhubj )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒViewing Link Messages”…””}”(hj“h²hh³Nh´Nubah}”(h]”Œid5”ah ]”h"]”h$]”h&]”Œrefid”Œviewing-link-messages”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhubj )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒ Jumbo Frames”…””}”(hjµh²hh³Nh´Nubah}”(h]”Œid6”ah ]”h"]”h$]”h&]”Œrefid”Œ jumbo-frames”uh1jhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubj )”}”(hhh]”(hà)”}”(hhh]”j)”}”(hhh]”hŒPerformance Optimization”…””}”(hjãh²hh³Nh´Nubah}”(h]”Œid7”ah ]”h"]”h$]”h&]”Œrefid”Œperformance-optimization”uh1jhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjÝubj)”}”(hhh]”(j )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒInterrupt Rate Limiting”…””}”(hjh²hh³Nh´Nubah}”(h]”Œid8”ah ]”h"]”h$]”h&]”Œrefid”Œinterrupt-rate-limiting”uh1jhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùubj )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒVirtualized Environments”…””}”(hj$h²hh³Nh´Nubah}”(h]”Œid9”ah ]”h"]”h$]”h&]”Œrefid”Œvirtualized-environments”uh1jhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubj )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒSupport”…””}”(hjRh²hh³Nh´Nubah}”(h]”Œid10”ah ]”h"]”h$]”h&]”Œrefid”Œsupport”uh1jhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubj )”}”(hhh]”hà)”}”(hhh]”j)”}”(hhh]”hŒ Trademarks”…””}”(hjth²hh³Nh´Nubah}”(h]”Œid11”ah ]”h"]”h$]”h&]”Œrefid”Œ trademarks”uh1jhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hßhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhñh²hh³Nh´Nubeh}”(h]”Œcontents”ah ]”Œcontents”ah"]”Œcontents”ah$]”h&]”uh1hïh³hÇh´K hhÊh²hubhà)”}”(hŒŽThe idpf driver serves as both the Physical Function (PF) and Virtual Function (VF) driver for the Intel(R) Infrastructure Data Path Function.”h]”hŒŽThe idpf driver serves as both the Physical Function (PF) and Virtual Function (VF) driver for the Intel(R) Infrastructure Data Path Function.”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K hhÊh²hubhà)”}”(hŒ@Driver information can be obtained using ethtool, lspci, and ip.”h]”hŒ@Driver information can be obtained using ethtool, lspci, and ip.”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KhhÊh²hubhà)”}”(hŒ¦For questions related to hardware requirements, refer to the documentation supplied with your Intel adapter. All hardware requirements listed apply to use with Linux.”h]”hŒ¦For questions related to hardware requirements, refer to the documentation supplied with your Intel adapter. All hardware requirements listed apply to use with Linux.”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒIdentifying Your Adapter”h]”hŒIdentifying Your Adapter”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj9uh1hÍhjÕh²hh³hÇh´Kubhà)”}”(hŒ›For information on how to identify your adapter, and for the latest Intel network drivers, refer to the Intel Support website: http://www.intel.com/support”h]”(hŒFor information on how to identify your adapter, and for the latest Intel network drivers, refer to the Intel Support website: ”…””}”(hjæh²hh³Nh´Nubj)”}”(hŒhttp://www.intel.com/support”h]”hŒhttp://www.intel.com/support”…””}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jðuh1jhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KhjÕh²hubeh}”(h]”j?ah ]”h"]”Œidentifying your adapter”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ&Additional Features and Configurations”h]”hŒ&Additional Features and Configurations”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj[uh1hÍhj h²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒethtool”h]”hŒethtool”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝjzuh1hÍhjh²hh³hÇh´K!ubhà)”}”(hX#The driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. The latest ethtool version is required for this functionality. If you don't have one yet, you can obtain it at: https://kernel.org/pub/software/network/ethtool/”h]”(hŒõThe driver utilizes the ethtool interface for driver configuration and diagnostics, as well as displaying statistical information. The latest ethtool version is required for this functionality. If you don’t have one yet, you can obtain it at: ”…””}”(hj,h²hh³Nh´Nubj)”}”(hŒ0https://kernel.org/pub/software/network/ethtool/”h]”hŒ0https://kernel.org/pub/software/network/ethtool/”…””}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j6uh1jhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K"hjh²hubeh}”(h]”j€ah ]”h"]”Œethtool”ah$]”h&]”uh1hÈhj h²hh³hÇh´K!ubhÉ)”}”(hhh]”(hÎ)”}”(hŒViewing Link Messages”h]”hŒViewing Link Messages”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝjœuh1hÍhjPh²hh³hÇh´K*ubhà)”}”(hŒÓLink messages will not be displayed to the console if the distribution is restricting system messages. In order to see network driver link messages on your console, set dmesg to eight by entering the following::”h]”hŒÒLink messages will not be displayed to the console if the distribution is restricting system messages. In order to see network driver link messages on your console, set dmesg to eight by entering the following:”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K+hjPh²hubhŒ literal_block”“”)”}”(hŒ # dmesg -n 8”h]”hŒ # dmesg -n 8”…””}”hjqsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´K/hjPh²hubhŒnote”“”)”}”(hŒ)This setting is not saved across reboots.”h]”hà)”}”(hjƒh]”hŒ)This setting is not saved across reboots.”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K2hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjPh²hh³hÇh´Nubeh}”(h]”j¢ah ]”h"]”Œviewing link messages”ah$]”h&]”uh1hÈhj h²hh³hÇh´K*ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Jumbo Frames”h]”hŒ Jumbo Frames”…””}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj¾uh1hÍhjŸh²hh³hÇh´K6ubhà)”}”(hŒJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) to a value larger than the default value of 1500.”h]”hŒJumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU) to a value larger than the default value of 1500.”…””}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K7hjŸh²hubhà)”}”(hŒtUse the ip command to increase the MTU size. For example, enter the following where is the interface number::”h]”hŒsUse the ip command to increase the MTU size. For example, enter the following where is the interface number:”…””}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K:hjŸh²hubjp)”}”(hŒ=# ip link set mtu 9000 dev # ip link set up dev ”h]”hŒ=# ip link set mtu 9000 dev # ip link set up dev ”…””}”hjÌsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´K=hjŸh²hubj€)”}”(hŒqThe maximum MTU setting for jumbo frames is 9706. This corresponds to the maximum jumbo frame size of 9728 bytes.”h]”hà)”}”(hŒqThe maximum MTU setting for jumbo frames is 9706. This corresponds to the maximum jumbo frame size of 9728 bytes.”h]”hŒqThe maximum MTU setting for jumbo frames is 9706. This corresponds to the maximum jumbo frame size of 9728 bytes.”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KAhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸh²hh³hÇh´Nubj€)”}”(hŒ­This driver will attempt to use multiple page sized buffers to receive each jumbo packet. This should help to avoid buffer starvation issues when allocating receive packets.”h]”hà)”}”(hŒ­This driver will attempt to use multiple page sized buffers to receive each jumbo packet. This should help to avoid buffer starvation issues when allocating receive packets.”h]”hŒ­This driver will attempt to use multiple page sized buffers to receive each jumbo packet. This should help to avoid buffer starvation issues when allocating receive packets.”…””}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KEhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸh²hh³hÇh´Nubj€)”}”(hŒ¾Packet loss may have a greater impact on throughput when you use jumbo frames. If you observe a drop in performance after enabling jumbo frames, enabling flow control may mitigate the issue.”h]”hà)”}”(hŒ¾Packet loss may have a greater impact on throughput when you use jumbo frames. If you observe a drop in performance after enabling jumbo frames, enabling flow control may mitigate the issue.”h]”hŒ¾Packet loss may have a greater impact on throughput when you use jumbo frames. If you observe a drop in performance after enabling jumbo frames, enabling flow control may mitigate the issue.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KJhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸh²hh³hÇh´Nubeh}”(h]”jÄah ]”h"]”Œ jumbo frames”ah$]”h&]”uh1hÈhj h²hh³hÇh´K6ubeh}”(h]”jaah ]”h"]”Œ&additional features and configurations”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒPerformance Optimization”h]”hŒPerformance Optimization”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝjìuh1hÍhj0h²hh³hÇh´KPubhà)”}”(hŒžDriver defaults are meant to fit a wide variety of workloads, but if further optimization is required, we recommend experimenting with the following settings.”h]”hŒžDriver defaults are meant to fit a wide variety of workloads, but if further optimization is required, we recommend experimenting with the following settings.”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KQhj0h²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒInterrupt Rate Limiting”h]”hŒInterrupt Rate Limiting”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj uh1hÍhjOh²hh³hÇh´KWubhà)”}”(hŒýThis driver supports an adaptive interrupt throttle rate (ITR) mechanism that is tuned for general workloads. The user can customize the interrupt rate control for specific workloads, via ethtool, adjusting the number of microseconds between interrupts.”h]”hŒýThis driver supports an adaptive interrupt throttle rate (ITR) mechanism that is tuned for general workloads. The user can customize the interrupt rate control for specific workloads, via ethtool, adjusting the number of microseconds between interrupts.”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KXhjOh²hubhà)”}”(hŒDTo set the interrupt rate manually, you must disable adaptive mode::”h]”hŒCTo set the interrupt rate manually, you must disable adaptive mode:”…””}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K]hjOh²hubjp)”}”(hŒ3# ethtool -C adaptive-rx off adaptive-tx off”h]”hŒ3# ethtool -C adaptive-rx off adaptive-tx off”…””}”hj|sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´K_hjOh²hubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hX\For lower CPU utilization: - Disable adaptive ITR and lower Rx and Tx interrupts. The examples below affect every queue of the specified interface. - Setting rx-usecs and tx-usecs to 80 will limit interrupts to about 12,500 interrupts per second per queue:: # ethtool -C adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80 ”h]”(hŒterm”“”)”}”(hŒFor lower CPU utilization:”h]”hŒFor lower CPU utilization:”…””}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j•h³hÇh´Kihj‘ubhŒ definition”“”)”}”(hhh]”j)”}”(hhh]”(j )”}”(hŒwDisable adaptive ITR and lower Rx and Tx interrupts. The examples below affect every queue of the specified interface. ”h]”hà)”}”(hŒvDisable adaptive ITR and lower Rx and Tx interrupts. The examples below affect every queue of the specified interface.”h]”hŒvDisable adaptive ITR and lower Rx and Tx interrupts. The examples below affect every queue of the specified interface.”…””}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´Kbhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubj )”}”(hŒ½Setting rx-usecs and tx-usecs to 80 will limit interrupts to about 12,500 interrupts per second per queue:: # ethtool -C adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80 ”h]”(hà)”}”(hŒkSetting rx-usecs and tx-usecs to 80 will limit interrupts to about 12,500 interrupts per second per queue::”h]”hŒjSetting rx-usecs and tx-usecs to 80 will limit interrupts to about 12,500 interrupts per second per queue:”…””}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KehjÅubjp)”}”(hŒK# ethtool -C adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80”h]”hŒK# ethtool -C adaptive-rx off adaptive-tx off rx-usecs 80 tx-usecs 80”…””}”hj×sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´KhhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jh³hÇh´Kbhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KihjŒubj)”}”(hŒ¿For reduced latency: - Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0 using ethtool:: # ethtool -C adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0 ”h]”(j–)”}”(hŒFor reduced latency:”h]”hŒFor reduced latency:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j•h³hÇh´Kphjÿubj¦)”}”(hhh]”j)”}”(hhh]”j )”}”(hŒ¢Disable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0 using ethtool:: # ethtool -C adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0 ”h]”(hà)”}”(hŒRDisable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0 using ethtool::”h]”hŒQDisable adaptive ITR and ITR by setting rx-usecs and tx-usecs to 0 using ethtool:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´Klhjubjp)”}”(hŒI# ethtool -C adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0”h]”hŒI# ethtool -C adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0”…””}”hj)sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´Kohjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”jñjòuh1jh³hÇh´Klhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KphjŒh²hubj)”}”(hXÖPer-queue interrupt rate settings: - The following examples are for queues 1 and 3, but you can adjust other queues. - To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or about 100,000 interrupts/second, for queues 1 and 3:: # ethtool --per-queue queue_mask 0xa --coalesce adaptive-rx off rx-usecs 10 - To show the current coalesce settings for queues 1 and 3:: # ethtool --per-queue queue_mask 0xa --show-coalesce ”h]”(j–)”}”(hŒ"Per-queue interrupt rate settings:”h]”hŒ"Per-queue interrupt rate settings:”…””}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j•h³hÇh´K€hjOubj¦)”}”(hhh]”j)”}”(hhh]”(j )”}”(hŒPThe following examples are for queues 1 and 3, but you can adjust other queues. ”h]”hà)”}”(hŒOThe following examples are for queues 1 and 3, but you can adjust other queues.”h]”hŒOThe following examples are for queues 1 and 3, but you can adjust other queues.”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´Kshjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubj )”}”(hŒÕTo disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or about 100,000 interrupts/second, for queues 1 and 3:: # ethtool --per-queue queue_mask 0xa --coalesce adaptive-rx off rx-usecs 10 ”h]”(hà)”}”(hŒ|To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or about 100,000 interrupts/second, for queues 1 and 3::”h]”hŒ{To disable Rx adaptive ITR and set static Rx ITR to 10 microseconds or about 100,000 interrupts/second, for queues 1 and 3:”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´Kvhjubjp)”}”(hŒR# ethtool --per-queue queue_mask 0xa --coalesce adaptive-rx off rx-usecs 10”h]”hŒR# ethtool --per-queue queue_mask 0xa --coalesce adaptive-rx off rx-usecs 10”…””}”hj‘sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´Kyhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubj )”}”(hŒ|To show the current coalesce settings for queues 1 and 3:: # ethtool --per-queue queue_mask 0xa --show-coalesce ”h]”(hà)”}”(hŒ:To show the current coalesce settings for queues 1 and 3::”h]”hŒ9To show the current coalesce settings for queues 1 and 3:”…””}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K|hj¥ubjp)”}”(hŒ;# ethtool --per-queue queue_mask 0xa --show-coalesce”h]”hŒ;# ethtool --per-queue queue_mask 0xa --show-coalesce”…””}”hj·sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´K~hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubeh}”(h]”h ]”h"]”h$]”h&]”jñjòuh1jh³hÇh´Kshjaubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K€hjŒh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŠhjOh²hh³Nh´Nubeh}”(h]”jah ]”h"]”Œinterrupt rate limiting”ah$]”h&]”uh1hÈhj0h²hh³hÇh´KWubhÉ)”}”(hhh]”(hÎ)”}”(hŒVirtualized Environments”h]”hŒVirtualized Environments”…””}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj-uh1hÍhjêh²hh³hÇh´Kƒubhà)”}”(hŒrIn addition to the other suggestions in this section, the following may be helpful to optimize performance in VMs.”h]”hŒrIn addition to the other suggestions in this section, the following may be helpful to optimize performance in VMs.”…””}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K„hjêh²hubhŒ block_quote”“”)”}”(hXš- Using the appropriate mechanism (vcpupin) in the VM, pin the CPUs to individual LCPUs, making sure to use a set of CPUs included in the device's local_cpulist: /sys/class/net//device/local_cpulist. - Configure as many Rx/Tx queues in the VM as available. (See the idpf driver documentation for the number of queues supported.) For example:: # ethtool -L rx tx ”h]”j)”}”(hhh]”(j )”}”(hŒÌUsing the appropriate mechanism (vcpupin) in the VM, pin the CPUs to individual LCPUs, making sure to use a set of CPUs included in the device's local_cpulist: /sys/class/net//device/local_cpulist. ”h]”hà)”}”(hŒËUsing the appropriate mechanism (vcpupin) in the VM, pin the CPUs to individual LCPUs, making sure to use a set of CPUs included in the device's local_cpulist: /sys/class/net//device/local_cpulist.”h]”hŒÍUsing the appropriate mechanism (vcpupin) in the VM, pin the CPUs to individual LCPUs, making sure to use a set of CPUs included in the device’s local_cpulist: /sys/class/net//device/local_cpulist.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K‡hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj )”}”(hŒÁConfigure as many Rx/Tx queues in the VM as available. (See the idpf driver documentation for the number of queues supported.) For example:: # ethtool -L rx tx ”h]”(hà)”}”(hŒŒConfigure as many Rx/Tx queues in the VM as available. (See the idpf driver documentation for the number of queues supported.) For example::”h]”hŒ‹Configure as many Rx/Tx queues in the VM as available. (See the idpf driver documentation for the number of queues supported.) For example:”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K‹hj*ubjp)”}”(hŒ/# ethtool -L rx tx ”h]”hŒ/# ethtool -L rx tx ”…””}”hj<sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1joh³hÇh´KŽhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”jñjòuh1jh³hÇh´K‡hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K‡hjêh²hubeh}”(h]”j3ah ]”h"]”Œvirtualized environments”ah$]”h&]”uh1hÈhj0h²hh³hÇh´Kƒubeh}”(h]”jòah ]”h"]”Œperformance optimization”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KPubhÉ)”}”(hhh]”(hÎ)”}”(hŒSupport”h]”hŒSupport”…””}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj[uh1hÍhjjh²hh³hÇh´K’ubhà)”}”(hŒZFor general information, go to the Intel support website at: http://www.intel.com/support/”h]”(hŒ=For general information, go to the Intel support website at: ”…””}”(hj{h²hh³Nh´Nubj)”}”(hŒhttp://www.intel.com/support/”h]”hŒhttp://www.intel.com/support/”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j…uh1jhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K“hjjh²hubhà)”}”(hŒÀIf an issue is identified with the released source code on a supported kernel with a supported adapter, email the specific information related to the issue to intel-wired-lan@lists.osuosl.org.”h]”(hŒŸIf an issue is identified with the released source code on a supported kernel with a supported adapter, email the specific information related to the issue to ”…””}”(hj˜h²hh³Nh´Nubj)”}”(hŒ intel-wired-lan@lists.osuosl.org”h]”hŒ intel-wired-lan@lists.osuosl.org”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ'mailto:intel-wired-lan@lists.osuosl.org”uh1jhj˜ubhŒ.”…””}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K–hjjh²hubeh}”(h]”jaah ]”h"]”Œsupport”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K’ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Trademarks”h]”hŒ Trademarks”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”hÝj}uh1hÍhjÁh²hh³hÇh´Kœubhà)”}”(hŒ‚Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and/or other countries.”h]”hŒ‚Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and/or other countries.”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´KhjÁh²hubj)”}”(hhh]”j )”}”(hŒ@Other names and brands may be claimed as the property of others.”h]”hà)”}”(hjåh]”hŒ@Other names and brands may be claimed as the property of others.”…””}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hßh³hÇh´K hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàh²hh³hÇh´Nubah}”(h]”h ]”h"]”h$]”h&]”jñŒ*”uh1jh³hÇh´K hjÁh²hubeh}”(h]”jƒah ]”h"]”Œ trademarks”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kœubeh}”(h]”j ah ]”h"]”ŒJidpf linux* base driver for the intel(r) infrastructure data path function”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”j2Œ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”}”(j j j¨j¤jj?j-jajMj€jœj¢j&jÄjgjòjçjj`j3j¾jajjƒuŒ nametypes”}”(j ‰j¨‰j‰j-‰jM‰jœ‰j&‰jg‰jç‰j`‰j¾‰j‰uh}”(j hÊj¤hñj?jÕjaj j€jj¢jPjÄjŸjòj0jjOj3jêjajjjƒjÁhÞjj9j0j[jRjzjqjœj“j¾jµjìjãj jj-j$j[jRj}jtuŒ 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”“”}”j@K s…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.