From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AA36342B45 for ; Fri, 19 May 2023 09:17:30 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A447741148; Fri, 19 May 2023 09:17:30 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id F28B140F16; Fri, 19 May 2023 09:17:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684480648; x=1716016648; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=an5akvKO74sIHedJJZqAzUjjKqR8Q553bERb2/ZCBlg=; b=BErqjud1aq4t/FkQdw/TBobx7V1wCoYFlHUr+mOi4Dik+9jm1Q7YyeMh Ksw90MjL6u+Dc/Q7Res4Wv3QIinqzuFcjsHiiXmvVYkyvZ216WkYvjYtY ZXftrW4S1kPN+7XMY7ALpNih5BpairJ6rIvhBZ5LVTlVb9xczjhR0Fb8w mbrt7eTf+XRAX6Psvk3ZwuohuJNM1p/YBKj9Qk3d0GHjIMkrp23aaxy6w iH3WoIJCx7931ceqf1KKp+KJe+ap+1D9n8zh/uiEPq7QETvCw6IpSM5uI Bi26gX8mLF0dnzPTT4y8nZWhkqDVOcYj9fOaSZ4RlV1/Eogi9LDi+g8TC w==; X-IronPort-AV: E=McAfee;i="6600,9927,10714"; a="332666078" X-IronPort-AV: E=Sophos;i="6.00,176,1681196400"; d="scan'208";a="332666078" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2023 00:17:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10714"; a="814625434" X-IronPort-AV: E=Sophos;i="6.00,176,1681196400"; d="scan'208";a="814625434" Received: from dpdk-wenjing-01.sh.intel.com ([10.67.118.161]) by fmsmga002.fm.intel.com with ESMTP; 19 May 2023 00:17:08 -0700 From: Wenjing Qiao To: qiming.yang@intel.com, qi.z.zhang@intel.com Cc: dev@dpdk.org, Wenjing Qiao , stable@dpdk.org Subject: [PATCH v2] net/ice: adjust timestamp mbuf register Date: Fri, 19 May 2023 03:12:16 -0400 Message-Id: <20230519071216.673147-1-wenjing.qiao@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230519070826.673018-1-wenjing.qiao@intel.com> References: <20230519070826.673018-1-wenjing.qiao@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 Due to only support timestamp at port level, adjust timestamp mbuf register to dev config. Fixes: 953e74e6b73a ("net/ice: enable Rx timestamp on flex descriptor") Cc: stable@dpdk.org Signed-off-by: Wenjing Qiao --- drivers/net/ice/ice_ethdev.c | 10 ++++++++++ drivers/net/ice/ice_rxtx.c | 5 ++++- drivers/net/ice/ice_rxtx.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 8b4cd40c43..9e647cedf9 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -3691,6 +3691,16 @@ ice_dev_start(struct rte_eth_dev *dev) } } + if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) { + /* Register mbuf field and flag for Rx timestamp */ + ret = rte_mbuf_dyn_rx_timestamp_register(&ice_timestamp_dynfield_offset, + &ice_timestamp_dynflag); + if (ret) { + PMD_DRV_LOG(ERR, "Cannot register mbuf field/flag for timestamp"); + goto tx_err; + } + } + /* program Rx queues' context in hardware*/ for (nb_rxq = 0; nb_rxq < data->nb_rx_queues; nb_rxq++) { ret = ice_rx_queue_start(dev, nb_rxq); diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index 560c1a4af7..c998b0080a 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -274,7 +274,7 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) return -EINVAL; } - if (rxq->offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) { + if (!rxq->ts_enable && (rxq->offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP)) { /* Register mbuf field and flag for Rx timestamp */ err = rte_mbuf_dyn_rx_timestamp_register( &ice_timestamp_dynfield_offset, @@ -284,6 +284,7 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) "Cannot register mbuf field/flag for timestamp"); return -EINVAL; } + rxq->ts_enable = true; } memset(&rx_ctx, 0, sizeof(rx_ctx)); @@ -671,6 +672,8 @@ ice_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) return -EINVAL; } + if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) + rxq->ts_enable = true; err = ice_program_hw_rx_queue(rxq); if (err) { PMD_DRV_LOG(ERR, "fail to program RX queue %u", diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h index 89569029e1..268289716e 100644 --- a/drivers/net/ice/ice_rxtx.h +++ b/drivers/net/ice/ice_rxtx.h @@ -120,6 +120,7 @@ struct ice_rx_queue { uint64_t hw_time_update; /* SW time of HW record updating */ struct rte_eth_rxseg_split rxseg[ICE_RX_MAX_NSEG]; uint32_t rxseg_nb; + bool ts_enable; /* if rxq timestamp is enabled */ }; struct ice_tx_entry { -- 2.25.1