* [PATCH v1 0/2] bbdev: add trace point per operations
@ 2025-05-27 22:36 Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 1/2] bbdev: add trace points per operation Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 2/2] baseband/acc: " Nicolas Chautru
0 siblings, 2 replies; 3+ messages in thread
From: Nicolas Chautru @ 2025-05-27 22:36 UTC (permalink / raw)
To: dev, maxime.coquelin; +Cc: hemant.agrawal, hernan.vargas, Nicolas Chautru
Hi Maxime,
Follow up on previous discussion on trace point for failed operation.
Add a trace point per operation type, so that we can add into
existing tracepoint framework the details of the set of parameters
for an operation rejected by the driver.
Thanks
Nic
Nicolas Chautru (2):
bbdev: add trace points per operation
baseband/acc: add trace points per operation
drivers/baseband/acc/acc_common.h | 1 +
drivers/baseband/acc/vrb_trace.h | 4 +-
lib/bbdev/bbdev_trace.h | 113 ++++++++++++++++++++++++++++++
lib/bbdev/bbdev_trace_points.c | 12 ++++
lib/bbdev/rte_bbdev.c | 24 +++++++
lib/bbdev/rte_bbdev.h | 14 ++++
6 files changed, 166 insertions(+), 2 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v1 1/2] bbdev: add trace points per operation
2025-05-27 22:36 [PATCH v1 0/2] bbdev: add trace point per operations Nicolas Chautru
@ 2025-05-27 22:36 ` Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 2/2] baseband/acc: " Nicolas Chautru
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Chautru @ 2025-05-27 22:36 UTC (permalink / raw)
To: dev, maxime.coquelin; +Cc: hemant.agrawal, hernan.vargas, Nicolas Chautru
Adds trace points for rte_bbdev for each operation
type set of input parameters.
---
lib/bbdev/bbdev_trace.h | 113 +++++++++++++++++++++++++++++++++
lib/bbdev/bbdev_trace_points.c | 12 ++++
lib/bbdev/rte_bbdev.c | 24 +++++++
lib/bbdev/rte_bbdev.h | 14 ++++
4 files changed, 163 insertions(+)
diff --git a/lib/bbdev/bbdev_trace.h b/lib/bbdev/bbdev_trace.h
index 7256d6b703..dbef6efa3b 100644
--- a/lib/bbdev/bbdev_trace.h
+++ b/lib/bbdev/bbdev_trace.h
@@ -62,6 +62,119 @@ RTE_TRACE_POINT(
rte_trace_point_emit_u16(queue_id);
)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_ldpc_dec,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_ldpc_dec ldpc_dec),
+ rte_trace_point_emit_u8(ldpc_dec.code_block_mode);
+ rte_trace_point_emit_u8(ldpc_dec.tb_params.c);
+ rte_trace_point_emit_u8(ldpc_dec.tb_params.cab);
+ rte_trace_point_emit_u32(ldpc_dec.tb_params.ea);
+ rte_trace_point_emit_u32(ldpc_dec.tb_params.eb);
+ rte_trace_point_emit_u8(ldpc_dec.tb_params.r);
+ rte_trace_point_emit_u32(ldpc_dec.cb_params.e);
+ rte_trace_point_emit_u32(ldpc_dec.op_flags);
+ rte_trace_point_emit_u8(ldpc_dec.basegraph);
+ rte_trace_point_emit_u16(ldpc_dec.z_c);
+ rte_trace_point_emit_u16(ldpc_dec.n_cb);
+ rte_trace_point_emit_u8(ldpc_dec.q_m);
+ rte_trace_point_emit_u16(ldpc_dec.n_filler);
+ rte_trace_point_emit_u8(ldpc_dec.rv_index);
+ rte_trace_point_emit_u8(ldpc_dec.iter_max);
+ rte_trace_point_emit_u8(ldpc_dec.iter_count);
+ rte_trace_point_emit_u32(ldpc_dec.harq_combined_input.length);
+)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_ldpc_enc,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_ldpc_enc ldpc_enc),
+ rte_trace_point_emit_u8(ldpc_enc.code_block_mode);
+ rte_trace_point_emit_u8(ldpc_enc.tb_params.c);
+ rte_trace_point_emit_u8(ldpc_enc.tb_params.cab);
+ rte_trace_point_emit_u32(ldpc_enc.tb_params.ea);
+ rte_trace_point_emit_u32(ldpc_enc.tb_params.eb);
+ rte_trace_point_emit_u8(ldpc_enc.tb_params.r);
+ rte_trace_point_emit_u32(ldpc_enc.cb_params.e);
+ rte_trace_point_emit_u32(ldpc_enc.op_flags);
+ rte_trace_point_emit_u8(ldpc_enc.basegraph);
+ rte_trace_point_emit_u16(ldpc_enc.z_c);
+ rte_trace_point_emit_u16(ldpc_enc.n_cb);
+ rte_trace_point_emit_u8(ldpc_enc.q_m);
+ rte_trace_point_emit_u16(ldpc_enc.n_filler);
+ rte_trace_point_emit_u8(ldpc_enc.rv_index);
+)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_turbo_enc,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_turbo_enc turbo_enc),
+ rte_trace_point_emit_u8(turbo_enc.code_block_mode);
+ rte_trace_point_emit_u32(turbo_enc.op_flags);
+ rte_trace_point_emit_u8(turbo_enc.rv_index);
+ rte_trace_point_emit_u16(turbo_enc.tb_params.k_neg);
+ rte_trace_point_emit_u16(turbo_enc.tb_params.k_pos);
+ rte_trace_point_emit_u8(turbo_enc.tb_params.c_neg);
+ rte_trace_point_emit_u8(turbo_enc.tb_params.c);
+ rte_trace_point_emit_u8(turbo_enc.tb_params.cab);
+ rte_trace_point_emit_u32(turbo_enc.tb_params.ea);
+ rte_trace_point_emit_u32(turbo_enc.tb_params.eb);
+ rte_trace_point_emit_u8(turbo_enc.tb_params.r);
+ rte_trace_point_emit_u32(turbo_enc.cb_params.e);
+ rte_trace_point_emit_u16(turbo_enc.cb_params.k);
+)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_turbo_dec,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_turbo_dec turbo_dec),
+ rte_trace_point_emit_u8(turbo_dec.code_block_mode);
+ rte_trace_point_emit_u32(turbo_dec.op_flags);
+ rte_trace_point_emit_u8(turbo_dec.rv_index);
+ rte_trace_point_emit_u8(turbo_dec.iter_count);
+ rte_trace_point_emit_u8(turbo_dec.ext_scale);
+ rte_trace_point_emit_u8(turbo_dec.num_maps);
+ rte_trace_point_emit_u16(turbo_dec.tb_params.k_neg);
+ rte_trace_point_emit_u16(turbo_dec.tb_params.k_pos);
+ rte_trace_point_emit_u8(turbo_dec.tb_params.c_neg);
+ rte_trace_point_emit_u8(turbo_dec.tb_params.c);
+ rte_trace_point_emit_u8(turbo_dec.tb_params.cab);
+ rte_trace_point_emit_u32(turbo_dec.tb_params.ea);
+ rte_trace_point_emit_u32(turbo_dec.tb_params.eb);
+ rte_trace_point_emit_u8(turbo_dec.tb_params.r);
+ rte_trace_point_emit_u32(turbo_dec.cb_params.e);
+ rte_trace_point_emit_u16(turbo_dec.cb_params.k);
+)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_fft,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_fft fft),
+ rte_trace_point_emit_u32(fft.op_flags);
+ rte_trace_point_emit_u16(fft.input_sequence_size);
+ rte_trace_point_emit_u16(fft.input_leading_padding);
+ rte_trace_point_emit_u16(fft.output_sequence_size);
+ rte_trace_point_emit_u16(fft.output_leading_depadding);
+ rte_trace_point_emit_u16(fft.cs_bitmap);
+ rte_trace_point_emit_u8(fft.num_antennas_log2);
+ rte_trace_point_emit_u8(fft.idft_log2);
+ rte_trace_point_emit_u8(fft.dft_log2);
+ rte_trace_point_emit_u8(fft.cs_time_adjustment);
+ rte_trace_point_emit_u8(fft.idft_shift);
+ rte_trace_point_emit_u8(fft.dft_shift);
+ rte_trace_point_emit_u16(fft.ncs_reciprocal);
+ rte_trace_point_emit_u16(fft.power_shift);
+ rte_trace_point_emit_u16(fft.fp16_exp_adjust);
+ rte_trace_point_emit_u8(fft.freq_resample_mode);
+ rte_trace_point_emit_u16(fft.output_depadded_size);
+)
+
+RTE_TRACE_POINT(
+ rte_bbdev_trace_op_mldts,
+ RTE_TRACE_POINT_ARGS(const struct rte_bbdev_op_mldts mldts),
+ rte_trace_point_emit_u32(mldts.op_flags);
+ rte_trace_point_emit_u16(mldts.num_rbs);
+ rte_trace_point_emit_u16(mldts.num_layers);
+ rte_trace_point_emit_u8(mldts.r_rep);
+ rte_trace_point_emit_u8(mldts.c_rep);
+)
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/bbdev/bbdev_trace_points.c b/lib/bbdev/bbdev_trace_points.c
index 942c7be819..23d1164e7d 100644
--- a/lib/bbdev/bbdev_trace_points.c
+++ b/lib/bbdev/bbdev_trace_points.c
@@ -21,6 +21,18 @@ RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_queue_start,
lib.bbdev.queue.start)
RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_queue_stop,
lib.bbdev.queue.stop)
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_ldpc_dec,
+ lib.bbdev.op.ldpc_dec);
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_ldpc_enc,
+ lib.bbdev.op.ldpc_enc);
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_turbo_dec,
+ lib.bbdev.op.turbo_dec);
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_turbo_enc,
+ lib.bbdev.op.turbo_enc);
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_fft,
+ lib.bbdev.op.fft);
+RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_op_mldts,
+ lib.bbdev.op.mldts);
RTE_EXPORT_EXPERIMENTAL_SYMBOL(__rte_bbdev_trace_enqueue, 25.03)
RTE_TRACE_POINT_REGISTER(rte_bbdev_trace_enqueue,
diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c
index e0f8c8eb0d..4958a87646 100644
--- a/lib/bbdev/rte_bbdev.c
+++ b/lib/bbdev/rte_bbdev.c
@@ -1281,6 +1281,30 @@ rte_bbdev_queue_ops_dump(uint16_t dev_id, uint16_t queue_id, FILE *f)
return dev->dev_ops->queue_ops_dump(dev, queue_id, f);
}
+RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bbdev_ops_trace, 25.03)
+void
+rte_bbdev_ops_trace(void *op, enum rte_bbdev_op_type op_type)
+{
+ struct rte_bbdev_dec_op *op_dec = op;
+ struct rte_bbdev_enc_op *op_enc = op;
+ struct rte_bbdev_fft_op *op_fft = op;
+ struct rte_bbdev_mldts_op *op_mldts = op;
+
+ if (op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ rte_bbdev_trace_op_ldpc_dec(op_dec->ldpc_dec);
+ } else if (op_type == RTE_BBDEV_OP_LDPC_ENC) {
+ rte_bbdev_trace_op_ldpc_enc(op_enc->ldpc_enc);
+ } else if (op_type == RTE_BBDEV_OP_FFT) {
+ rte_bbdev_trace_op_fft(op_fft->fft);
+ } else if (op_type == RTE_BBDEV_OP_MLDTS) {
+ rte_bbdev_trace_op_mldts(op_mldts->mldts);
+ } else if (op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ rte_bbdev_trace_op_turbo_dec(op_dec->turbo_dec);
+ } else if (op_type == RTE_BBDEV_OP_TURBO_ENC) {
+ rte_bbdev_trace_op_turbo_enc(op_enc->turbo_enc);
+ }
+}
+
RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bbdev_ops_param_string, 24.11)
char *
rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len)
diff --git a/lib/bbdev/rte_bbdev.h b/lib/bbdev/rte_bbdev.h
index 710280f0df..4912bc7b6f 100644
--- a/lib/bbdev/rte_bbdev.h
+++ b/lib/bbdev/rte_bbdev.h
@@ -1147,6 +1147,20 @@ __rte_experimental
char *
rte_bbdev_ops_param_string(void *op, enum rte_bbdev_op_type op_type, char *str, uint32_t len);
+/**
+ * Add a trace with detail of operation.
+ *
+ * @param op
+ * Pointer to an operation.
+ *
+ * @param op_type
+ * Operation type enum.
+ *
+ */
+__rte_experimental
+void
+rte_bbdev_ops_trace(void *op, enum rte_bbdev_op_type op_type);
+
#ifdef __cplusplus
}
#endif
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v1 2/2] baseband/acc: add trace points per operation
2025-05-27 22:36 [PATCH v1 0/2] bbdev: add trace point per operations Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 1/2] bbdev: add trace points per operation Nicolas Chautru
@ 2025-05-27 22:36 ` Nicolas Chautru
1 sibling, 0 replies; 3+ messages in thread
From: Nicolas Chautru @ 2025-05-27 22:36 UTC (permalink / raw)
To: dev, maxime.coquelin; +Cc: hemant.agrawal, hernan.vargas, Nicolas Chautru
Add the details of the operation parameters into
trace when that operation is rejected by the PMD.
Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com>
---
drivers/baseband/acc/acc_common.h | 1 +
drivers/baseband/acc/vrb_trace.h | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
index 4880444450..3d411cd25f 100644
--- a/drivers/baseband/acc/acc_common.h
+++ b/drivers/baseband/acc/acc_common.h
@@ -700,6 +700,7 @@ acc_error_log(struct acc_queue *q, void *op, uint8_t acc_error_idx, const char *
rte_bbdev_vrb_trace_error(0, rte_bbdev_op_type_str(q->op_type),
acc_error_string[acc_error_idx]);
+ rte_bbdev_ops_trace(op, q->op_type);
va_end(args);
}
diff --git a/drivers/baseband/acc/vrb_trace.h b/drivers/baseband/acc/vrb_trace.h
index 0bbfdc47d1..c9ae239fec 100644
--- a/drivers/baseband/acc/vrb_trace.h
+++ b/drivers/baseband/acc/vrb_trace.h
@@ -11,7 +11,7 @@ extern "C" {
#include <rte_trace_point.h>
-RTE_TRACE_POINT_FP(
+RTE_TRACE_POINT(
rte_bbdev_vrb_trace_error,
RTE_TRACE_POINT_ARGS(uint8_t dev_id, const char *op_string, const char *err_string),
rte_trace_point_emit_u8(dev_id);
@@ -19,7 +19,7 @@ RTE_TRACE_POINT_FP(
rte_trace_point_emit_string(err_string);
)
-RTE_TRACE_POINT_FP(
+RTE_TRACE_POINT(
rte_bbdev_vrb_trace_queue_error,
RTE_TRACE_POINT_ARGS(uint8_t qg_id, uint8_t aq_id, const char *str),
rte_trace_point_emit_u8(qg_id);
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-05-27 22:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-27 22:36 [PATCH v1 0/2] bbdev: add trace point per operations Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 1/2] bbdev: add trace points per operation Nicolas Chautru
2025-05-27 22:36 ` [PATCH v1 2/2] baseband/acc: " Nicolas Chautru
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).