Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/102528 _apply patch failure_ Submitter: Dmitry Kozlyuk Date: Thursday, October 21 2021 06:35:03 Applied on: CommitID:3ac2dffae88e8eb5c374b1fdd40d605014526510 Apply patch set 102528-102533 failed: Checking patch drivers/net/bnxt/bnxt_ethdev.c... Hunk #1 succeeded at 1009 (offset 1 line). Checking patch drivers/net/bnxt/bnxt_reps.c... Hunk #1 succeeded at 525 (offset -1 lines). Checking patch drivers/net/cnxk/cnxk_ethdev_ops.c... Checking patch drivers/net/cxgbe/cxgbe_ethdev.c... Checking patch drivers/net/dpaa2/dpaa2_ethdev.c... Hunk #1 succeeded at 255 (offset 1 line). Checking patch drivers/net/e1000/em_ethdev.c... Hunk #1 succeeded at 1108 (offset 2 lines). Checking patch drivers/net/e1000/igb_ethdev.c... Hunk #1 succeeded at 2178 (offset 4 lines). Checking patch drivers/net/enic/enic_ethdev.c... Checking patch drivers/net/failsafe/failsafe_ops.c... Hunk #1 succeeded at 1222 (offset 2 lines). Checking patch drivers/net/hinic/hinic_pmd_ethdev.c... Hunk #1 succeeded at 752 (offset 1 line). Checking patch drivers/net/hns3/hns3_ethdev.c... error: while searching for: if (hns3_dev_get_support(hw, INDEP_TXRX)) info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; if (hns3_dev_get_support(hw, PTP)) info->rx_offload_capa |= DEV_RX_OFFLOAD_TIMESTAMP; error: patch failed: drivers/net/hns3/hns3_ethdev.c:2707 Checking patch drivers/net/hns3/hns3_ethdev_vf.c... error: while searching for: if (hns3_dev_get_support(hw, INDEP_TXRX)) info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; info->rx_desc_lim = (struct rte_eth_desc_lim) { .nb_max = HNS3_MAX_RING_DESC, error: patch failed: drivers/net/hns3/hns3_ethdev_vf.c:965 Checking patch drivers/net/i40e/i40e_ethdev.c... Hunk #1 succeeded at 3747 (offset -4 lines). Checking patch drivers/net/i40e/i40e_vf_representor.c... Checking patch drivers/net/iavf/iavf_ethdev.c... Hunk #1 succeeded at 959 (offset -1 lines). Checking patch drivers/net/ice/ice_dcf_ethdev.c... Hunk #1 succeeded at 676 (offset 3 lines). Checking patch drivers/net/igc/igc_ethdev.c... Hunk #1 succeeded at 1488 (offset 8 lines). Checking patch drivers/net/ipn3ke/ipn3ke_representor.c... Hunk #1 succeeded at 97 (offset 1 line). Checking patch drivers/net/mvpp2/mrvl_ethdev.c... Hunk #1 succeeded at 1718 (offset 9 lines). Checking patch drivers/net/octeontx2/otx2_ethdev_ops.c... Hunk #1 succeeded at 611 (offset 28 lines). Checking patch drivers/net/qede/qede_ethdev.c... Hunk #1 succeeded at 1373 (offset 6 lines). Checking patch drivers/net/sfc/sfc_ethdev.c... error: while searching for: dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; if (mae->status == SFC_MAE_STATUS_SUPPORTED || mae->status == SFC_MAE_STATUS_ADMIN) { error: patch failed: drivers/net/sfc/sfc_ethdev.c:186 Checking patch drivers/net/softnic/rte_eth_softnic.c... Checking patch drivers/net/tap/rte_eth_tap.c... Checking patch drivers/net/txgbe/txgbe_ethdev.c... Hunk #1 succeeded at 2613 (offset 10 lines). Checking patch drivers/net/txgbe/txgbe_ethdev_vf.c... Applied patch drivers/net/bnxt/bnxt_ethdev.c cleanly. Applied patch drivers/net/bnxt/bnxt_reps.c cleanly. Applied patch drivers/net/cnxk/cnxk_ethdev_ops.c cleanly. Applied patch drivers/net/cxgbe/cxgbe_ethdev.c cleanly. Applied patch drivers/net/dpaa2/dpaa2_ethdev.c cleanly. Applied patch drivers/net/e1000/em_ethdev.c cleanly. Applied patch drivers/net/e1000/igb_ethdev.c cleanly. Applied patch drivers/net/enic/enic_ethdev.c cleanly. Applied patch drivers/net/failsafe/failsafe_ops.c cleanly. Applied patch drivers/net/hinic/hinic_pmd_ethdev.c cleanly. Applying patch drivers/net/hns3/hns3_ethdev.c with 1 reject... Rejected hunk #1. Applying patch drivers/net/hns3/hns3_ethdev_vf.c with 1 reject... Rejected hunk #1. Applied patch drivers/net/i40e/i40e_ethdev.c cleanly. Applied patch drivers/net/i40e/i40e_vf_representor.c cleanly. Applied patch drivers/net/iavf/iavf_ethdev.c cleanly. Applied patch drivers/net/ice/ice_dcf_ethdev.c cleanly. Applied patch drivers/net/igc/igc_ethdev.c cleanly. Applied patch drivers/net/ipn3ke/ipn3ke_representor.c cleanly. Applied patch drivers/net/mvpp2/mrvl_ethdev.c cleanly. Applied patch drivers/net/octeontx2/otx2_ethdev_ops.c cleanly. Applied patch drivers/net/qede/qede_ethdev.c cleanly. Applying patch drivers/net/sfc/sfc_ethdev.c with 1 reject... Rejected hunk #1. Applied patch drivers/net/softnic/rte_eth_softnic.c cleanly. Applied patch drivers/net/tap/rte_eth_tap.c cleanly. Applied patch drivers/net/txgbe/txgbe_ethdev.c cleanly. Applied patch drivers/net/txgbe/txgbe_ethdev_vf.c cleanly. diff a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c (rejected hunks) @@ -2707,6 +2707,7 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) if (hns3_dev_get_support(hw, INDEP_TXRX)) info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; + info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; if (hns3_dev_get_support(hw, PTP)) info->rx_offload_capa |= DEV_RX_OFFLOAD_TIMESTAMP; diff a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c (rejected hunks) @@ -965,6 +965,7 @@ hns3vf_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) if (hns3_dev_get_support(hw, INDEP_TXRX)) info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; + info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; info->rx_desc_lim = (struct rte_eth_desc_lim) { .nb_max = HNS3_MAX_RING_DESC, diff a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c (rejected hunks) @@ -186,6 +186,7 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; + dev_info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; if (mae->status == SFC_MAE_STATUS_SUPPORTED || mae->status == SFC_MAE_STATUS_ADMIN) { Checking patch drivers/net/mlx5/linux/mlx5_os.c... Hunk #1 succeeded at 1829 (offset -20 lines). Checking patch drivers/net/mlx5/mlx5_flow.c... error: while searching for: return node; } } error: patch failed: drivers/net/mlx5/mlx5_flow.c:9480 Checking patch drivers/net/mlx5/mlx5_flow.h... Checking patch drivers/net/mlx5/mlx5_flow_dv.c... Hunk #1 succeeded at 17978 (offset 95 lines). Hunk #2 succeeded at 18113 (offset 95 lines). Checking patch drivers/net/mlx5/mlx5_flow_verbs.c... Hunk #6 succeeded at 2047 (offset 18 lines). Applied patch drivers/net/mlx5/linux/mlx5_os.c cleanly. Applying patch drivers/net/mlx5/mlx5_flow.c with 1 reject... Rejected hunk #1. Applied patch drivers/net/mlx5/mlx5_flow.h cleanly. Applied patch drivers/net/mlx5/mlx5_flow_dv.c cleanly. Applied patch drivers/net/mlx5/mlx5_flow_verbs.c cleanly. diff a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c (rejected hunks) @@ -9480,3 +9480,101 @@ mlx5_flow_expand_rss_adjust_node(const struct rte_flow_item *pattern, return node; } } + +/* Map of Verbs to Flow priority with 8 Verbs priorities. */ +static const uint32_t priority_map_3[][MLX5_PRIORITY_MAP_MAX] = { + { 0, 1, 2 }, { 2, 3, 4 }, { 5, 6, 7 }, +}; + +/* Map of Verbs to Flow priority with 16 Verbs priorities. */ +static const uint32_t priority_map_5[][MLX5_PRIORITY_MAP_MAX] = { + { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, + { 9, 10, 11 }, { 12, 13, 14 }, +}; + +/** + * Discover the number of available flow priorities. + * + * @param dev + * Ethernet device. + * + * @return + * On success, number of available flow priorities. + * On failure, a negative errno-style code and rte_errno is set. + */ +int +mlx5_flow_discover_priorities(struct rte_eth_dev *dev) +{ + static const uint16_t vprio[] = {8, 16}; + const struct mlx5_priv *priv = dev->data->dev_private; + const struct mlx5_flow_driver_ops *fops; + enum mlx5_flow_drv_type type; + int ret; + + type = mlx5_flow_os_get_type(); + if (type == MLX5_FLOW_TYPE_MAX) { + type = MLX5_FLOW_TYPE_VERBS; + if (priv->config.devx && priv->config.dv_flow_en) + type = MLX5_FLOW_TYPE_DV; + } + fops = flow_get_drv_ops(type); + if (fops->discover_priorities == NULL) { + DRV_LOG(ERR, "Priority discovery not supported"); + rte_errno = ENOTSUP; + return -rte_errno; + } + ret = fops->discover_priorities(dev, vprio, RTE_DIM(vprio)); + if (ret < 0) + return ret; + switch (ret) { + case 8: + ret = RTE_DIM(priority_map_3); + break; + case 16: + ret = RTE_DIM(priority_map_5); + break; + default: + rte_errno = ENOTSUP; + DRV_LOG(ERR, + "port %u maximum priority: %d expected 8/16", + dev->data->port_id, ret); + return -rte_errno; + } + DRV_LOG(INFO, "port %u supported flow priorities:" + " 0-%d for ingress or egress root table," + " 0-%d for non-root table or transfer root table.", + dev->data->port_id, ret - 2, + MLX5_NON_ROOT_FLOW_MAX_PRIO - 1); + return ret; +} + +/** + * Adjust flow priority based on the highest layer and the request priority. + * + * @param[in] dev + * Pointer to the Ethernet device structure. + * @param[in] priority + * The rule base priority. + * @param[in] subpriority + * The priority based on the items. + * + * @return + * The new priority. + */ +uint32_t +mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority, + uint32_t subpriority) +{ + uint32_t res = 0; + struct mlx5_priv *priv = dev->data->dev_private; + + switch (priv->config.flow_prio) { + case RTE_DIM(priority_map_3): + res = priority_map_3[priority][subpriority]; + break; + case RTE_DIM(priority_map_5): + res = priority_map_5[priority][subpriority]; + break; + } + return res; +} Checking patch drivers/net/mlx5/linux/mlx5_os.c... error: drivers/net/mlx5/linux/mlx5_os.c: does not match index Checking patch drivers/net/mlx5/mlx5_devx.c... Applied patch drivers/net/mlx5/mlx5_devx.c cleanly. Checking patch drivers/net/mlx5/mlx5_ethdev.c... Checking patch drivers/net/mlx5/mlx5_flow.c... Hunk #1 succeeded at 1560 (offset -23 lines). Hunk #2 succeeded at 1632 (offset -23 lines). Hunk #3 succeeded at 1698 (offset -23 lines). Hunk #4 succeeded at 8585 (offset -23 lines). Checking patch drivers/net/mlx5/mlx5_flow.h... error: drivers/net/mlx5/mlx5_flow.h: does not match index Checking patch drivers/net/mlx5/mlx5_rx.h... Checking patch drivers/net/mlx5/mlx5_rxq.c... Checking patch drivers/net/mlx5/mlx5_trigger.c... Applied patch drivers/net/mlx5/mlx5_ethdev.c cleanly. Applied patch drivers/net/mlx5/mlx5_flow.c cleanly. Applied patch drivers/net/mlx5/mlx5_rx.h cleanly. Applied patch drivers/net/mlx5/mlx5_rxq.c cleanly. Applied patch drivers/net/mlx5/mlx5_trigger.c cleanly. https://lab.dpdk.org/results/dashboard/patchsets/19610/ UNH-IOL DPDK Community Lab