[v2,6/6] dma/dpaa2: support statistics

Message ID 20220505073108.17112-7-nipun.gupta@nxp.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series move DPAA2 QDMA driver freom raw to dma |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues
ci/intel-Testing success Testing PASS
ci/github-robot: build fail github build: failed

Commit Message

Nipun Gupta May 5, 2022, 7:31 a.m. UTC
  From: Nipun Gupta <nipun.gupta@nxp.com>

This patch support DMA read and reset statistics operations.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
---
 drivers/dma/dpaa2/dpaa2_qdma.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
  

Patch

diff --git a/drivers/dma/dpaa2/dpaa2_qdma.c b/drivers/dma/dpaa2/dpaa2_qdma.c
index f1f92b5465..a93a60565d 100644
--- a/drivers/dma/dpaa2/dpaa2_qdma.c
+++ b/drivers/dma/dpaa2/dpaa2_qdma.c
@@ -1427,6 +1427,38 @@  dpaa2_qdma_close(__rte_unused struct rte_dma_dev *dev)
 	return 0;
 }
 
+static int
+dpaa2_qdma_stats_get(const struct rte_dma_dev *dmadev, uint16_t vchan,
+		    struct rte_dma_stats *rte_stats, uint32_t size)
+{
+	struct dpaa2_dpdmai_dev *dpdmai_dev = dmadev->data->dev_private;
+	struct qdma_device *qdma_dev = dpdmai_dev->qdma_dev;
+	struct qdma_virt_queue *qdma_vq = &qdma_dev->vqs[vchan];
+	struct rte_dma_stats *stats = &qdma_vq->stats;
+
+	RTE_SET_USED(size);
+
+	/* TODO - directly use stats */
+	stats->submitted = qdma_vq->num_enqueues;
+	stats->completed = qdma_vq->num_dequeues;
+	*rte_stats = *stats;
+
+	return 0;
+}
+
+static int
+dpaa2_qdma_stats_reset(struct rte_dma_dev *dmadev, uint16_t vchan)
+{
+	struct dpaa2_dpdmai_dev *dpdmai_dev = dmadev->data->dev_private;
+	struct qdma_device *qdma_dev = dpdmai_dev->qdma_dev;
+	struct qdma_virt_queue *qdma_vq = &qdma_dev->vqs[vchan];
+
+	qdma_vq->num_enqueues = 0;
+	qdma_vq->num_dequeues = 0;
+
+	return 0;
+}
+
 static uint16_t
 dpaa2_qdma_burst_capacity(const void *dev_private, uint16_t vchan)
 {
@@ -1444,6 +1476,8 @@  static struct rte_dma_dev_ops dpaa2_qdma_ops = {
 	.dev_stop         = dpaa2_qdma_stop,
 	.dev_close        = dpaa2_qdma_close,
 	.vchan_setup      = dpaa2_qdma_vchan_setup,
+	.stats_get        = dpaa2_qdma_stats_get,
+	.stats_reset      = dpaa2_qdma_stats_reset,
 };
 
 static int