xref: /dpdk/lib/dmadev/rte_dmadev_trace.h (revision 2dff0bcd3b54bc3279de42123aa618620224ad44)
181da5a6bSChengwen Feng /* SPDX-License-Identifier: BSD-3-Clause
281da5a6bSChengwen Feng  * Copyright(c) 2023 HiSilicon Limited
381da5a6bSChengwen Feng  */
481da5a6bSChengwen Feng 
581da5a6bSChengwen Feng #ifndef RTE_DMADEV_TRACE_H
681da5a6bSChengwen Feng #define RTE_DMADEV_TRACE_H
781da5a6bSChengwen Feng 
881da5a6bSChengwen Feng /**
981da5a6bSChengwen Feng  * @file
1081da5a6bSChengwen Feng  *
1181da5a6bSChengwen Feng  * API for dmadev trace support.
1281da5a6bSChengwen Feng  */
1381da5a6bSChengwen Feng 
1481da5a6bSChengwen Feng #include <rte_trace_point.h>
1581da5a6bSChengwen Feng 
1681da5a6bSChengwen Feng #include "rte_dmadev.h"
1781da5a6bSChengwen Feng 
1881da5a6bSChengwen Feng #ifdef __cplusplus
1981da5a6bSChengwen Feng extern "C" {
2081da5a6bSChengwen Feng #endif
2181da5a6bSChengwen Feng 
2281da5a6bSChengwen Feng RTE_TRACE_POINT(
2381da5a6bSChengwen Feng 	rte_dma_trace_info_get,
2481da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, struct rte_dma_info *dev_info),
2581da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_
2681da5a6bSChengwen Feng 	struct rte_dma_info __dev_info = {0};
2781da5a6bSChengwen Feng 	dev_info = &__dev_info;
2881da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
2981da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
3081da5a6bSChengwen Feng 	rte_trace_point_emit_string(dev_info->dev_name);
3181da5a6bSChengwen Feng 	rte_trace_point_emit_u64(dev_info->dev_capa);
3281da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_info->max_vchans);
3381da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_info->max_desc);
3481da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_info->min_desc);
3581da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_info->max_sges);
3681da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_info->numa_node);
3781da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_info->nb_vchans);
38*2dff0bcdSVamsi Attunuru 	rte_trace_point_emit_u16(dev_info->nb_priorities);
3981da5a6bSChengwen Feng )
4081da5a6bSChengwen Feng 
4181da5a6bSChengwen Feng RTE_TRACE_POINT(
4281da5a6bSChengwen Feng 	rte_dma_trace_configure,
4381da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, const struct rte_dma_conf *dev_conf,
4481da5a6bSChengwen Feng 			     int ret),
4581da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_
4681da5a6bSChengwen Feng 	const struct rte_dma_conf __dev_conf = {0};
4781da5a6bSChengwen Feng 	dev_conf = &__dev_conf;
4881da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
4981da5a6bSChengwen Feng 	int enable_silent = (int)dev_conf->enable_silent;
5081da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
5181da5a6bSChengwen Feng 	rte_trace_point_emit_u16(dev_conf->nb_vchans);
52*2dff0bcdSVamsi Attunuru 	rte_trace_point_emit_u16(dev_conf->priority);
5381da5a6bSChengwen Feng 	rte_trace_point_emit_int(enable_silent);
5481da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
5581da5a6bSChengwen Feng )
5681da5a6bSChengwen Feng 
5781da5a6bSChengwen Feng RTE_TRACE_POINT(
5881da5a6bSChengwen Feng 	rte_dma_trace_start,
5981da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
6081da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
6181da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
6281da5a6bSChengwen Feng )
6381da5a6bSChengwen Feng 
6481da5a6bSChengwen Feng RTE_TRACE_POINT(
6581da5a6bSChengwen Feng 	rte_dma_trace_stop,
6681da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
6781da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
6881da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
6981da5a6bSChengwen Feng )
7081da5a6bSChengwen Feng 
7181da5a6bSChengwen Feng RTE_TRACE_POINT(
7281da5a6bSChengwen Feng 	rte_dma_trace_close,
7381da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, int ret),
7481da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
7581da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
7681da5a6bSChengwen Feng )
7781da5a6bSChengwen Feng 
7881da5a6bSChengwen Feng RTE_TRACE_POINT(
7981da5a6bSChengwen Feng 	rte_dma_trace_vchan_setup,
8081da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
8181da5a6bSChengwen Feng 			     const struct rte_dma_vchan_conf *conf, int ret),
8281da5a6bSChengwen Feng #ifdef _RTE_TRACE_POINT_REGISTER_H_
8381da5a6bSChengwen Feng 	const struct rte_dma_vchan_conf __conf = {0};
8481da5a6bSChengwen Feng 	conf = &__conf;
8581da5a6bSChengwen Feng #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
8681da5a6bSChengwen Feng 	int src_port_type = conf->src_port.port_type;
8781da5a6bSChengwen Feng 	int dst_port_type = conf->dst_port.port_type;
8881da5a6bSChengwen Feng 	int direction = conf->direction;
8981da5a6bSChengwen Feng 	uint64_t src_pcie_cfg;
9081da5a6bSChengwen Feng 	uint64_t dst_pcie_cfg;
9181da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
9281da5a6bSChengwen Feng 	rte_trace_point_emit_u16(vchan);
9381da5a6bSChengwen Feng 	rte_trace_point_emit_int(direction);
9481da5a6bSChengwen Feng 	rte_trace_point_emit_u16(conf->nb_desc);
9581da5a6bSChengwen Feng 	rte_trace_point_emit_int(src_port_type);
9681da5a6bSChengwen Feng 	memcpy(&src_pcie_cfg, &conf->src_port.pcie, sizeof(uint64_t));
9781da5a6bSChengwen Feng 	rte_trace_point_emit_u64(src_pcie_cfg);
9881da5a6bSChengwen Feng 	memcpy(&dst_pcie_cfg, &conf->dst_port.pcie, sizeof(uint64_t));
9981da5a6bSChengwen Feng 	rte_trace_point_emit_int(dst_port_type);
10081da5a6bSChengwen Feng 	rte_trace_point_emit_u64(dst_pcie_cfg);
10181da5a6bSChengwen Feng 	rte_trace_point_emit_ptr(conf->auto_free.m2d.pool);
10281da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
10381da5a6bSChengwen Feng )
10481da5a6bSChengwen Feng 
10581da5a6bSChengwen Feng RTE_TRACE_POINT(
10681da5a6bSChengwen Feng 	rte_dma_trace_stats_reset,
10781da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, int ret),
10881da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
10981da5a6bSChengwen Feng 	rte_trace_point_emit_u16(vchan);
11081da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
11181da5a6bSChengwen Feng )
11281da5a6bSChengwen Feng 
11381da5a6bSChengwen Feng RTE_TRACE_POINT(
11481da5a6bSChengwen Feng 	rte_dma_trace_dump,
11581da5a6bSChengwen Feng 	RTE_TRACE_POINT_ARGS(int16_t dev_id, FILE *f, int ret),
11681da5a6bSChengwen Feng 	rte_trace_point_emit_i16(dev_id);
11781da5a6bSChengwen Feng 	rte_trace_point_emit_ptr(f);
11881da5a6bSChengwen Feng 	rte_trace_point_emit_int(ret);
11981da5a6bSChengwen Feng )
12081da5a6bSChengwen Feng 
12181da5a6bSChengwen Feng #ifdef __cplusplus
12281da5a6bSChengwen Feng }
12381da5a6bSChengwen Feng #endif
12481da5a6bSChengwen Feng 
12581da5a6bSChengwen Feng #endif /* RTE_DMADEV_TRACE_H */
126