* |SUCCESS| pw122600 [PATCH] net/mlx5: ignore non-critical syndromes for Rx queue
[not found] <20230127032243.3990099-1-akozyrev@nvidia.com>
@ 2023-01-27 3:24 ` checkpatch
2023-01-27 3:25 ` |WARNING| " qemudev
1 sibling, 0 replies; 3+ messages in thread
From: checkpatch @ 2023-01-27 3:24 UTC (permalink / raw)
To: test-report
Test-Label: checkpatch
Test-Status: SUCCESS
http://dpdk.org/patch/122600
_coding style OK_
^ permalink raw reply [flat|nested] 3+ messages in thread
* |WARNING| pw122600 [PATCH] net/mlx5: ignore non-critical syndromes for Rx queue
[not found] <20230127032243.3990099-1-akozyrev@nvidia.com>
2023-01-27 3:24 ` |SUCCESS| pw122600 [PATCH] net/mlx5: ignore non-critical syndromes for Rx queue checkpatch
@ 2023-01-27 3:25 ` qemudev
1 sibling, 0 replies; 3+ messages in thread
From: qemudev @ 2023-01-27 3:25 UTC (permalink / raw)
To: test-report; +Cc: Alexander Kozyrev, zhoumin
Test-Label: loongarch-compilation
Test-Status: WARNING
http://dpdk.org/patch/122600
_apply patch failure_
Submitter: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Fri, 27 Jan 2023 05:22:43 +0200
DPDK git baseline: Repo:dpdk-next-net-mlx
Branch: for-next-net
CommitID: 12d6232372ef328574fdc09969d391d6ea5e1f3b
Apply patch set 122600 failed:
Checking patch drivers/net/mlx5/mlx5_rx.c...
error: while searching for:
* Number of CQEs to check for an error.
*
* @return
* MLX5_RECOVERY_ERROR_RET in case of recovery error, otherwise the CQE status.
*/
int
mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec, uint16_t err_n)
{
const uint16_t cqe_n = 1 << rxq->cqe_n;
const uint16_t cqe_mask = cqe_n - 1;
error: patch failed: drivers/net/mlx5/mlx5_rx.c:429
error: drivers/net/mlx5/mlx5_rx.c: patch does not apply
Checking patch drivers/net/mlx5/mlx5_rx.h...
error: while searching for:
uint16_t mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n);
void mlx5_rxq_initialize(struct mlx5_rxq_data *rxq);
__rte_noinline int mlx5_rx_err_handle(struct mlx5_rxq_data *rxq,
uint8_t vec, uint16_t err_n);
void mlx5_mprq_buf_free(struct mlx5_mprq_buf *buf);
uint16_t mlx5_rx_burst_mprq(void *dpdk_rxq, struct rte_mbuf **pkts,
uint16_t pkts_n);
error: patch failed: drivers/net/mlx5/mlx5_rx.h:286
error: drivers/net/mlx5/mlx5_rx.h: patch does not apply
Checking patch drivers/net/mlx5/mlx5_rxtx_vec.c...
error: while searching for:
rxq->stats.ipackets -= (pkts_n - n);
rxq->stats.ibytes -= err_bytes;
#endif
mlx5_rx_err_handle(rxq, 1, pkts_n);
return n;
}
error: patch failed: drivers/net/mlx5/mlx5_rxtx_vec.c:74
error: drivers/net/mlx5/mlx5_rxtx_vec.c: patch does not apply
^ permalink raw reply [flat|nested] 3+ messages in thread
* |WARNING| pw122600 [PATCH] net/mlx5: ignore non-critical syndromes for Rx queue
@ 2023-01-27 3:48 dpdklab
0 siblings, 0 replies; 3+ messages in thread
From: dpdklab @ 2023-01-27 3:48 UTC (permalink / raw)
To: test-report; +Cc: dpdk-test-reports
[-- Attachment #1: Type: text/plain, Size: 7306 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/122600
_apply patch failure_
Submitter: Alexander Kozyrev <akozyrev@nvidia.com>
Date: Friday, January 27 2023 03:22:43
Applied on: CommitID:2a211079a92e962bbd0ec81e425a6ffc32890e67
Apply patch set 122600 failed:
Checking patch drivers/net/mlx5/mlx5_rx.c...
error: while searching for:
* Number of CQEs to check for an error.
*
* @return
* MLX5_RECOVERY_ERROR_RET in case of recovery error, otherwise the CQE status.
*/
int
mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec, uint16_t err_n)
{
const uint16_t cqe_n = 1 << rxq->cqe_n;
const uint16_t cqe_mask = cqe_n - 1;
error: patch failed: drivers/net/mlx5/mlx5_rx.c:429
error: while searching for:
.cqe = &(*rxq->cqes)[(rxq->cq_ci - vec) & cqe_mask],
};
struct mlx5_mp_arg_queue_state_modify sm;
int ret, i;
switch (rxq->err_state) {
case MLX5_RXQ_ERR_STATE_NO_ERROR:
for (i = 0; i < (int)err_n; i++) {
u.cqe = &(*rxq->cqes)[(rxq->cq_ci - vec - i) & cqe_mask];
if (MLX5_CQE_OPCODE(u.cqe->op_own) == MLX5_CQE_RESP_ERR)
break;
}
rxq->err_state = MLX5_RXQ_ERR_STATE_NEED_RESET;
/* Fall-through */
error: patch failed: drivers/net/mlx5/mlx5_rx.c:447
Hunk #5 succeeded at 545 (offset -31 lines).
Hunk #6 succeeded at 565 (offset -31 lines).
Hunk #7 succeeded at 631 (offset -31 lines).
error: while searching for:
if (unlikely(ret != MLX5_CQE_STATUS_SW_OWN)) {
if (unlikely(ret == MLX5_CQE_STATUS_ERR ||
rxq->err_state)) {
ret = mlx5_rx_err_handle(rxq, 0, 1);
if (ret == MLX5_CQE_STATUS_HW_OWN ||
ret == MLX5_RECOVERY_ERROR_RET)
return MLX5_ERROR_CQE_RET;
} else {
return 0;
}
error: patch failed: drivers/net/mlx5/mlx5_rx.c:634
Hunk #9 succeeded at 694 (offset -33 lines).
Hunk #10 succeeded at 854 (offset -33 lines).
Hunk #11 succeeded at 893 (offset -33 lines).
Hunk #12 succeeded at 1120 (offset -33 lines).
Hunk #13 succeeded at 1133 (offset -33 lines).
Checking patch drivers/net/mlx5/mlx5_rx.h...
error: while searching for:
uint16_t mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n);
void mlx5_rxq_initialize(struct mlx5_rxq_data *rxq);
__rte_noinline int mlx5_rx_err_handle(struct mlx5_rxq_data *rxq,
uint8_t vec, uint16_t err_n);
void mlx5_mprq_buf_free(struct mlx5_mprq_buf *buf);
uint16_t mlx5_rx_burst_mprq(void *dpdk_rxq, struct rte_mbuf **pkts,
uint16_t pkts_n);
error: patch failed: drivers/net/mlx5/mlx5_rx.h:286
Checking patch drivers/net/mlx5/mlx5_rxtx_vec.c...
error: while searching for:
rxq->stats.ipackets -= (pkts_n - n);
rxq->stats.ibytes -= err_bytes;
#endif
mlx5_rx_err_handle(rxq, 1, pkts_n);
return n;
}
error: patch failed: drivers/net/mlx5/mlx5_rxtx_vec.c:74
Applying patch drivers/net/mlx5/mlx5_rx.c with 3 rejects...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Rejected hunk #3.
Rejected hunk #4.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Rejected hunk #8.
Hunk #9 applied cleanly.
Hunk #10 applied cleanly.
Hunk #11 applied cleanly.
Hunk #12 applied cleanly.
Hunk #13 applied cleanly.
Applying patch drivers/net/mlx5/mlx5_rx.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Applying patch drivers/net/mlx5/mlx5_rxtx_vec.c with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
diff a/drivers/net/mlx5/mlx5_rx.c b/drivers/net/mlx5/mlx5_rx.c (rejected hunks)
@@ -429,10 +434,14 @@ mlx5_rxq_initialize(struct mlx5_rxq_data *rxq)
* Number of CQEs to check for an error.
*
* @return
- * MLX5_RECOVERY_ERROR_RET in case of recovery error, otherwise the CQE status.
+ * MLX5_RECOVERY_ERROR_RET in case of recovery error,
+ * MLX5_RECOVERY_IGNORE_RET in case of non-critical error syndrome,
+ * MLX5_RECOVERY_COMPLETED_RET in case of recovery is completed,
+ * otherwise the CQE status after ignored error syndrome or queue reset.
*/
int
-mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec, uint16_t err_n)
+mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec,
+ uint16_t err_n, uint16_t *skip_cnt)
{
const uint16_t cqe_n = 1 << rxq->cqe_n;
const uint16_t cqe_mask = cqe_n - 1;
@@ -447,14 +456,35 @@ mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec, uint16_t err_n)
.cqe = &(*rxq->cqes)[(rxq->cq_ci - vec) & cqe_mask],
};
struct mlx5_mp_arg_queue_state_modify sm;
+ bool critical_syndrome = false;
int ret, i;
switch (rxq->err_state) {
+ case MLX5_RXQ_ERR_STATE_IGNORE:
+ ret = check_cqe(u.cqe, cqe_n, rxq->cq_ci - vec);
+ if (ret != MLX5_CQE_STATUS_ERR) {
+ rxq->err_state = MLX5_RXQ_ERR_STATE_NO_ERROR;
+ return ret;
+ }
+ /* Fall-through */
case MLX5_RXQ_ERR_STATE_NO_ERROR:
for (i = 0; i < (int)err_n; i++) {
u.cqe = &(*rxq->cqes)[(rxq->cq_ci - vec - i) & cqe_mask];
- if (MLX5_CQE_OPCODE(u.cqe->op_own) == MLX5_CQE_RESP_ERR)
+ if (MLX5_CQE_OPCODE(u.cqe->op_own) == MLX5_CQE_RESP_ERR) {
+ if (u.err_cqe->syndrome == MLX5_CQE_SYNDROME_LOCAL_QP_OP_ERR ||
+ u.err_cqe->syndrome == MLX5_CQE_SYNDROME_LOCAL_PROT_ERR ||
+ u.err_cqe->syndrome == MLX5_CQE_SYNDROME_WR_FLUSH_ERR)
+ critical_syndrome = true;
break;
+ }
+ }
+ if (!critical_syndrome) {
+ if (rxq->err_state == MLX5_RXQ_ERR_STATE_NO_ERROR) {
+ *skip_cnt = 0;
+ if (i == err_n)
+ rxq->err_state = MLX5_RXQ_ERR_STATE_IGNORE;
+ }
+ return MLX5_RECOVERY_IGNORE_RET;
}
rxq->err_state = MLX5_RXQ_ERR_STATE_NEED_RESET;
/* Fall-through */
@@ -634,10 +669,12 @@ mlx5_rx_poll_len(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cqe,
if (unlikely(ret != MLX5_CQE_STATUS_SW_OWN)) {
if (unlikely(ret == MLX5_CQE_STATUS_ERR ||
rxq->err_state)) {
- ret = mlx5_rx_err_handle(rxq, 0, 1);
- if (ret == MLX5_CQE_STATUS_HW_OWN ||
- ret == MLX5_RECOVERY_ERROR_RET)
- return MLX5_ERROR_CQE_RET;
+ ret = mlx5_rx_err_handle(rxq, 0, 1, skip_cnt);
+ if (ret == MLX5_CQE_STATUS_HW_OWN)
+ return MLX5_ERROR_CQE_MASK;
+ if (ret == MLX5_RECOVERY_ERROR_RET ||
+ ret == MLX5_RECOVERY_COMPLETED_RET)
+ return MLX5_CRITICAL_ERROR_CQE_RET;
} else {
return 0;
}
diff a/drivers/net/mlx5/mlx5_rx.h b/drivers/net/mlx5/mlx5_rx.h (rejected hunks)
@@ -286,8 +287,8 @@ int mlx5_hrxq_modify(struct rte_eth_dev *dev, uint32_t hxrq_idx,
uint16_t mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n);
void mlx5_rxq_initialize(struct mlx5_rxq_data *rxq);
-__rte_noinline int mlx5_rx_err_handle(struct mlx5_rxq_data *rxq,
- uint8_t vec, uint16_t err_n);
+__rte_noinline int mlx5_rx_err_handle(struct mlx5_rxq_data *rxq, uint8_t vec,
+ uint16_t err_n, uint16_t *skip_cnt);
void mlx5_mprq_buf_free(struct mlx5_mprq_buf *buf);
uint16_t mlx5_rx_burst_mprq(void *dpdk_rxq, struct rte_mbuf **pkts,
uint16_t pkts_n);
diff a/drivers/net/mlx5/mlx5_rxtx_vec.c b/drivers/net/mlx5/mlx5_rxtx_vec.c (rejected hunks)
@@ -74,7 +75,7 @@ rxq_handle_pending_error(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts,
rxq->stats.ipackets -= (pkts_n - n);
rxq->stats.ibytes -= err_bytes;
#endif
- mlx5_rx_err_handle(rxq, 1, pkts_n);
+ mlx5_rx_err_handle(rxq, 1, pkts_n, &skip_cnt);
return n;
}
https://lab.dpdk.org/results/dashboard/patchsets/25096/
UNH-IOL DPDK Community Lab
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-01-27 3:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20230127032243.3990099-1-akozyrev@nvidia.com>
2023-01-27 3:24 ` |SUCCESS| pw122600 [PATCH] net/mlx5: ignore non-critical syndromes for Rx queue checkpatch
2023-01-27 3:25 ` |WARNING| " qemudev
2023-01-27 3:48 dpdklab
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).