From: dpdklab@iol.unh.edu
To: test-report@dpdk.org
Cc: dpdk-test-reports@iol.unh.edu
Subject: [dpdk-test-report] |WARNING| pw95583 [PATCH] net/bnxt: fix missing barriers in completion handling
Date: Thu, 8 Jul 2021 15:28:56 -0400 (EDT) [thread overview]
Message-ID: <20210708192856.CF03E88E71@noxus.dpdklab.iol.unh.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 9049 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/95583
_apply patch failure_
Submitter: Lance Richardson <lance.richardson@broadcom.com>
Date: Thursday, July 08 2021 19:15:01
Applied on: CommitID:175af25734f295874e31b33ccd0879e69fd152a9
Apply patch set 95583 failed:
Checking patch drivers/net/bnxt/bnxt_cpr.h...
error: while searching for:
#include <stdbool.h>
#include <rte_io.h>
struct bnxt_db_info;
#define CMP_VALID(cmp, raw_cons, ring) \
(!!(rte_le_to_cpu_32(((struct cmpl_base *)(cmp))->info3_v) & \
CMPL_BASE_V) == !((raw_cons) & ((ring)->ring_size)))
#define CMP_TYPE(cmp) \
(((struct cmpl_base *)cmp)->type & CMPL_BASE_TYPE_MASK)
error: patch failed: drivers/net/bnxt/bnxt_cpr.h:8
Hunk #2 succeeded at 138 (offset 20 lines).
Checking patch drivers/net/bnxt/bnxt_ethdev.c...
Hunk #1 succeeded at 3038 (offset -88 lines).
Hunk #2 succeeded at 3050 (offset -88 lines).
Hunk #3 succeeded at 3158 (offset 12 lines).
Hunk #4 succeeded at 3102 (offset -88 lines).
Hunk #5 succeeded at 3116 (offset -88 lines).
Hunk #6 succeeded at 3133 (offset -88 lines).
Hunk #7 succeeded at 3058 (offset -189 lines).
error: while searching for:
struct bnxt_tx_queue *txq = (struct bnxt_tx_queue *)tx_queue;
struct bnxt_cp_ring_info *cpr = txq->cp_ring;
uint32_t ring_mask, raw_cons, nb_tx_pkts = 0;
struct bnxt_ring *cp_ring_struct;
struct cmpl_base *cp_desc_ring;
int rc;
error: patch failed: drivers/net/bnxt/bnxt_ethdev.c:3299
error: while searching for:
raw_cons = cpr->cp_raw_cons;
cp_desc_ring = cpr->cp_desc_ring;
cp_ring_struct = cpr->cp_ring_struct;
ring_mask = cpr->cp_ring_struct->ring_mask;
/* Check to see if hw has posted a completion for the descriptor. */
error: patch failed: drivers/net/bnxt/bnxt_ethdev.c:3316
error: while searching for:
cons = RING_CMPL(ring_mask, raw_cons);
txcmp = (struct tx_cmpl *)&cp_desc_ring[cons];
if (!CMP_VALID(txcmp, raw_cons, cp_ring_struct))
break;
if (CMP_TYPE(txcmp) == TX_CMPL_TYPE_TX_L2)
error: patch failed: drivers/net/bnxt/bnxt_ethdev.c:3327
Checking patch drivers/net/bnxt/bnxt_irq.c...
error: while searching for:
{
struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param;
struct bnxt *bp = eth_dev->data->dev_private;
struct bnxt_cp_ring_info *cpr;
struct cmpl_base *cmp;
uint32_t raw_cons;
uint32_t cons;
if (bp == NULL)
return;
error: patch failed: drivers/net/bnxt/bnxt_irq.c:21
Hunk #2 succeeded at 30 (offset -3 lines).
Hunk #3 succeeded at 46 (offset -3 lines).
Checking patch drivers/net/bnxt/bnxt_rxr.c...
error: while searching for:
raw_cp_cons = ADV_RAW_CMP(raw_cp_cons, agg_bufs);
last_cp_cons = RING_CMP(cpr->cp_ring_struct, raw_cp_cons);
agg_cmpl = (struct rx_pkt_cmpl *)&cpr->cp_desc_ring[last_cp_cons];
return CMP_VALID(agg_cmpl, raw_cp_cons, cpr->cp_ring_struct);
}
/* TPA consume agg buffer out of order, allocate connected data only */
error: patch failed: drivers/net/bnxt/bnxt_rxr.c:297
error: while searching for:
cp_cons = RING_CMP(cpr->cp_ring_struct, tmp_raw_cons);
rxcmp1 = (struct rx_pkt_cmpl_hi *)&cpr->cp_desc_ring[cp_cons];
if (!CMP_VALID(rxcmp1, tmp_raw_cons, cpr->cp_ring_struct))
return -EBUSY;
if (cmp_type == RX_TPA_START_CMPL_TYPE_RX_TPA_START ||
error: patch failed: drivers/net/bnxt/bnxt_rxr.c:892
error: while searching for:
cons = RING_CMP(cpr->cp_ring_struct, raw_cons);
rxcmp = (struct rx_pkt_cmpl *)&cpr->cp_desc_ring[cons];
if (!CMP_VALID(rxcmp, raw_cons, cpr->cp_ring_struct))
break;
if (CMP_TYPE(rxcmp) == CMPL_BASE_TYPE_HWRM_DONE) {
PMD_DRV_LOG(ERR, "Rx flush done\n");
error: patch failed: drivers/net/bnxt/bnxt_rxr.c:1077
Checking patch drivers/net/bnxt/bnxt_rxtx_vec_avx2.c...
error: drivers/net/bnxt/bnxt_rxtx_vec_avx2.c: does not exist in index
Checking patch drivers/net/bnxt/bnxt_rxtx_vec_neon.c...
Hunk #1 succeeded at 314 (offset -25 lines).
Checking patch drivers/net/bnxt/bnxt_rxtx_vec_sse.c...
Hunk #1 succeeded at 296 (offset -24 lines).
Checking patch drivers/net/bnxt/bnxt_txr.c...
error: while searching for:
cons = RING_CMPL(ring_mask, raw_cons);
txcmp = (struct tx_cmpl *)&cpr->cp_desc_ring[cons];
if (!CMP_VALID(txcmp, raw_cons, cp_ring_struct))
break;
opaque = rte_le_to_cpu_32(txcmp->opaque);
error: patch failed: drivers/net/bnxt/bnxt_txr.c:461
Applying patch drivers/net/bnxt/bnxt_cpr.h with 1 reject...
Rejected hunk #1.
Hunk #2 applied cleanly.
Applying patch drivers/net/bnxt/bnxt_ethdev.c with 3 rejects...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Rejected hunk #8.
Rejected hunk #9.
Rejected hunk #10.
Applying patch drivers/net/bnxt/bnxt_irq.c with 1 reject...
Rejected hunk #1.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Applying patch drivers/net/bnxt/bnxt_rxr.c with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applied patch drivers/net/bnxt/bnxt_rxtx_vec_neon.c cleanly.
Applied patch drivers/net/bnxt/bnxt_rxtx_vec_sse.c cleanly.
Applying patch drivers/net/bnxt/bnxt_txr.c with 1 reject...
Rejected hunk #1.
diff a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h (rejected hunks)
@@ -8,13 +8,10 @@
#include <stdbool.h>
#include <rte_io.h>
+#include "hsi_struct_def_dpdk.h"
struct bnxt_db_info;
-#define CMP_VALID(cmp, raw_cons, ring) \
- (!!(rte_le_to_cpu_32(((struct cmpl_base *)(cmp))->info3_v) & \
- CMPL_BASE_V) == !((raw_cons) & ((ring)->ring_size)))
-
#define CMP_TYPE(cmp) \
(((struct cmpl_base *)cmp)->type & CMPL_BASE_TYPE_MASK)
diff a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c (rejected hunks)
@@ -3299,7 +3301,6 @@ bnxt_tx_descriptor_status_op(void *tx_queue, uint16_t offset)
struct bnxt_tx_queue *txq = (struct bnxt_tx_queue *)tx_queue;
struct bnxt_cp_ring_info *cpr = txq->cp_ring;
uint32_t ring_mask, raw_cons, nb_tx_pkts = 0;
- struct bnxt_ring *cp_ring_struct;
struct cmpl_base *cp_desc_ring;
int rc;
@@ -3316,7 +3317,6 @@ bnxt_tx_descriptor_status_op(void *tx_queue, uint16_t offset)
raw_cons = cpr->cp_raw_cons;
cp_desc_ring = cpr->cp_desc_ring;
- cp_ring_struct = cpr->cp_ring_struct;
ring_mask = cpr->cp_ring_struct->ring_mask;
/* Check to see if hw has posted a completion for the descriptor. */
@@ -3327,7 +3327,7 @@ bnxt_tx_descriptor_status_op(void *tx_queue, uint16_t offset)
cons = RING_CMPL(ring_mask, raw_cons);
txcmp = (struct tx_cmpl *)&cp_desc_ring[cons];
- if (!CMP_VALID(txcmp, raw_cons, cp_ring_struct))
+ if (!bnxt_cpr_cmp_valid(txcmp, raw_cons, ring_mask + 1))
break;
if (CMP_TYPE(txcmp) == TX_CMPL_TYPE_TX_L2)
diff a/drivers/net/bnxt/bnxt_irq.c b/drivers/net/bnxt/bnxt_irq.c (rejected hunks)
@@ -21,10 +21,10 @@ void bnxt_int_handler(void *param)
{
struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param;
struct bnxt *bp = eth_dev->data->dev_private;
+ uint32_t cons, raw_cons, cp_ring_size;
struct bnxt_cp_ring_info *cpr;
struct cmpl_base *cmp;
- uint32_t raw_cons;
- uint32_t cons;
+
if (bp == NULL)
return;
diff a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c (rejected hunks)
@@ -297,7 +297,8 @@ static int bnxt_agg_bufs_valid(struct bnxt_cp_ring_info *cpr,
raw_cp_cons = ADV_RAW_CMP(raw_cp_cons, agg_bufs);
last_cp_cons = RING_CMP(cpr->cp_ring_struct, raw_cp_cons);
agg_cmpl = (struct rx_pkt_cmpl *)&cpr->cp_desc_ring[last_cp_cons];
- return CMP_VALID(agg_cmpl, raw_cp_cons, cpr->cp_ring_struct);
+ return bnxt_cpr_cmp_valid(agg_cmpl, raw_cp_cons,
+ cpr->cp_ring_struct->ring_size);
}
/* TPA consume agg buffer out of order, allocate connected data only */
@@ -892,7 +893,8 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
cp_cons = RING_CMP(cpr->cp_ring_struct, tmp_raw_cons);
rxcmp1 = (struct rx_pkt_cmpl_hi *)&cpr->cp_desc_ring[cp_cons];
- if (!CMP_VALID(rxcmp1, tmp_raw_cons, cpr->cp_ring_struct))
+ if (!bnxt_cpr_cmp_valid(rxcmp1, tmp_raw_cons,
+ cpr->cp_ring_struct->ring_size))
return -EBUSY;
if (cmp_type == RX_TPA_START_CMPL_TYPE_RX_TPA_START ||
@@ -1077,7 +1079,8 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
cons = RING_CMP(cpr->cp_ring_struct, raw_cons);
rxcmp = (struct rx_pkt_cmpl *)&cpr->cp_desc_ring[cons];
- if (!CMP_VALID(rxcmp, raw_cons, cpr->cp_ring_struct))
+ if (!bnxt_cpr_cmp_valid(rxcmp, raw_cons,
+ cpr->cp_ring_struct->ring_size))
break;
if (CMP_TYPE(rxcmp) == CMPL_BASE_TYPE_HWRM_DONE) {
PMD_DRV_LOG(ERR, "Rx flush done\n");
diff a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c (rejected hunks)
@@ -461,7 +461,7 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq)
cons = RING_CMPL(ring_mask, raw_cons);
txcmp = (struct tx_cmpl *)&cpr->cp_desc_ring[cons];
- if (!CMP_VALID(txcmp, raw_cons, cp_ring_struct))
+ if (!bnxt_cpr_cmp_valid(txcmp, raw_cons, ring_mask + 1))
break;
opaque = rte_le_to_cpu_32(txcmp->opaque);
https://lab.dpdk.org/results/dashboard/patchsets/17737/
UNH-IOL DPDK Community Lab
next reply other threads:[~2021-07-08 19:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-08 19:28 dpdklab [this message]
[not found] <20210708191501.77972-1-lance.richardson@broadcom.com>
2021-07-08 19:15 ` checkpatch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210708192856.CF03E88E71@noxus.dpdklab.iol.unh.edu \
--to=dpdklab@iol.unh.edu \
--cc=dpdk-test-reports@iol.unh.edu \
--cc=test-report@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).