diff mbox

[DPU,04/19] drm/msm: dpu_rm: Replace DPU_EVT with tracepoints

Message ID 20180620204841.56354-5-seanpaul@chromium.org (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Sean Paul June 20, 2018, 8:48 p.m. UTC
This patch converts all DPU_EVTs in dpu_rm with either a DRM_* log
message or a linux tracepoint.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c    | 65 ++++++++++-------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 49 +++++++++++++++++
 2 files changed, 78 insertions(+), 36 deletions(-)

Comments

Rajesh Yadav June 26, 2018, 10:30 a.m. UTC | #1
On 2018-06-21 02:18, Sean Paul wrote:
> This patch converts all DPU_EVTs in dpu_rm with either a DRM_* log
> message or a linux tracepoint.
> 
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Rajesh Yadav <ryadav@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c    | 65 ++++++++++-------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 49 +++++++++++++++++
>  2 files changed, 78 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
> index eff316bb2134..13c0a36d4ef9 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
> @@ -20,6 +20,7 @@
>  #include "dpu_hw_pingpong.h"
>  #include "dpu_hw_intf.h"
>  #include "dpu_encoder.h"
> +#include "dpu_trace.h"
> 
>  #define RESERVED_BY_OTHER(h, r) \
>  	((h)->rsvp && ((h)->rsvp->enc_id != (r)->enc_id))
> @@ -121,9 +122,8 @@ static void _dpu_rm_print_rsvps(
>  	DPU_DEBUG("%d\n", stage);
> 
>  	list_for_each_entry(rsvp, &rm->rsvps, list) {
> -		DPU_DEBUG("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq,
> -				rsvp->enc_id, rsvp->topology);
> -		DPU_EVT32(stage, rsvp->seq, rsvp->enc_id, rsvp->topology);
> +		DRM_DEBUG_KMS("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq,
> +			      rsvp->enc_id, rsvp->topology);
>  	}
> 
>  	for (type = 0; type < DPU_HW_BLK_MAX; type++) {
> @@ -131,14 +131,7 @@ static void _dpu_rm_print_rsvps(
>  			if (!blk->rsvp && !blk->rsvp_nxt)
>  				continue;
> 
> -			DPU_DEBUG("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage,
> -				(blk->rsvp) ? blk->rsvp->seq : 0,
> -				(blk->rsvp) ? blk->rsvp->enc_id : 0,
> -				(blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0,
> -				(blk->rsvp_nxt) ? blk->rsvp_nxt->enc_id : 0,
> -				blk->type, blk->id);
> -
> -			DPU_EVT32(stage,
> +			DRM_DEBUG_KMS("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage,
>  				(blk->rsvp) ? blk->rsvp->seq : 0,
>  				(blk->rsvp) ? blk->rsvp->enc_id : 0,
>  				(blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0,
> @@ -597,7 +590,8 @@ static int _dpu_rm_reserve_lms(
>  		lm[i]->rsvp_nxt = rsvp;
>  		pp[i]->rsvp_nxt = rsvp;
> 
> -		DPU_EVT32(lm[i]->type, rsvp->enc_id, lm[i]->id, pp[i]->id);
> +		trace_dpu_rm_reserve_lms(lm[i]->id, lm[i]->type, rsvp->enc_id,
> +					 pp[i]->id);
>  	}
> 
>  	return rc;
> @@ -642,7 +636,8 @@ static int _dpu_rm_reserve_ctls(
> 
>  	for (i = 0; i < ARRAY_SIZE(ctls) && i < top->num_ctl; i++) {
>  		ctls[i]->rsvp_nxt = rsvp;
> -		DPU_EVT32(ctls[i]->type, rsvp->enc_id, ctls[i]->id);
> +		trace_dpu_rm_reserve_ctls(ctls[i]->id, ctls[i]->type,
> +					  rsvp->enc_id);
>  	}
> 
>  	return 0;
> @@ -656,6 +651,8 @@ static int _dpu_rm_reserve_cdm(
>  {
>  	struct dpu_rm_hw_iter iter;
> 
> +	DRM_DEBUG_KMS("type %d id %d\n", type, id);
> +
>  	dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_CDM);
>  	while (_dpu_rm_get_hw_locked(rm, &iter)) {
>  		const struct dpu_hw_cdm *cdm = to_dpu_hw_cdm(iter.blk->hw);
> @@ -668,14 +665,16 @@ static int _dpu_rm_reserve_cdm(
>  		if (type == DPU_HW_BLK_INTF && id != INTF_MAX)
>  			match = test_bit(id, &caps->intf_connect);
> 
> -		DPU_DEBUG("type %d id %d, cdm intfs %lu match %d\n",
> -				type, id, caps->intf_connect, match);
> +		DRM_DEBUG_KMS("iter: type:%d id:%d enc:%d cdm:%lu match:%d\n",
> +			      iter.blk->type, iter.blk->id, rsvp->enc_id,
> +			      caps->intf_connect, match);
> 
>  		if (!match)
>  			continue;
> 
> +		trace_dpu_rm_reserve_cdm(iter.blk->id, iter.blk->type,
> +					 rsvp->enc_id);
>  		iter.blk->rsvp_nxt = rsvp;
> -		DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id);
>  		break;
>  	}
> 
> @@ -709,7 +708,8 @@ static int _dpu_rm_reserve_intf(
>  		}
> 
>  		iter.blk->rsvp_nxt = rsvp;
> -		DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id);
> +		trace_dpu_rm_reserve_intf(iter.blk->id, iter.blk->type,
> +					  rsvp->enc_id);
>  		break;
>  	}
> 
> @@ -801,7 +801,6 @@ static int _dpu_rm_populate_requirements(
>  		struct dpu_rm_requirements *reqs,
>  		struct msm_display_topology req_topology)
>  {
> -	const struct drm_display_mode *mode = &crtc_state->mode;
>  	int i;
> 
>  	memset(reqs, 0, sizeof(*reqs));
> @@ -830,15 +829,12 @@ static int _dpu_rm_populate_requirements(
>  		conn_state->connector->connector_type == DRM_MODE_CONNECTOR_DSI)
>  		reqs->top_ctrl |= BIT(DPU_RM_TOPCTL_DS);
> 
> -	DPU_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
> -			reqs->hw_res.display_num_of_h_tiles);
> -	DPU_DEBUG("num_lm: %d num_ctl: %d topology: %d split_display: %d\n",
> -			reqs->topology->num_lm, reqs->topology->num_ctl,
> -			reqs->topology->top_name,
> -			reqs->topology->needs_split_display);
> -	DPU_EVT32(mode->hdisplay, rm->lm_max_width, reqs->topology->num_lm,
> -			reqs->top_ctrl, reqs->topology->top_name,
> -			reqs->topology->num_ctl);
> +	DRM_DEBUG_KMS("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
> +		      reqs->hw_res.display_num_of_h_tiles);
> +	DRM_DEBUG_KMS("num_lm: %d num_ctl: %d topology: %d split_display: 
> %d\n",
> +		      reqs->topology->num_lm, reqs->topology->num_ctl,
> +		      reqs->topology->top_name,
> +		      reqs->topology->needs_split_display);
> 
>  	return 0;
>  }
> @@ -972,11 +968,9 @@ static int _dpu_rm_commit_rsvp(
>  		}
>  	}
> 
> -	if (!ret) {
> -		DPU_DEBUG("rsrv enc %d topology %d\n", rsvp->enc_id,
> -				rsvp->topology);
> -		DPU_EVT32(rsvp->enc_id, rsvp->topology);
> -	}
> +	if (!ret)
> +		DRM_DEBUG_KMS("rsrv enc %d topology %d\n", rsvp->enc_id,
> +			      rsvp->topology);
> 
>  	return ret;
>  }
> @@ -1002,10 +996,9 @@ int dpu_rm_reserve(
>  	if (!drm_atomic_crtc_needs_modeset(crtc_state))
>  		return 0;
> 
> -	DPU_DEBUG("reserving hw for conn %d enc %d crtc %d test_only %d\n",
> -			conn_state->connector->base.id, enc->base.id,
> -			crtc_state->crtc->base.id, test_only);
> -	DPU_EVT32(enc->base.id, conn_state->connector->base.id);
> +	DRM_DEBUG_KMS("reserving hw for conn %d enc %d crtc %d test_only 
> %d\n",
> +		      conn_state->connector->base.id, enc->base.id,
> +		      crtc_state->crtc->base.id, test_only);
> 
>  	mutex_lock(&rm->rm_lock);
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> index 5d3aa5a994be..99c45b8d84c0 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> @@ -769,6 +769,55 @@ TRACE_EVENT(dpu_plane_disable,
>  		  __entry->multirect_mode)
>  );
> 
> +DECLARE_EVENT_CLASS(dpu_rm_iter_template,
> +	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
> +	TP_ARGS(id, type, enc_id),
> +	TP_STRUCT__entry(
> +		__field(	uint32_t,		id	)
> +		__field(	enum dpu_hw_blk_type,	type	)
> +		__field(	uint32_t,		enc_id	)
> +	),
> +	TP_fast_assign(
> +		__entry->id = id;
> +		__entry->type = type;
> +		__entry->enc_id = enc_id;
> +	),
> +	TP_printk("id:%d type:%d enc_id:%u", __entry->id, __entry->type,
> +		  __entry->enc_id)
> +);
> +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_cdm,
> +	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
> +	TP_ARGS(id, type, enc_id)
> +);
> +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf,
> +	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
> +	TP_ARGS(id, type, enc_id)
> +);
> +DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls,
> +	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
> +	TP_ARGS(id, type, enc_id)
> +);
> +
> +TRACE_EVENT(dpu_rm_reserve_lms,
> +	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id,
> +		 uint32_t pp_id),
> +	TP_ARGS(id, type, enc_id, pp_id),
> +	TP_STRUCT__entry(
> +		__field(	uint32_t,		id	)
> +		__field(	enum dpu_hw_blk_type,	type	)
> +		__field(	uint32_t,		enc_id	)
> +		__field(	uint32_t,		pp_id	)
> +	),
> +	TP_fast_assign(
> +		__entry->id = id;
> +		__entry->type = type;
> +		__entry->enc_id = enc_id;
> +		__entry->pp_id = pp_id;
> +	),
> +	TP_printk("id:%d type:%d enc_id:%u pp_id:%u", __entry->id,
> +		  __entry->type, __entry->enc_id, __entry->pp_id)
> +);
> +
>  #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, 
> name, 0)
>  #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, 
> name, 1)
>  #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__)
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
index eff316bb2134..13c0a36d4ef9 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
@@ -20,6 +20,7 @@ 
 #include "dpu_hw_pingpong.h"
 #include "dpu_hw_intf.h"
 #include "dpu_encoder.h"
