From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 9FC0FA0096 for ; Sun, 5 May 2019 10:48:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 66AA9A3; Sun, 5 May 2019 10:48:35 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 45442A3 for ; Sun, 5 May 2019 10:48:34 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2019 01:48:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,433,1549958400"; d="scan'208";a="321615442" Received: from dpdk6.bj.intel.com ([172.16.182.192]) by orsmga005.jf.intel.com with ESMTP; 05 May 2019 01:48:32 -0700 From: wei zhao To: qabuild@intel.com Cc: wei zhao , stable@dpdk.org Date: Sun, 5 May 2019 16:19:44 +0800 Message-Id: <1557044384-44667-1-git-send-email-wei.zhao1@intel.com> X-Mailer: git-send-email 2.7.5 Subject: [dpdk-stable] [DPDK] app/testpmd: fix offloads overwrite by default configuration X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" There is an error in function rxtx_port_config(), which may overwrite offloads configuration get from function launch_args_parse() when run testpmd app. So rxtx_port_config() should do "or" for port offloads. Fixes: d44f8a485f5d ("app/testpmd: enable per queue configure") cc: stable@dpdk.org Signed-off-by: Wei Zhao --- app/test-pmd/testpmd.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 6fbfd29..4e71e85 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2809,9 +2809,17 @@ static void rxtx_port_config(struct rte_port *port) { uint16_t qid; + struct rte_eth_rxconf *rxconf = &port->dev_info.default_rxconf; + struct rte_eth_txconf *txconf = &port->dev_info.default_txconf; for (qid = 0; qid < nb_rxq; qid++) { - port->rx_conf[qid] = port->dev_info.default_rxconf; + port->rx_conf[qid] = (struct rte_eth_rxconf){ + .rx_thresh = rxconf->rx_thresh, + .rx_drop_en = rxconf->rx_drop_en, + .rx_free_thresh = rxconf->rx_free_thresh, + .rx_deferred_start = rxconf->rx_deferred_start, + }; + port->rx_conf[qid].offloads |= rxconf->offloads; /* Check if any Rx parameters have been passed */ if (rx_pthresh != RTE_PMD_PARAM_UNSET) @@ -2833,7 +2841,13 @@ rxtx_port_config(struct rte_port *port) } for (qid = 0; qid < nb_txq; qid++) { - port->tx_conf[qid] = port->dev_info.default_txconf; + port->tx_conf[qid] = (struct rte_eth_txconf){ + .tx_thresh = txconf->tx_thresh, + .tx_rs_thresh = txconf->tx_rs_thresh, + .tx_free_thresh = txconf->tx_free_thresh, + .tx_deferred_start = txconf->tx_deferred_start, + }; + port->tx_conf[qid].offloads |= txconf->offloads; /* Check if any Tx parameters have been passed */ if (tx_pthresh != RTE_PMD_PARAM_UNSET) -- 2.7.5