|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