In the file `dpdk/drivers/net/mlx5/mlx5_tx.c` method
`mlx5_tx_handle_completion` I inspect the timestamp field of a cqe:
@@ -192,6 +196,9 @@ mlx5_tx_handle_completion(struct mlx5_txq_data
*__rte_restrict txq,
cqe = &txq->cqes[txq->cq_ci & txq->cqe_m];
ret = check_cqe(cqe, txq->cqe_s, txq->cq_ci);
+ if (ret==MLX5_CQE_STATUS_HW_OWN) {
+ printf("line:%d cqe timestamp: %lu\n", __LINE__, cqe->timestamp);
+ }
Consider transmitting several thousand packets. This print to stdout with
regard to the timestamp,
* prints 0 for timestamp for the first ~2000 packet completions
* prints non-zero numbers thereafter, however, not monotonically increasing
e.g. completion event timestamp for occurrence N is 10x smaller than N-1
In the file `dpdk/drivers/net/mlx5/mlx5_tx.c` method `mlx5_tx_handle_completion` I inspect the timestamp field of a cqe: @@ -192,6 +196,9 @@ mlx5_tx_handle_completion(struct mlx5_txq_data *__rte_restrict txq, cqe = &txq->cqes[txq->cq_ci & txq->cqe_m]; ret = check_cqe(cqe, txq->cqe_s, txq->cq_ci); + if (ret==MLX5_CQE_STATUS_HW_OWN) { + printf("line:%d cqe timestamp: %lu\n", __LINE__, cqe->timestamp); + } Consider transmitting several thousand packets. This print to stdout with regard to the timestamp, * prints 0 for timestamp for the first ~2000 packet completions * prints non-zero numbers thereafter, however, not monotonically increasing e.g. completion event timestamp for occurrence N is 10x smaller than N-1