Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/123437 _apply patch failure_ Submitter: Mingxia Liu Date: Wednesday, February 08 2023 07:34:01 Applied on: CommitID:a0c837ad1fb5b6a8b10a284ffeb5f9e31bd8ff00 Apply patch set 123437-123440 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/25287/ UNH-IOL DPDK Community Lab