net/mlx5: extend debug logs verbosity
[dpdk.git] / drivers / net / mlx5 / mlx5_rxtx.h
index 7de1d10..c9b165d 100644 (file)
 #pragma GCC diagnostic error "-Wpedantic"
 #endif
 
-/* DPDK headers don't like -pedantic. */
-#ifdef PEDANTIC
-#pragma GCC diagnostic ignored "-Wpedantic"
-#endif
 #include <rte_mbuf.h>
 #include <rte_mempool.h>
 #include <rte_common.h>
-#ifdef PEDANTIC
-#pragma GCC diagnostic error "-Wpedantic"
-#endif
+#include <rte_hexdump.h>
 
 #include "mlx5_utils.h"
 #include "mlx5.h"
@@ -116,8 +110,7 @@ struct rxq {
        unsigned int rss_hash:1; /* RSS hash result is enabled. */
        unsigned int mark:1; /* Marked flow available on the queue. */
        unsigned int pending_err:1; /* CQE error needs to be handled. */
-       unsigned int trim_elts:1; /* Whether elts needs clean-up. */
-       unsigned int :6; /* Remaining bits. */
+       unsigned int :7; /* Remaining bits. */
        volatile uint32_t *rq_db;
        volatile uint32_t *cq_db;
        uint16_t rq_ci;
@@ -310,7 +303,6 @@ void rxq_cleanup(struct rxq_ctrl *);
 int mlx5_rx_queue_setup(struct rte_eth_dev *, uint16_t, uint16_t, unsigned int,
                        const struct rte_eth_rxconf *, struct rte_mempool *);
 void mlx5_rx_queue_release(void *);
-uint16_t mlx5_rx_burst_secondary_setup(void *, struct rte_mbuf **, uint16_t);
 int priv_rx_intr_vec_enable(struct priv *priv);
 void priv_rx_intr_vec_disable(struct priv *priv);
 #ifdef HAVE_UPDATE_CQ_CI
@@ -326,7 +318,6 @@ int txq_ctrl_setup(struct rte_eth_dev *, struct txq_ctrl *, uint16_t,
 int mlx5_tx_queue_setup(struct rte_eth_dev *, uint16_t, uint16_t, unsigned int,
                        const struct rte_eth_txconf *);
 void mlx5_tx_queue_release(void *);
-uint16_t mlx5_tx_burst_secondary_setup(void *, struct rte_mbuf **, uint16_t);
 
 /* mlx5_rxtx.c */
 
@@ -348,7 +339,6 @@ int priv_check_raw_vec_tx_support(struct priv *);
 int priv_check_vec_tx_support(struct priv *);
 int rxq_check_vec_support(struct rxq *);
 int priv_check_vec_rx_support(struct priv *);
-void priv_prep_vec_rx_function(struct priv *);
 uint16_t mlx5_tx_burst_raw_vec(void *, struct rte_mbuf **, uint16_t);
 uint16_t mlx5_tx_burst_vec(void *, struct rte_mbuf **, uint16_t);
 uint16_t mlx5_rx_burst_vec(void *, struct rte_mbuf **, uint16_t);
@@ -419,16 +409,24 @@ check_cqe(volatile struct mlx5_cqe *cqe,
                if ((syndrome == MLX5_CQE_SYNDROME_LOCAL_LENGTH_ERR) ||
                    (syndrome == MLX5_CQE_SYNDROME_REMOTE_ABORTED_ERR))
                        return 0;
-               if (!check_cqe_seen(cqe))
+               if (!check_cqe_seen(cqe)) {
                        ERROR("unexpected CQE error %u (0x%02x)"
                              " syndrome 0x%02x",
                              op_code, op_code, syndrome);
+                       rte_hexdump(stderr, "MLX5 Error CQE:",
+                                   (const void *)((uintptr_t)err_cqe),
+                                   sizeof(*err_cqe));
+               }
                return 1;
        } else if ((op_code != MLX5_CQE_RESP_SEND) &&
                   (op_code != MLX5_CQE_REQ)) {
-               if (!check_cqe_seen(cqe))
+               if (!check_cqe_seen(cqe)) {
                        ERROR("unexpected CQE opcode %u (0x%02x)",
                              op_code, op_code);
+                       rte_hexdump(stderr, "MLX5 CQE:",
+                                   (const void *)((uintptr_t)cqe),
+                                   sizeof(*cqe));
+               }
                return 1;
        }
 #endif /* NDEBUG */
@@ -483,8 +481,13 @@ mlx5_tx_complete(struct txq *txq)
 #ifndef NDEBUG
        if ((MLX5_CQE_OPCODE(cqe->op_own) == MLX5_CQE_RESP_ERR) ||
            (MLX5_CQE_OPCODE(cqe->op_own) == MLX5_CQE_REQ_ERR)) {
-               if (!check_cqe_seen(cqe))
+               if (!check_cqe_seen(cqe)) {
                        ERROR("unexpected error CQE, TX stopped");
+                       rte_hexdump(stderr, "MLX5 TXQ:",
+                                   (const void *)((uintptr_t)txq->wqes),
+                                   ((1 << txq->wqe_n) *
+                                    MLX5_WQE_SIZE));
+               }
                return;
        }
 #endif /* NDEBUG */