|WARNING| pw123238-123243 [PATCH] [v6, 6/6] common/idpf: add xstats ops

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Tue Feb 7 12:28:24 CET 2023


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

_apply patch failure_

Submitter: Mingxia Liu <mingxia.liu at intel.com>
Date: Tuesday, February 07 2023 10:16:50 
Applied on: CommitID:56ee8af9fd80493a9dd888ccc01ef4f1db02e491
Apply patch set 123238-123243 failed:

Checking patch drivers/common/idpf/idpf_common_device.c...
error: drivers/common/idpf/idpf_common_device.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_device.h...
error: drivers/common/idpf/idpf_common_device.h: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.c...
error: drivers/common/idpf/idpf_common_virtchnl.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.h...
error: drivers/common/idpf/idpf_common_virtchnl.h: does not exist in index
Checking patch drivers/common/idpf/version.map...
error: while searching for:
	idpf_vc_rss_key_set;
	idpf_vc_rss_lut_set;
	idpf_vc_rxq_config;
	idpf_vc_txq_config;
	idpf_vc_vectors_alloc;
	idpf_vc_vectors_dealloc;

error: patch failed: drivers/common/idpf/version.map:46
error: while searching for:
	idpf_vport_irq_map_config;
	idpf_vport_irq_unmap_config;
	idpf_vport_rss_config;

	local: *;
};

error: patch failed: drivers/common/idpf/version.map:59
Checking patch drivers/net/idpf/idpf_ethdev.c...
error: while searching for:
	return ptypes;
}

static int
idpf_init_rss(struct idpf_vport *vport)
{

error: patch failed: drivers/net/idpf/idpf_ethdev.c:140
error: while searching for:
		goto err_vport;
	}

	vport->stopped = 0;

	return 0;

error: patch failed: drivers/net/idpf/idpf_ethdev.c:327
Hunk #3 succeeded at 1060 (offset 370 lines).
Applying patch drivers/common/idpf/version.map with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch drivers/net/idpf/idpf_ethdev.c with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Hunk #3 applied cleanly.
diff a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map	(rejected hunks)
@@ -46,6 +46,7 @@ INTERNAL {
 	idpf_vc_rss_key_set;
 	idpf_vc_rss_lut_set;
 	idpf_vc_rxq_config;
+	idpf_vc_stats_query;
 	idpf_vc_txq_config;
 	idpf_vc_vectors_alloc;
 	idpf_vc_vectors_dealloc;
@@ -59,6 +60,7 @@ INTERNAL {
 	idpf_vport_irq_map_config;
 	idpf_vport_irq_unmap_config;
 	idpf_vport_rss_config;
+	idpf_vport_stats_update;
 
 	local: *;
 };
diff a/drivers/net/idpf/idpf_ethdev.c b/drivers/net/idpf/idpf_ethdev.c	(rejected hunks)
@@ -140,6 +140,87 @@ idpf_dev_supported_ptypes_get(struct rte_eth_dev *dev __rte_unused)
 	return ptypes;
 }
 
