The optimal values of several transmission & reception related parameters, such as burst sizes, descriptor ring sizes, and number of queues, varies between different network interface devices. This patchset allows individual PMDs to specify their preferred parameter values, and if so indicated by an application, for them to be used automatically by the ethdev layer.
rte_eth_dev_configure() has been changed so that specifying zero for both nb_rx_q AND nb_tx_q causes it to use driver preferred values, and if these are not available, falls back to EAL defaults. Setting one (but not both) to zero does not cause the use of defaults, as having one of them zeroed is a valid setup. This patchset includes per-PMD values for e1000 and i40e but it is expected that subsequent patchsets will cover other PMDs. A deprecation notice covering the API/ABI change is in place. Changes in v5: * uint_16_t corrected to uint16_t Changes in v4: * Added API/ABI change documentation * Rebased to 78f5a2e93d74 Changes in v3: * Changed formatting around new rte_eth_dev_info fields * Added Doxygen documentation to struct rte_eth_dev_portconf * Testpmd "port config all burst 0" and --burst=0 uses PMD Rx burst recommendations. * Added to release notes * Rebased to 8ea081f38161 Changes in v2: * Rebased to master * Removed fallback values from rte_eth_dev_info_get() * Added fallback values to rte_rte_[rt]x_queue_setup() * Added fallback values to rte_eth_dev_configure() * Corrected comment * Removed deprecation notice * Split RX and Tx into seperate structures * Changed parameter names Remy Horton (4): ethdev: add support for PMD-tuned Tx/Rx parameters net/e1000: add TxRx tuning parameters net/i40e: add TxRx tuning parameters testpmd: make use of per-PMD TxRx parameters app/test-pmd/cmdline.c | 31 +++++++++++++++++++++--- app/test-pmd/parameters.c | 38 +++++++++++++++++++++++++---- app/test-pmd/testpmd.c | 5 ++-- doc/guides/rel_notes/deprecation.rst | 13 ---------- doc/guides/rel_notes/release_18_05.rst | 35 +++++++++++++++++++++++++++ drivers/net/e1000/em_ethdev.c | 6 +++++ drivers/net/i40e/i40e_ethdev.c | 33 ++++++++++++++++++++++--- lib/librte_ether/rte_ethdev.c | 44 +++++++++++++++++++++++++++------- lib/librte_ether/rte_ethdev.h | 25 +++++++++++++++++++ 9 files changed, 195 insertions(+), 35 deletions(-) -- 2.9.5