[PATCH v3 3/7] net/cpfl: save main time by alarm

Wenjing Qiao wenjing.qiao at intel.com
Mon Apr 24 11:17:03 CEST 2023


Using alarm to save main time from registers every 1 second.

Fixes: 8c6098afa075 ("common/idpf: add Rx/Tx data path")
Cc: stable at dpdk.org

Signed-off-by: Wenjing Qiao <wenjing.qiao at intel.com>
---
 drivers/net/cpfl/cpfl_ethdev.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
index ede730fd50..82d8147494 100644
--- a/drivers/net/cpfl/cpfl_ethdev.c
+++ b/drivers/net/cpfl/cpfl_ethdev.c
@@ -767,6 +767,12 @@ cpfl_dev_start(struct rte_eth_dev *dev)
 		goto err_vec;
 	}
 
+	if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) {
+		rte_eal_alarm_set(1000 * 1000,
+				  &idpf_dev_read_time_hw,
+				  (void *)base);
+	}
+
 	ret = idpf_vc_vectors_alloc(vport, req_vecs_num);
 	if (ret != 0) {
 		PMD_DRV_LOG(ERR, "Failed to allocate interrupt vectors");
@@ -816,6 +822,7 @@ static int
 cpfl_dev_stop(struct rte_eth_dev *dev)
 {
 	struct idpf_vport *vport = dev->data->dev_private;
+	struct idpf_adapter *base = vport->adapter;
 
 	if (vport->stopped == 1)
 		return 0;
@@ -828,6 +835,11 @@ cpfl_dev_stop(struct rte_eth_dev *dev)
 
 	idpf_vc_vectors_dealloc(vport);
 
+	if (dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) {
+		rte_eal_alarm_cancel(idpf_dev_read_time_hw,
+				     base);
+	}
+
 	vport->stopped = 1;
 
 	return 0;
-- 
2.25.1



More information about the stable mailing list