From patchwork Thu Aug 31 12:33:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 130985 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6B4B641FDD; Thu, 31 Aug 2023 14:33:54 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3279340299; Thu, 31 Aug 2023 14:33:53 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 0490C40299; Thu, 31 Aug 2023 14:33:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693485231; x=1725021231; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=82J2yt48GRNjIYEQ/H5nj7iVeoV8VOdSOMgaQN8UVbs=; b=jXYvnSbiUry71nOwZKdcwoc2xWK8Y6rgvE3LQ0Q3NXO8t49jd6o0UJdo dmWGZzCfyx/h7p5WHTZA6woQbDBlHo21yYqUZb3fXQnP3IXzvWUpNCp0C 2xzuahD7pGn/XpxpMr0M+FqYNg+zz/UuyRC9r2l5HmXYvP8jusMT9N+Mt 9s0IJsBDKF7ownXgPlZitcLjsGefCKOCdZLtNuHDA3P6X4gsCJA+FInwV jYOZ23DKGXze4t8/JaX5kDOD0qGQo7YunZ2XL6Gf7xNN9+IFeYq2s31AP xXAoJAlUDY5+OjOMN9aHID+oQuc4phNndqRzKfufp3STlmCezvLRrbrWD g==; X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="439873970" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="439873970" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2023 05:33:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="913230898" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="913230898" Received: from silpixa00401385.ir.intel.com ([10.237.214.14]) by orsmga005.jf.intel.com with ESMTP; 31 Aug 2023 05:33:49 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson , qi.z.zhang@intel.com, stable@dpdk.org Subject: [PATCH v2 1/4] net/i40e: fix buffer leak on Rx reconfiguration Date: Thu, 31 Aug 2023 13:33:34 +0100 Message-Id: <20230831123337.871496-2-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230831123337.871496-1-bruce.richardson@intel.com> References: <20230830155919.592390-1-bruce.richardson@intel.com> <20230831123337.871496-1-bruce.richardson@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When reconfiguring a single queue on a device, the mbuf initializer value was not getting set, and remained at zero. This lead to mbuf leaks as the refcount was incorrect (0), so on free it wrapped around to UINT16_MAX. When setting up the mbuf initializer, also ensure that the queue is explicitly marked as using a vector function by setting the "rx_using_sse" flag. Fixes: a3c83a2527e1 ("net/i40e: enable runtime queue setup") Cc: qi.z.zhang@intel.com Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Acked-by: Qi Zhang --- drivers/net/i40e/i40e_rxtx.c | 6 ++++++ drivers/net/i40e/i40e_rxtx_vec_common.h | 1 + 2 files changed, 7 insertions(+) diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index b4f65b58fa..d96bbbb677 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -1918,6 +1918,12 @@ i40e_dev_rx_queue_setup_runtime(struct rte_eth_dev *dev, if (use_def_burst_func) ad->rx_bulk_alloc_allowed = false; i40e_set_rx_function(dev); + + if (ad->rx_vec_allowed && i40e_rxq_vec_setup(rxq)) { + PMD_DRV_LOG(ERR, "Failed vector rx setup."); + return -EINVAL; + } + return 0; } else if (ad->rx_vec_allowed && !rte_is_power_of_2(rxq->nb_rx_desc)) { PMD_DRV_LOG(ERR, "Vector mode is allowed, but descriptor" diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h index fe1a6ec75e..8b745630e4 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_common.h +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h @@ -201,6 +201,7 @@ i40e_rxq_vec_setup_default(struct i40e_rx_queue *rxq) rte_compiler_barrier(); p = (uintptr_t)&mb_def.rearm_data; rxq->mbuf_initializer = *(uint64_t *)p; + rxq->rx_using_sse = 1; return 0; } From patchwork Thu Aug 31 12:33:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 130986 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EA2F141FDD; Thu, 31 Aug 2023 14:34:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6E85F402A0; Thu, 31 Aug 2023 14:33:58 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 56AB540294; Thu, 31 Aug 2023 14:33:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693485236; x=1725021236; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dNHN+xna00zMIdi2cuOsslBvvYiBON4ybUk45AVelSs=; b=M4TGAFcxahYizmAKue1X0cyTvtbNVoY+5Vq/1K3wRRkEOh8KAuv2eOLW SsMU3hfJHbtXjmAXKQ0qonjs2YMIkdTIAqg0hFdEEOV890cPAh4DmJOEv yG1zuBnUUpnnsyfpi79BdAmLTFZFLfPAo0H3BKMmRuwIjeGbgfZzhJnNg 93YOYndRdzfu9eqIpOHyPVbD9LGU8t/lYZJZdSf8H3c3qFi2LmJZl3T7z 6wLwdToKBjD5ENMBvaezLN4j1GEQ+lZ1JgPW9cy+mwI319Qin7CGrR/g2 JTMfF2bYbB7btT5D+l0tLfyIvcVgv1WT3bI+jdVnuCCLT91a5+k/4K4Qc w==; X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="439873991" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="439873991" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2023 05:33:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="913230934" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="913230934" Received: from silpixa00401385.ir.intel.com ([10.237.214.14]) by orsmga005.jf.intel.com with ESMTP; 31 Aug 2023 05:33:54 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson , wenzhuo.lu@intel.com, jingjing.wu@intel.com, stable@dpdk.org Subject: [PATCH v2 2/4] net/iavf: fix buffer leak on Tx queue stop Date: Thu, 31 Aug 2023 13:33:35 +0100 Message-Id: <20230831123337.871496-3-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230831123337.871496-1-bruce.richardson@intel.com> References: <20230830155919.592390-1-bruce.richardson@intel.com> <20230831123337.871496-1-bruce.richardson@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When a queue is stopped all buffers are meant to released from it, and then a new set of buffers reallocated on start. For the iavf code when using vector Tx, some buffers were left in the ring, and so those buffers were leaked. The buffers were missed as the release code only handled one side of a wrap-around case in the ring. Fix the issue by doing a single iteration of the ring freeing all buffers in it, handling wraparound through a simple post-increment check. Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx") Fixes: 9ab9514c150e ("net/iavf: enable AVX512 for Tx") Cc: wenzhuo.lu@intel.com Cc: jingjing.wu@intel.com Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Acked-by: Wenzhuo Lu --- drivers/net/iavf/iavf_rxtx_vec_avx512.c | 17 ++++++++--------- drivers/net/iavf/iavf_rxtx_vec_common.h | 11 +++++------ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/drivers/net/iavf/iavf_rxtx_vec_avx512.c b/drivers/net/iavf/iavf_rxtx_vec_avx512.c index 3e66df5341..48337d5e03 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_avx512.c +++ b/drivers/net/iavf/iavf_rxtx_vec_avx512.c @@ -2460,20 +2460,19 @@ iavf_tx_queue_release_mbufs_avx512(struct iavf_tx_queue *txq) { unsigned int i; const uint16_t max_desc = (uint16_t)(txq->nb_tx_desc - 1); + const uint16_t end_desc = txq->tx_tail >> txq->use_ctx; /* next empty slot */ + const uint16_t wrap_point = txq->nb_tx_desc >> txq->use_ctx; /* end of SW ring */ struct iavf_tx_vec_entry *swr = (void *)txq->sw_ring; if (!txq->sw_ring || txq->nb_free == max_desc) return; - i = (txq->next_dd >> txq->use_ctx) + 1 - - (txq->rs_thresh >> txq->use_ctx); - - if (txq->tx_tail < i) { - for (; i < (unsigned int)(txq->nb_tx_desc >> txq->use_ctx); i++) { - rte_pktmbuf_free_seg(swr[i].mbuf); - swr[i].mbuf = NULL; - } - i = 0; + i = (txq->next_dd - txq->rs_thresh + 1) >> txq->use_ctx; + while (i != end_desc) { + rte_pktmbuf_free_seg(swr[i].mbuf); + swr[i].mbuf = NULL; + if (++i == wrap_point) + i = 0; } } diff --git a/drivers/net/iavf/iavf_rxtx_vec_common.h b/drivers/net/iavf/iavf_rxtx_vec_common.h index ddb13ce8c3..1fac957fe1 100644 --- a/drivers/net/iavf/iavf_rxtx_vec_common.h +++ b/drivers/net/iavf/iavf_rxtx_vec_common.h @@ -186,12 +186,11 @@ _iavf_tx_queue_release_mbufs_vec(struct iavf_tx_queue *txq) return; i = txq->next_dd - txq->rs_thresh + 1; - if (txq->tx_tail < i) { - for (; i < txq->nb_tx_desc; i++) { - rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf); - txq->sw_ring[i].mbuf = NULL; - } - i = 0; + while (i != txq->tx_tail) { + rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf); + txq->sw_ring[i].mbuf = NULL; + if (++i == txq->nb_tx_desc) + i = 0; } } From patchwork Thu Aug 31 12:33:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 130987 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 311E241FDD; Thu, 31 Aug 2023 14:34:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C171B402A4; Thu, 31 Aug 2023 14:34:01 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 00764402AF; Thu, 31 Aug 2023 14:33:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693485240; x=1725021240; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0ykNZp4Xvc4xhwK9ov4yoAGLKIKa0hcM5rLgSXACtq4=; b=N01XwsltVw5OgzfKK7vbW+zzXABgWi2v1n9ak6NMYSSes+Ngu7f/NZYF u9lGqsYZk3Bptia8sxX3lYdcQ4HohuqigwswWNSnfNUvNaSFFYVgdq9Ei UnyfPQaz6ShNVwYxwJq/gYlNC9cIsoLRpXMqjb6OuYwNu/T2hEhTU8IU3 PV6zWWR+WwsyRl1lPUHkhwLaaTG5WWk+VcKw/kTUdvH0QpWvssHf4TRC0 WWTllk6b53lF4NVrV2AbqgPS70FlFP9pXaLkjBc5jYVQ6d6cVGN60vPSn j8LGQfKp4lwnDrr5sBhrZ/yHmgC//jma+l/El5l74v8ZFqSNBi+xpfdyE A==; X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="439874007" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="439874007" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2023 05:33:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="913230956" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="913230956" Received: from silpixa00401385.ir.intel.com ([10.237.214.14]) by orsmga005.jf.intel.com with ESMTP; 31 Aug 2023 05:33:58 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson , jingjing.wu@intel.com, stable@dpdk.org Subject: [PATCH v2 3/4] net/iavf: fix restart of Rx queue on reconfigure Date: Thu, 31 Aug 2023 13:33:36 +0100 Message-Id: <20230831123337.871496-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230831123337.871496-1-bruce.richardson@intel.com> References: <20230830155919.592390-1-bruce.richardson@intel.com> <20230831123337.871496-1-bruce.richardson@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org After reconfiguring an RX queue the mbuf_initializer value was not being correctly set. Fix this by calling the appropriate function if vector processing is enabled. This mirrors the behaviour by the i40e driver. Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx") Cc: jingjing.wu@intel.com Cc: stable@dpdk.org Signed-off-by: Bruce Richardson --- drivers/net/iavf/iavf_rxtx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c index f7df4665d1..797cdda4b2 100644 --- a/drivers/net/iavf/iavf_rxtx.c +++ b/drivers/net/iavf/iavf_rxtx.c @@ -755,6 +755,13 @@ iavf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, if (check_rx_vec_allow(rxq) == false) ad->rx_vec_allowed = false; +#if defined RTE_ARCH_X86 || defined RTE_ARCH_ARM + /* check vector conflict */ + if (ad->rx_vec_allowed && iavf_rxq_vec_setup(rxq)) { + PMD_DRV_LOG(ERR, "Failed vector rx setup."); + return -EINVAL; + } +#endif return 0; } From patchwork Thu Aug 31 12:33:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 130988 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6B9A241FDD; Thu, 31 Aug 2023 14:34:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 199B2402AB; Thu, 31 Aug 2023 14:34:04 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 38DE0402AF for ; Thu, 31 Aug 2023 14:34:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693485242; x=1725021242; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3XBqPQgVvJQNy2LvCY+Yep7093VsgR9okFBo7HfWajg=; b=iXQviYQuDO7v+xAWEaLdALLSUPvpr77Ts8bxUMZ3nB+f7ueDMhq/xRpV hUyMbcg0BjyLxuSbYAE7oFsYpFPMsK1Hk/XE5fyTvxJDM6J68XcbXKXsR KyuQ8kJhaPviVAGZRGXh6XP/sO6IE/VMjBfpage+QkOKfPHToEoJfklST xB4g38nhZ/8yaGR42URS+Emz7sw1yLA5mkXsu4jdbOxaMeQNWBprfMYcY WNmbylbam8nEk/8/N/6Y/t/ieyia0PZM/SiAs7HWV+ZkU5/pCwLCx3+d+ rBMGliDX7hBo3uW8VGl6Je7/t9XdGpfnBXzUC5wUTC/21Wd5QVuo0RTdU A==; X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="439874012" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="439874012" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2023 05:34:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10818"; a="913230969" X-IronPort-AV: E=Sophos;i="6.02,216,1688454000"; d="scan'208";a="913230969" Received: from silpixa00401385.ir.intel.com ([10.237.214.14]) by orsmga005.jf.intel.com with ESMTP; 31 Aug 2023 05:34:01 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson Subject: [PATCH v2 4/4] net/iavf: add support for runtime queue reconfiguration Date: Thu, 31 Aug 2023 13:33:37 +0100 Message-Id: <20230831123337.871496-5-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230831123337.871496-1-bruce.richardson@intel.com> References: <20230830155919.592390-1-bruce.richardson@intel.com> <20230831123337.871496-1-bruce.richardson@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Unlike the i40e driver, the iavf driver does not advertise support for runtime reconfiguration, meaning that application using the same hardware may get different behaviour when using a PF vs a VF. On testing with a 40G NIC, the only blocker to reconfiguring an RX queue on the fly is the fact that this support is not advertised by the driver. Add support for runtime reconfig by reporting it in the device info flags. Signed-off-by: Bruce Richardson Acked-by: Qi Zhang --- doc/guides/nics/features/iavf.ini | 2 ++ drivers/net/iavf/iavf_ethdev.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini index b72cd98484..db4f92ce71 100644 --- a/doc/guides/nics/features/iavf.ini +++ b/doc/guides/nics/features/iavf.ini @@ -11,6 +11,8 @@ Speed capabilities = Y Link status = Y Rx interrupt = Y Queue start/stop = Y +Runtime Rx queue setup = Y +Runtime Tx queue setup = Y Power mgmt address monitor = Y MTU update = Y Scattered Rx = Y diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index f2fc5a5621..22fbd7d6b2 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -1127,7 +1127,9 @@ iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->reta_size = vf->vf_res->rss_lut_size; dev_info->flow_type_rss_offloads = IAVF_RSS_OFFLOAD_ALL; dev_info->max_mac_addrs = IAVF_NUM_MACADDR_MAX; - dev_info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; + dev_info->dev_capa = + RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | + RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; dev_info->rx_offload_capa = RTE_ETH_RX_OFFLOAD_VLAN_STRIP | RTE_ETH_RX_OFFLOAD_QINQ_STRIP |