+static uint64_t
+idpf_get_mbuf_alloc_failed_stats(struct rte_eth_dev *dev)
+{
+	uint64_t mbuf_alloc_failed = 0;
+	struct idpf_rx_queue *rxq;
+	int i = 0;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++) {
+		rxq = dev->data->rx_queues[i];
+		mbuf_alloc_failed += __atomic_load_n(&rxq->rx_stats.mbuf_alloc_failed,
+						     __ATOMIC_RELAXED);
+	}
+
+	return mbuf_alloc_failed;
+}
+
+static int
+idpf_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
+{
+	struct idpf_vport *vport =
+		(struct idpf_vport *)dev->data->dev_private;
+	struct virtchnl2_vport_stats *pstats = NULL;
+	int ret;
+
+	ret = idpf_vc_stats_query(vport, &pstats);
+	if (ret == 0) {
+		uint8_t crc_stats_len = (dev->data->dev_conf.rxmode.offloads &
+					 RTE_ETH_RX_OFFLOAD_KEEP_CRC) ? 0 :
+					 RTE_ETHER_CRC_LEN;
+
+		idpf_vport_stats_update(&vport->eth_stats_offset, pstats);
+		stats->ipackets = pstats->rx_unicast + pstats->rx_multicast +
+				pstats->rx_broadcast - pstats->rx_discards;
+		stats->opackets = pstats->tx_broadcast + pstats->tx_multicast +
+						pstats->tx_unicast;
+		stats->imissed = pstats->rx_discards;
+		stats->oerrors = pstats->tx_errors + pstats->tx_discards;
+		stats->ibytes = pstats->rx_bytes;
+		stats->ibytes -= stats->ipackets * crc_stats_len;
+		stats->obytes = pstats->tx_bytes;
+
+		dev->data->rx_mbuf_alloc_failed = idpf_get_mbuf_alloc_failed_stats(dev);
+		stats->rx_nombuf = dev->data->rx_mbuf_alloc_failed;
+	} else {
+		PMD_DRV_LOG(ERR, "Get statistics failed");
+	}
+	return ret;
+}
+
+static void
+idpf_reset_mbuf_alloc_failed_stats(struct rte_eth_dev *dev)
+{
+	struct idpf_rx_queue *rxq;
+	int i;
+
+	for (i = 0; i < dev->data->nb_rx_queues; i++) {
+		rxq = dev->data->rx_queues[i];
+		__atomic_store_n(&rxq->rx_stats.mbuf_alloc_failed, 0, __ATOMIC_RELAXED);
+	}
+}
+
+static int
+idpf_dev_stats_reset(struct rte_eth_dev *dev)
+{
+	struct idpf_vport *vport =
+		(struct idpf_vport *)dev->data->dev_private;
+	struct virtchnl2_vport_stats *pstats = NULL;
+	int ret;
+
+	ret = idpf_vc_stats_query(vport, &pstats);
+	if (ret != 0)
+		return ret;
+
+	/* set stats offset base on current values */
+	vport->eth_stats_offset = *pstats;
+
+	idpf_reset_mbuf_alloc_failed_stats(dev);
+
+	return 0;
+}
+
 static int
 idpf_init_rss(struct idpf_vport *vport)
 {
@@ -327,6 +408,9 @@ idpf_dev_start(struct rte_eth_dev *dev)
 		goto err_vport;
 	}
 
+	if (idpf_dev_stats_reset(dev))
+		PMD_DRV_LOG(ERR, "Failed to reset stats");
+
 	vport->stopped = 0;
 
 	return 0;
Checking patch drivers/common/idpf/idpf_common_device.h...
error: drivers/common/idpf/idpf_common_device.h: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.c...
error: drivers/common/idpf/idpf_common_virtchnl.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.h...
error: drivers/common/idpf/idpf_common_virtchnl.h: does not exist in index
Checking patch drivers/common/idpf/version.map...
error: while searching for:
	idpf_vc_ptype_info_query;
	idpf_vc_queue_switch;
	idpf_vc_queues_ena_dis;
	idpf_vc_rss_hash_set;
	idpf_vc_rss_key_set;
	idpf_vc_rss_lut_set;
	idpf_vc_rxq_config;
	idpf_vc_stats_query;

