|WARNING| pw133833-133831 [PATCH] [v5, 3/3] net/hns3: report maximum buffer size

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Fri Nov 3 13:07:54 CET 2023


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

_apply patch failure_

Submitter: Huisong Li <lihuisong at huawei.com>
Date: Friday, November 03 2023 10:27:59 
Applied on: CommitID:75e885b117bb6313d6de7082946e22203fff2e7e
Apply patch set 133833-133831 failed:

Checking patch doc/guides/rel_notes/release_23_11.rst...
error: while searching for:
  a group's miss actions, which are the actions to be performed on packets
  that didn't match any of the flow rules in the group.

* **Updated Amazon ena (Elastic Network Adapter) net driver.**

  * Upgraded ENA HAL to latest version.

error: patch failed: doc/guides/rel_notes/release_23_11.rst:122
Checking patch lib/ethdev/rte_ethdev.c...
error: while searching for:
	struct rte_eth_dev *dev;
	struct rte_eth_dev_info dev_info;
	struct rte_eth_rxconf local_conf;

	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
	dev = &rte_eth_devices[port_id];

error: patch failed: lib/ethdev/rte_ethdev.c:2112
error: while searching for:
			return ret;

		mbp_buf_size = rte_pktmbuf_data_room_size(mp);
	} else if (rx_conf != NULL && rx_conf->rx_nseg > 0) {
		const struct rte_eth_rxseg_split *rx_seg;
		uint16_t n_seg;

error: patch failed: lib/ethdev/rte_ethdev.c:2158
error: while searching for:
	dev_info->min_mtu = RTE_ETHER_MIN_LEN - RTE_ETHER_HDR_LEN -
		RTE_ETHER_CRC_LEN;
	dev_info->max_mtu = UINT16_MAX;

	if (*dev->dev_ops->dev_infos_get == NULL)
		return -ENOTSUP;

error: patch failed: lib/ethdev/rte_ethdev.c:3757
Checking patch lib/ethdev/rte_ethdev.h...
error: while searching for:
	uint16_t min_mtu;	/**< Minimum MTU allowed */
	uint16_t max_mtu;	/**< Maximum MTU allowed */
	const uint32_t *dev_flags; /**< Device flags */
	uint32_t min_rx_bufsize; /**< Minimum size of Rx buffer. */
	uint32_t max_rx_pktlen; /**< Maximum configurable length of Rx pkt. */
	/** Maximum configurable size of LRO aggregated packet. */
	uint32_t max_lro_pkt_size;

error: patch failed: lib/ethdev/rte_ethdev.h:1723
Applying patch doc/guides/rel_notes/release_23_11.rst with 1 reject...
Rejected hunk #1.
Applying patch lib/ethdev/rte_ethdev.c with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applying patch lib/ethdev/rte_ethdev.h with 1 reject...
Rejected hunk #1.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst	(rejected hunks)
@@ -122,6 +122,13 @@ New Features
   a group's miss actions, which are the actions to be performed on packets
   that didn't match any of the flow rules in the group.
 
+* **Added maximum Rx buffer size to report.**
+
+  Introduced the ``max_rx_bufsize`` field representing the maximum Rx
+  buffer size per descriptor supported by HW in structure ``rte_eth_dev_info``
+  to report user and to avoid wasting space of mempool.
+  Its value is UINT32_MAX if driver doesn't report it.
+
 * **Updated Amazon ena (Elastic Network Adapter) net driver.**
 
   * Upgraded ENA HAL to latest version.
diff a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c	(rejected hunks)
@@ -2112,6 +2112,7 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
 	struct rte_eth_dev *dev;
 	struct rte_eth_dev_info dev_info;
 	struct rte_eth_rxconf local_conf;
+	uint32_t buf_data_size;
 
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
 	dev = &rte_eth_devices[port_id];
@@ -2158,6 +2159,12 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,
 			return ret;
 
 		mbp_buf_size = rte_pktmbuf_data_room_size(mp);
+		buf_data_size = mbp_buf_size - RTE_PKTMBUF_HEADROOM;
+		if (buf_data_size > dev_info.max_rx_bufsize)
+			RTE_ETHDEV_LOG(DEBUG,
+				"For port_id=%u, the mbuf data buffer size (%u) is bigger than "
+				"max buffer size (%u) device can utilize, so mbuf size can be reduced.\n",
+				port_id, buf_data_size, dev_info.max_rx_bufsize);
 	} else if (rx_conf != NULL && rx_conf->rx_nseg > 0) {
 		const struct rte_eth_rxseg_split *rx_seg;
 		uint16_t n_seg;
@@ -3757,6 +3764,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
 	dev_info->min_mtu = RTE_ETHER_MIN_LEN - RTE_ETHER_HDR_LEN -
 		RTE_ETHER_CRC_LEN;
 	dev_info->max_mtu = UINT16_MAX;
+	dev_info->max_rx_bufsize = UINT32_MAX;
 
 	if (*dev->dev_ops->dev_infos_get == NULL)
 		return -ENOTSUP;
diff a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h	(rejected hunks)
@@ -1723,7 +1723,15 @@ struct rte_eth_dev_info {
 	uint16_t min_mtu;	/**< Minimum MTU allowed */
 	uint16_t max_mtu;	/**< Maximum MTU allowed */
 	const uint32_t *dev_flags; /**< Device flags */
-	uint32_t min_rx_bufsize; /**< Minimum size of Rx buffer. */
+	/** Minimum Rx buffer size per descriptor supported by HW. */
+	uint32_t min_rx_bufsize;
+	/**
+	 * Maximum Rx buffer size per descriptor supported by HW.
+	 * The value is not enforced, information only to application to
+	 * optimize mbuf size. Its value is UINT32_MAX when not specified
+	 * by the driver.
+	 */
+	uint32_t max_rx_bufsize;
 	uint32_t max_rx_pktlen; /**< Maximum configurable length of Rx pkt. */
 	/** Maximum configurable size of LRO aggregated packet. */
 	uint32_t max_lro_pkt_size;
Checking patch app/test-pmd/config.c...
error: while searching for:
	}

	printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);
	printf("Maximum configurable length of RX packet: %u\n",
		dev_info.max_rx_pktlen);
	printf("Maximum configurable size of LRO aggregated packet: %u\n",

error: patch failed: app/test-pmd/config.c:881
Applying patch app/test-pmd/config.c with 1 reject...
Rejected hunk #1.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/app/test-pmd/config.c b/app/test-pmd/config.c	(rejected hunks)
@@ -881,6 +881,8 @@ port_infos_display(portid_t port_id)
 	}
 
 	printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize);
