automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw104490 [PATCH] common/mlx5: fix mempool registration
@ 2021-11-18  5:09 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2021-11-18  5:09 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

[-- Attachment #1: Type: text/plain, Size: 5075 bytes --]

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/104490

_apply patch failure_

Submitter: Dmitry Kozlyuk <dkozlyuk@nvidia.com>
Date: Wednesday, November 17 2021 18:49:36 
Applied on: CommitID:0c6e27549c03695f85d949f5195a166b449b419c
Apply patch set 104490 failed:

Checking patch drivers/common/mlx5/mlx5_common.c...
Checking patch drivers/common/mlx5/mlx5_common_mp.c...
Checking patch drivers/common/mlx5/mlx5_common_mp.h...
Checking patch drivers/common/mlx5/mlx5_common_mr.c...
Hunk #2 succeeded at 1405 (offset 3 lines).
Hunk #3 succeeded at 1416 (offset 3 lines).
Hunk #4 succeeded at 1449 (offset 3 lines).
Hunk #5 succeeded at 1463 (offset 3 lines).
Hunk #6 succeeded at 1513 (offset 3 lines).
Hunk #7 succeeded at 1529 (offset 3 lines).
Hunk #8 succeeded at 1594 (offset 3 lines).
Hunk #9 succeeded at 1679 (offset 3 lines).
Hunk #10 succeeded at 1697 (offset 3 lines).
Hunk #11 succeeded at 1709 (offset 3 lines).
Hunk #12 succeeded at 1727 (offset 3 lines).
Hunk #13 succeeded at 1776 (offset 3 lines).
error: while searching for:
uint32_t
mlx5_mr_mb2mr_bh(struct mlx5_mr_ctrl *mr_ctrl, struct rte_mbuf *mb)
{
	uint32_t lkey;
	uintptr_t addr = (uintptr_t)mb->buf_addr;
	struct mlx5_common_device *cdev = mr_ctrl->cdev;

	if (cdev->config.mr_mempool_reg_en) {
		struct rte_mempool *mp = NULL;
		struct mlx5_mprq_buf *buf;

		if (!RTE_MBUF_HAS_EXTBUF(mb)) {
			mp = mlx5_mb2mp(mb);
		} else if (mb->shinfo->free_cb == mlx5_mprq_buf_free_cb) {
			/* Recover MPRQ mempool. */
			buf = mb->shinfo->fcb_opaque;
			mp = buf->mp;
		}
		if (mp != NULL) {
			lkey = mlx5_mr_mempool2mr_bh(&cdev->mr_scache,
						     mr_ctrl, mp, addr);
			/*
			 * Lookup can only fail on invalid input, e.g. "addr"
			 * is not from "mp" or "mp" has MEMPOOL_F_NON_IO set.
			 */
			if (lkey != UINT32_MAX)
				return lkey;
		}
		/* Fallback for generic mechanism in corner cases. */
	}
	return mlx5_mr_addr2mr_bh(mr_ctrl, addr);
}

error: patch failed: drivers/common/mlx5/mlx5_common_mr.c:1910
Checking patch drivers/common/mlx5/mlx5_common_mr.h...
Hunk #1 succeeded at 255 (offset -2 lines).
Checking patch drivers/net/mlx5/linux/mlx5_mp_os.c...
Checking patch drivers/net/mlx5/mlx5_rxq.c...
Checking patch drivers/net/mlx5/mlx5_trigger.c...
Applied patch drivers/common/mlx5/mlx5_common.c cleanly.
Applied patch drivers/common/mlx5/mlx5_common_mp.c cleanly.
Applied patch drivers/common/mlx5/mlx5_common_mp.h cleanly.
Applying patch drivers/common/mlx5/mlx5_common_mr.c with 1 reject...
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.
Hunk #8 applied cleanly.
Hunk #9 applied cleanly.
Hunk #10 applied cleanly.
Hunk #11 applied cleanly.
Hunk #12 applied cleanly.
Hunk #13 applied cleanly.
Rejected hunk #14.
Applied patch drivers/common/mlx5/mlx5_common_mr.h cleanly.
Applied patch drivers/net/mlx5/linux/mlx5_mp_os.c cleanly.
Applied patch drivers/net/mlx5/mlx5_rxq.c cleanly.
Applied patch drivers/net/mlx5/mlx5_trigger.c cleanly.
diff a/drivers/common/mlx5/mlx5_common_mr.c b/drivers/common/mlx5/mlx5_common_mr.c	(rejected hunks)
@@ -1910,32 +1930,33 @@ mlx5_mr_mempool2mr_bh(struct mlx5_mr_share_cache *share_cache,
 uint32_t
 mlx5_mr_mb2mr_bh(struct mlx5_mr_ctrl *mr_ctrl, struct rte_mbuf *mb)
 {
+	struct mlx5_mprq_buf *buf;
 	uint32_t lkey;
 	uintptr_t addr = (uintptr_t)mb->buf_addr;
 	struct mlx5_common_device *cdev = mr_ctrl->cdev;
+	struct rte_mempool *mp;
 
-	if (cdev->config.mr_mempool_reg_en) {
-		struct rte_mempool *mp = NULL;
-		struct mlx5_mprq_buf *buf;
-
-		if (!RTE_MBUF_HAS_EXTBUF(mb)) {
-			mp = mlx5_mb2mp(mb);
-		} else if (mb->shinfo->free_cb == mlx5_mprq_buf_free_cb) {
-			/* Recover MPRQ mempool. */
-			buf = mb->shinfo->fcb_opaque;
-			mp = buf->mp;
-		}
-		if (mp != NULL) {
-			lkey = mlx5_mr_mempool2mr_bh(&cdev->mr_scache,
-						     mr_ctrl, mp, addr);
-			/*
-			 * Lookup can only fail on invalid input, e.g. "addr"
-			 * is not from "mp" or "mp" has MEMPOOL_F_NON_IO set.
-			 */
-			if (lkey != UINT32_MAX)
-				return lkey;
-		}
-		/* Fallback for generic mechanism in corner cases. */
+	/* Recover MPRQ mempool. */
+	if (RTE_MBUF_HAS_EXTBUF(mb) &&
+	    mb->shinfo->free_cb == mlx5_mprq_buf_free_cb) {
+		buf = mb->shinfo->fcb_opaque;
+		mp = buf->mp;
+	} else {
+		mp = mlx5_mb2mp(mb);
+	}
+	lkey = mlx5_mr_mempool2mr_bh(&cdev->mr_scache,
+				     mr_ctrl, mp, addr);
+	if (lkey != UINT32_MAX)
+		return lkey;
+	/* Register pinned external memory if the mempool is not used for Rx. */
+	if (cdev->config.mr_mempool_reg_en &&
+	    (rte_pktmbuf_priv_flags(mp) & RTE_PKTMBUF_POOL_F_PINNED_EXT_BUF)) {
+		if (mlx5_mr_mempool_register(mr_ctrl->cdev, mp, true) < 0)
+			return UINT32_MAX;
+		lkey = mlx5_mr_mempool2mr_bh(&cdev->mr_scache,
+					     mr_ctrl, mp, addr);
+		MLX5_ASSERT(lkey != UINT32_MAX);
 	}
+	/* Fallback to generic mechanism in corner cases. */
 	return mlx5_mr_addr2mr_bh(mr_ctrl, addr);
 }

https://lab.dpdk.org/results/dashboard/patchsets/20272/

UNH-IOL DPDK Community Lab

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-11-18  5:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-18  5:09 |WARNING| pw104490 [PATCH] common/mlx5: fix mempool registration 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).