+#include "dpu_trace.h"
 
 #define RESERVED_BY_OTHER(h, r) \
 	((h)->rsvp && ((h)->rsvp->enc_id != (r)->enc_id))
@@ -121,9 +122,8 @@  static void _dpu_rm_print_rsvps(
 	DPU_DEBUG("%d\n", stage);
 
 	list_for_each_entry(rsvp, &rm->rsvps, list) {
-		DPU_DEBUG("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq,
-				rsvp->enc_id, rsvp->topology);
-		DPU_EVT32(stage, rsvp->seq, rsvp->enc_id, rsvp->topology);
+		DRM_DEBUG_KMS("%d rsvp[s%ue%u] topology %d\n", stage, rsvp->seq,
+			      rsvp->enc_id, rsvp->topology);
 	}
 
 	for (type = 0; type < DPU_HW_BLK_MAX; type++) {
@@ -131,14 +131,7 @@  static void _dpu_rm_print_rsvps(
 			if (!blk->rsvp && !blk->rsvp_nxt)
 				continue;
 
-			DPU_DEBUG("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage,
-				(blk->rsvp) ? blk->rsvp->seq : 0,
-				(blk->rsvp) ? blk->rsvp->enc_id : 0,
-				(blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0,
-				(blk->rsvp_nxt) ? blk->rsvp_nxt->enc_id : 0,
-				blk->type, blk->id);
-
-			DPU_EVT32(stage,
+			DRM_DEBUG_KMS("%d rsvp[s%ue%u->s%ue%u] %d %d\n", stage,
 				(blk->rsvp) ? blk->rsvp->seq : 0,
 				(blk->rsvp) ? blk->rsvp->enc_id : 0,
 				(blk->rsvp_nxt) ? blk->rsvp_nxt->seq : 0,
@@ -597,7 +590,8 @@  static int _dpu_rm_reserve_lms(
 		lm[i]->rsvp_nxt = rsvp;
 		pp[i]->rsvp_nxt = rsvp;
 
-		DPU_EVT32(lm[i]->type, rsvp->enc_id, lm[i]->id, pp[i]->id);
+		trace_dpu_rm_reserve_lms(lm[i]->id, lm[i]->type, rsvp->enc_id,
+					 pp[i]->id);
 	}
 
 	return rc;
@@ -642,7 +636,8 @@  static int _dpu_rm_reserve_ctls(
 
 	for (i = 0; i < ARRAY_SIZE(ctls) && i < top->num_ctl; i++) {
 		ctls[i]->rsvp_nxt = rsvp;
-		DPU_EVT32(ctls[i]->type, rsvp->enc_id, ctls[i]->id);
+		trace_dpu_rm_reserve_ctls(ctls[i]->id, ctls[i]->type,
+					  rsvp->enc_id);
 	}
 
 	return 0;
@@ -656,6 +651,8 @@  static int _dpu_rm_reserve_cdm(
 {
 	struct dpu_rm_hw_iter iter;
 
+	DRM_DEBUG_KMS("type %d id %d\n", type, id);
+
 	dpu_rm_init_hw_iter(&iter, 0, DPU_HW_BLK_CDM);
 	while (_dpu_rm_get_hw_locked(rm, &iter)) {
 		const struct dpu_hw_cdm *cdm = to_dpu_hw_cdm(iter.blk->hw);
@@ -668,14 +665,16 @@  static int _dpu_rm_reserve_cdm(
 		if (type == DPU_HW_BLK_INTF && id != INTF_MAX)
 			match = test_bit(id, &caps->intf_connect);
 
-		DPU_DEBUG("type %d id %d, cdm intfs %lu match %d\n",
-				type, id, caps->intf_connect, match);
+		DRM_DEBUG_KMS("iter: type:%d id:%d enc:%d cdm:%lu match:%d\n",
+			      iter.blk->type, iter.blk->id, rsvp->enc_id,
+			      caps->intf_connect, match);
 
 		if (!match)
 			continue;
 
+		trace_dpu_rm_reserve_cdm(iter.blk->id, iter.blk->type,
+					 rsvp->enc_id);
 		iter.blk->rsvp_nxt = rsvp;
-		DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id);
 		break;
 	}
 
@@ -709,7 +708,8 @@  static int _dpu_rm_reserve_intf(
 		}
 
 		iter.blk->rsvp_nxt = rsvp;
-		DPU_EVT32(iter.blk->type, rsvp->enc_id, iter.blk->id);
+		trace_dpu_rm_reserve_intf(iter.blk->id, iter.blk->type,
+					  rsvp->enc_id);
 		break;
 	}
 
@@ -801,7 +801,6 @@  static int _dpu_rm_populate_requirements(
 		struct dpu_rm_requirements *reqs,
 		struct msm_display_topology req_topology)
 {
-	const struct drm_display_mode *mode = &crtc_state->mode;
 	int i;
 
 	memset(reqs, 0, sizeof(*reqs));
@@ -830,15 +829,12 @@  static int _dpu_rm_populate_requirements(
 		conn_state->connector->connector_type == DRM_MODE_CONNECTOR_DSI)
 		reqs->top_ctrl |= BIT(DPU_RM_TOPCTL_DS);
 
-	DPU_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
-			reqs->hw_res.display_num_of_h_tiles);
-	DPU_DEBUG("num_lm: %d num_ctl: %d topology: %d split_display: %d\n",
-			reqs->topology->num_lm, reqs->topology->num_ctl,
-			reqs->topology->top_name,
-			reqs->topology->needs_split_display);
-	DPU_EVT32(mode->hdisplay, rm->lm_max_width, reqs->topology->num_lm,
-			reqs->top_ctrl, reqs->topology->top_name,
-			reqs->topology->num_ctl);
+	DRM_DEBUG_KMS("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
+		      reqs->hw_res.display_num_of_h_tiles);
+	DRM_DEBUG_KMS("num_lm: %d num_ctl: %d topology: %d split_display: %d\n",
+		      reqs->topology->num_lm, reqs->topology->num_ctl,
+		      reqs->topology->top_name,
+		      reqs->topology->needs_split_display);
 
 	return 0;
 }
@@ -972,11 +968,9 @@  static int _dpu_rm_commit_rsvp(
 		}
 	}
 
-	if (!ret) {
-		DPU_DEBUG("rsrv enc %d topology %d\n", rsvp->enc_id,
-				rsvp->topology);
-		DPU_EVT32(rsvp->enc_id, rsvp->topology);
-	}
+	if (!ret)
+		DRM_DEBUG_KMS("rsrv enc %d topology %d\n", rsvp->enc_id,
+			      rsvp->topology);
 
 	return ret;
 }
@@ -1002,10 +996,9 @@  int dpu_rm_reserve(
 	if (!drm_atomic_crtc_needs_modeset(crtc_state))
 		return 0;
 
-	DPU_DEBUG("reserving hw for conn %d enc %d crtc %d test_only %d\n",
-			conn_state->connector->base.id, enc->base.id,
-			crtc_state->crtc->base.id, test_only);
-	DPU_EVT32(enc->base.id, conn_state->connector->base.id);
+	DRM_DEBUG_KMS("reserving hw for conn %d enc %d crtc %d test_only %d\n",
+		      conn_state->connector->base.id, enc->base.id,
+		      crtc_state->crtc->base.id, test_only);
 
 	mutex_lock(&rm->rm_lock);
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
index 5d3aa5a994be..99c45b8d84c0 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
@@ -769,6 +769,55 @@  TRACE_EVENT(dpu_plane_disable,
 		  __entry->multirect_mode)
 );
 
+DECLARE_EVENT_CLASS(dpu_rm_iter_template,
+	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
+	TP_ARGS(id, type, enc_id),
+	TP_STRUCT__entry(
+		__field(	uint32_t,		id	)
+		__field(	enum dpu_hw_blk_type,	type	)
+		__field(	uint32_t,		enc_id	)
+	),
+	TP_fast_assign(
+		__entry->id = id;
+		__entry->type = type;
+		__entry->enc_id = enc_id;
+	),
+	TP_printk("id:%d type:%d enc_id:%u", __entry->id, __entry->type,
+		  __entry->enc_id)
+);
+DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_cdm,
+	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
+	TP_ARGS(id, type, enc_id)
+);
+DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf,
+	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
+	TP_ARGS(id, type, enc_id)
+);
+DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls,
+	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id),
+	TP_ARGS(id, type, enc_id)
+);
+
+TRACE_EVENT(dpu_rm_reserve_lms,
+	TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id,
+		 uint32_t pp_id),
+	TP_ARGS(id, type, enc_id, pp_id),
+	TP_STRUCT__entry(
+		__field(	uint32_t,		id	)
+		__field(	enum dpu_hw_blk_type,	type	)
+		__field(	uint32_t,		enc_id	)
+		__field(	uint32_t,		pp_id	)
+	),
+	TP_fast_assign(
+		__entry->id = id;
+		__entry->type = type;
+		__entry->enc_id = enc_id;
+		__entry->pp_id = pp_id;
+	),
+	TP_printk("id:%d type:%d enc_id:%u pp_id:%u", __entry->id,
+		  __entry->type, __entry->enc_id, __entry->pp_id)
+);
+
 #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0)
 #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1)
 #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__)