* |WARNING| pw117850 [PATCH] [v1, 22/35] net/ionic: do bulk allocations of receive mbufs
@ 2022-10-11 4:49 dpdklab
0 siblings, 0 replies; only message in thread
From: dpdklab @ 2022-10-11 4:49 UTC (permalink / raw)
To: test-report; +Cc: dpdk-test-reports
[-- Attachment #1: Type: text/plain, Size: 4323 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/117850
_apply patch failure_
Submitter: Andrew Boyer <Andrew.Boyer@amd.com>
Date: Tuesday, October 11 2022 00:50:19
Applied on: CommitID:f13604fad12a81383da7b04821a4befb3d01e2ed
Apply patch set 117850 failed:
Checking patch drivers/net/ionic/ionic_lif.h...
error: while searching for:
uint16_t hdr_seg_size; /* Length of first segment of RX chain */
uint16_t seg_size; /* Length of all subsequent segments */
uint16_t flags;
/* cacheline3 (inside stats) */
struct ionic_rx_stats stats;
};
struct ionic_tx_qcq {
error: patch failed: drivers/net/ionic/ionic_lif.h:86
Checking patch drivers/net/ionic/ionic_rxtx.c...
error: while searching for:
* fragments that were left dangling for later reuse
*/
ionic_empty_array(q->info, q->num_descs * q->num_segs, 0);
}
/*********************************************************************
error: patch failed: drivers/net/ionic/ionic_rxtx.c:77
error: while searching for:
rte_iova_t data_iova;
uint32_t i;
void **info;
info = IONIC_INFO_PTR(q, q->head_idx);
desc = &desc_base[q->head_idx];
error: patch failed: drivers/net/ionic/ionic_rxtx.c:950
error: while searching for:
if (unlikely(info[0]))
return 0;
rxm = rte_mbuf_raw_alloc(rxq->mb_pool);
if (unlikely(rxm == NULL)) {
assert(0);
return -ENOMEM;
}
info[0] = rxm;
data_iova = rte_mbuf_data_iova_default(rxm);
error: patch failed: drivers/net/ionic/ionic_rxtx.c:959
error: while searching for:
if (info[i])
return 0;
rxm_seg = rte_mbuf_raw_alloc(rxq->mb_pool);
if (rxm_seg == NULL) {
assert(0);
return -ENOMEM;
}
info[i] = rxm_seg;
/* The data_off does not get set to 0 until later */
error: patch failed: drivers/net/ionic/ionic_rxtx.c:975
Applying patch drivers/net/ionic/ionic_lif.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Applying patch drivers/net/ionic/ionic_rxtx.c with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
diff a/drivers/net/ionic/ionic_lif.h b/drivers/net/ionic/ionic_lif.h (rejected hunks)
@@ -86,9 +88,13 @@ struct ionic_rx_qcq {
uint16_t hdr_seg_size; /* Length of first segment of RX chain */
uint16_t seg_size; /* Length of all subsequent segments */
uint16_t flags;
+ uint16_t mb_idx;
/* cacheline3 (inside stats) */
struct ionic_rx_stats stats;
+
+ /* cacheline4+ */
+ struct rte_mbuf *mbs[IONIC_MBUF_BULK_ALLOC] __rte_cache_aligned;
};
struct ionic_tx_qcq {
diff a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c (rejected hunks)
@@ -77,6 +77,10 @@ ionic_rx_empty(struct ionic_rx_qcq *rxq)
* fragments that were left dangling for later reuse
*/
ionic_empty_array(q->info, q->num_descs * q->num_segs, 0);
+
+ ionic_empty_array((void **)rxq->mbs,
+ IONIC_MBUF_BULK_ALLOC, rxq->mb_idx);
+ rxq->mb_idx = 0;
}
/*********************************************************************
@@ -950,6 +954,7 @@ ionic_rx_fill_one(struct ionic_rx_qcq *rxq)
rte_iova_t data_iova;
uint32_t i;
void **info;
+ int ret;
info = IONIC_INFO_PTR(q, q->head_idx);
desc = &desc_base[q->head_idx];
@@ -959,12 +964,19 @@ ionic_rx_fill_one(struct ionic_rx_qcq *rxq)
if (unlikely(info[0]))
return 0;
- rxm = rte_mbuf_raw_alloc(rxq->mb_pool);
- if (unlikely(rxm == NULL)) {
- assert(0);
- return -ENOMEM;
+ if (rxq->mb_idx == 0) {
+ ret = rte_mempool_get_bulk(rxq->mb_pool,
+ (void **)rxq->mbs,
+ IONIC_MBUF_BULK_ALLOC);
+ if (ret) {
+ assert(0);
+ return -ENOMEM;
+ }
+
+ rxq->mb_idx = IONIC_MBUF_BULK_ALLOC;
}
+ rxm = rxq->mbs[--rxq->mb_idx];
info[0] = rxm;
data_iova = rte_mbuf_data_iova_default(rxm);
@@ -975,12 +987,19 @@ ionic_rx_fill_one(struct ionic_rx_qcq *rxq)
if (info[i])
return 0;
- rxm_seg = rte_mbuf_raw_alloc(rxq->mb_pool);
- if (rxm_seg == NULL) {
- assert(0);
- return -ENOMEM;
+ if (rxq->mb_idx == 0) {
+ ret = rte_mempool_get_bulk(rxq->mb_pool,
+ (void **)rxq->mbs,
+ IONIC_MBUF_BULK_ALLOC);
+ if (ret) {
+ assert(0);
+ return -ENOMEM;
+ }
+
+ rxq->mb_idx = IONIC_MBUF_BULK_ALLOC;
}
+ rxm_seg = rxq->mbs[--rxq->mb_idx];
info[i] = rxm_seg;
/* The data_off does not get set to 0 until later */
https://lab.dpdk.org/results/dashboard/patchsets/23891/
UNH-IOL DPDK Community Lab
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-10-11 4:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-11 4:49 |WARNING| pw117850 [PATCH] [v1, 22/35] net/ionic: do bulk allocations of receive mbufs 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).