error: patch failed: drivers/common/idpf/version.map:42
Checking patch drivers/net/idpf/idpf_ethdev.c...
error: drivers/net/idpf/idpf_ethdev.c: does not match index
Checking patch drivers/net/idpf/idpf_ethdev.h...
Hunk #1 succeeded at 60 (offset 12 lines).
Applying patch drivers/common/idpf/version.map with 1 reject...
Rejected hunk #1.
Applied patch drivers/net/idpf/idpf_ethdev.h cleanly.
diff a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map	(rejected hunks)
@@ -42,8 +42,11 @@ INTERNAL {
 	idpf_vc_ptype_info_query;
 	idpf_vc_queue_switch;
 	idpf_vc_queues_ena_dis;
+	idpf_vc_rss_hash_get;
 	idpf_vc_rss_hash_set;
+	idpf_vc_rss_key_get;
 	idpf_vc_rss_key_set;
+	idpf_vc_rss_lut_get;
 	idpf_vc_rss_lut_set;
 	idpf_vc_rxq_config;
 	idpf_vc_stats_query;
Checking patch drivers/common/idpf/idpf_common_rxtx.c...
error: drivers/common/idpf/idpf_common_rxtx.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_rxtx.h...
error: drivers/common/idpf/idpf_common_rxtx.h: does not exist in index
Checking patch drivers/common/idpf/version.map...
error: while searching for:
	idpf_dp_prep_pkts;
	idpf_dp_singleq_recv_pkts;
	idpf_dp_singleq_recv_pkts_avx512;
	idpf_dp_singleq_xmit_pkts;
	idpf_dp_singleq_xmit_pkts_avx512;
	idpf_dp_splitq_recv_pkts;

error: patch failed: drivers/common/idpf/version.map:7
Checking patch drivers/net/idpf/idpf_ethdev.c...
error: drivers/net/idpf/idpf_ethdev.c: does not match index
Checking patch drivers/net/idpf/idpf_rxtx.c...
Hunk #1 succeeded at 1003 (offset 500 lines).
error: while searching for:
		return -EINVAL;
	}

	err = idpf_qc_ts_mbuf_register(rxq);
	if (err != 0) {
		PMD_DRV_LOG(ERR, "fail to residter timestamp mbuf %u",

error: patch failed: drivers/net/idpf/idpf_rxtx.c:516
error: while searching for:
			}
#endif /* CC_AVX512_SUPPORT */
		}
		PMD_DRV_LOG(NOTICE,
			    "Using Single Scalar Rx (port %d).",
			    dev->data->port_id);