+	if (dev_info.max_rx_bufsize != UINT32_MAX)
+		printf("Maximum size of RX buffer: %u\n", dev_info.max_rx_bufsize);
 	printf("Maximum configurable length of RX packet: %u\n",
 		dev_info.max_rx_pktlen);
 	printf("Maximum configurable size of LRO aggregated packet: %u\n",
Checking patch drivers/net/hns3/hns3_common.c...
error: while searching for:
	info->max_tx_queues = hw->tqps_num;
	info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */
	info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE;
	info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD;
	info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE;
	info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM |

error: patch failed: drivers/net/hns3/hns3_common.c:59
Applying patch drivers/net/hns3/hns3_common.c with 1 reject...
Rejected hunk #1.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c	(rejected hunks)
@@ -59,6 +59,7 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info)
 	info->max_tx_queues = hw->tqps_num;
 	info->max_rx_pktlen = HNS3_MAX_FRAME_LEN; /* CRC included */
 	info->min_rx_bufsize = HNS3_MIN_BD_BUF_SIZE;
+	info->max_rx_bufsize = HNS3_MAX_BD_BUF_SIZE;
 	info->max_mtu = info->max_rx_pktlen - HNS3_ETH_OVERHEAD;
 	info->max_lro_pkt_size = HNS3_MAX_LRO_SIZE;
 	info->rx_offload_capa = (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM |

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

UNH-IOL DPDK Community Lab


More information about the test-report mailing list