[dpdk-dev] [PATCH v2 2/2] examples/kni: fix MTU change to setup Tx queue
Ferruh Yigit
ferruh.yigit at intel.com
Thu May 14 17:33:29 CEST 2020
On 5/14/2020 5:09 AM, Rasesh Mody wrote:
> This patch adds a fix to setup Tx queue when changing KNI interface MTU.
> It ensures device can safely start txq post MTU change operation.
>
> Fixes: fc9ee41b7016 ("examples/kni: convert to new ethdev offloads API")
> Cc: stable at dpdk.org
>
> Signed-off-by: Rasesh Mody <rmody at marvell.com>
> ---
> examples/kni/main.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/examples/kni/main.c b/examples/kni/main.c
> index 6b4ab3b5b..7a927a50c 100644
> --- a/examples/kni/main.c
> +++ b/examples/kni/main.c
> @@ -774,9 +774,11 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
> {
> int ret;
> uint16_t nb_rxd = NB_RXD;
> + uint16_t nb_txd = NB_TXD;
> struct rte_eth_conf conf;
> struct rte_eth_dev_info dev_info;
> struct rte_eth_rxconf rxq_conf;
> + struct rte_eth_txconf txq_conf;
>
> if (!rte_eth_dev_is_valid_port(port_id)) {
> RTE_LOG(ERR, APP, "Invalid port id %d\n", port_id);
> @@ -804,7 +806,7 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
> return ret;
> }
>
> - ret = rte_eth_dev_adjust_nb_rx_tx_desc(port_id, &nb_rxd, NULL);
> + ret = rte_eth_dev_adjust_nb_rx_tx_desc(port_id, &nb_rxd, &nb_txd);
> if (ret < 0)
> rte_exit(EXIT_FAILURE, "Could not adjust number of descriptors "
> "for port%u (%d)\n", (unsigned int)port_id,
> @@ -829,6 +831,16 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
> return ret;
> }
>
> + txq_conf = dev_info.default_txconf;
> + txq_conf.offloads = conf.txmode.offloads;
> + ret = rte_eth_tx_queue_setup(port_id, 0, nb_txd,
> + rte_eth_dev_socket_id(port_id), &txq_conf);
> + if (ret < 0) {
> + RTE_LOG(ERR, APP, "Fail to setup Tx queue of port %d\n",
> + port_id);
> + return ret;
> + }
> +
> /* Restart specific port */
> ret = rte_eth_dev_start(port_id);
> if (ret < 0) {
>
Hi Rasesh,
The change looks OK but I am trying to understand the need for it, already asked
in other tread, will follow there.
More information about the dev
mailing list