error: patch failed: drivers/net/idpf/idpf_rxtx.c:807
error: while searching for:
			    dev->data->port_id);
		dev->rx_pkt_burst = idpf_dp_splitq_recv_pkts;
	} else {
		PMD_DRV_LOG(NOTICE,
			    "Using Single Scalar Rx (port %d).",
			    dev->data->port_id);

error: patch failed: drivers/net/idpf/idpf_rxtx.c:819
Checking patch drivers/net/idpf/idpf_rxtx.h...
error: while searching for:
#define IDPF_DEFAULT_TX_RS_THRESH	32
#define IDPF_DEFAULT_TX_FREE_THRESH	32

int idpf_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
			uint16_t nb_desc, unsigned int socket_id,
			const struct rte_eth_rxconf *rx_conf,

error: patch failed: drivers/net/idpf/idpf_rxtx.h:23
Applying patch drivers/common/idpf/version.map with 1 reject...
Rejected hunk #1.
Applying patch drivers/net/idpf/idpf_rxtx.c with 3 rejects...
Hunk #1 applied cleanly.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Applying patch drivers/net/idpf/idpf_rxtx.h with 1 reject...
Rejected hunk #1.
diff a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map	(rejected hunks)
@@ -7,6 +7,7 @@ INTERNAL {
 	idpf_dp_prep_pkts;
 	idpf_dp_singleq_recv_pkts;
 	idpf_dp_singleq_recv_pkts_avx512;
+	idpf_dp_singleq_recv_scatter_pkts;
 	idpf_dp_singleq_xmit_pkts;
 	idpf_dp_singleq_xmit_pkts_avx512;
 	idpf_dp_splitq_recv_pkts;
diff a/drivers/net/idpf/idpf_rxtx.c b/drivers/net/idpf/idpf_rxtx.c	(rejected hunks)
@@ -516,6 +518,17 @@ idpf_rx_queue_init(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 		return -EINVAL;
 	}
 
+	frame_size = dev->data->mtu + IDPF_ETH_OVERHEAD;
+
+	max_pkt_len =
+	    RTE_MIN((uint32_t)IDPF_SUPPORT_CHAIN_NUM * rxq->rx_buf_len,
+		    frame_size);
+
+	rxq->max_pkt_len = max_pkt_len;
+	if ((dev->data->dev_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_SCATTER) ||
+	    frame_size > rxq->rx_buf_len)
+		dev->data->scattered_rx = 1;
+
 	err = idpf_qc_ts_mbuf_register(rxq);
 	if (err != 0) {
 		PMD_DRV_LOG(ERR, "fail to residter timestamp mbuf %u",
@@ -807,6 +820,14 @@ idpf_set_rx_function(struct rte_eth_dev *dev)
 			}
 #endif /* CC_AVX512_SUPPORT */
 		}
+
+		if (dev->data->scattered_rx) {
+			PMD_DRV_LOG(NOTICE,
+				    "Using Single Scalar Scatterd Rx (port %d).",
+				    dev->data->port_id);
+			dev->rx_pkt_burst = idpf_dp_singleq_recv_scatter_pkts;
+			return;
+		}
 		PMD_DRV_LOG(NOTICE,
 			    "Using Single Scalar Rx (port %d).",
 			    dev->data->port_id);
@@ -819,6 +840,13 @@ idpf_set_rx_function(struct rte_eth_dev *dev)
 			    dev->data->port_id);
 		dev->rx_pkt_burst = idpf_dp_splitq_recv_pkts;
 	} else {
+		if (dev->data->scattered_rx) {
+			PMD_DRV_LOG(NOTICE,
+				    "Using Single Scalar Scatterd Rx (port %d).",
+				    dev->data->port_id);
+			dev->rx_pkt_burst = idpf_dp_singleq_recv_scatter_pkts;
+			return;
+		}
 		PMD_DRV_LOG(NOTICE,
 			    "Using Single Scalar Rx (port %d).",
 			    dev->data->port_id);
diff a/drivers/net/idpf/idpf_rxtx.h b/drivers/net/idpf/idpf_rxtx.h	(rejected hunks)
@@ -23,6 +23,8 @@
 #define IDPF_DEFAULT_TX_RS_THRESH	32
 #define IDPF_DEFAULT_TX_FREE_THRESH	32
 
+#define IDPF_SUPPORT_CHAIN_NUM 5
+
 int idpf_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 			uint16_t nb_desc, unsigned int socket_id,
 			const struct rte_eth_rxconf *rx_conf,
Checking patch drivers/common/idpf/idpf_common_rxtx.c...
error: drivers/common/idpf/idpf_common_rxtx.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_device.h...
error: drivers/common/idpf/idpf_common_device.h: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.c...
error: drivers/common/idpf/idpf_common_virtchnl.c: does not exist in index
Checking patch drivers/common/idpf/idpf_common_virtchnl.h...
error: drivers/common/idpf/idpf_common_virtchnl.h: does not exist in index
Checking patch drivers/common/idpf/version.map...
error: while searching for:
	idpf_vc_api_version_check;
	idpf_vc_caps_get;
	idpf_vc_cmd_execute;
	idpf_vc_irq_map_unmap_config;
	idpf_vc_one_msg_read;
	idpf_vc_ptype_info_query;

error: patch failed: drivers/common/idpf/version.map:38
Checking patch drivers/net/idpf/idpf_ethdev.c...
error: drivers/net/idpf/idpf_ethdev.c: does not match index
Checking patch drivers/net/idpf/idpf_ethdev.h...
error: drivers/net/idpf/idpf_ethdev.h: does not match index
Applying patch drivers/common/idpf/version.map with 1 reject...
Rejected hunk #1.
diff a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map	(rejected hunks)
@@ -38,6 +38,8 @@ INTERNAL {
 	idpf_vc_api_version_check;
 	idpf_vc_caps_get;
 	idpf_vc_cmd_execute;
+	idpf_vc_ctlq_post_rx_buffs;
+	idpf_vc_ctlq_recv;
 	idpf_vc_irq_map_unmap_config;
 	idpf_vc_one_msg_read;
 	idpf_vc_ptype_info_query;
Checking patch drivers/net/idpf/idpf_ethdev.c...
error: drivers/net/idpf/idpf_ethdev.c: does not match index

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

UNH-IOL DPDK Community Lab


More information about the test-report mailing list