automatic DPDK test reports
 help / color / mirror / Atom feed
* |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).