[dpdk-dev] net/i40e: fix queue number error in queue region

Message ID 1508834710-23801-1-git-send-email-wei.zhao1@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Zhao1, Wei Oct. 24, 2017, 8:45 a.m. UTC
  when VSI is enabled with smaller number of queues,
for example, 1 or 6, it will cause error.64 is the
max number of queues that can be used for RSS,
but VSI might be created with only few queues.

Fixes: 7cbecc2f742 ("net/i40e: support queue region set and flush")

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
 drivers/net/i40e/rte_pmd_i40e.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Ferruh Yigit Oct. 24, 2017, 9 p.m. UTC | #1
On 10/24/2017 1:45 AM, Wei Zhao wrote:
> when VSI is enabled with smaller number of queues,
> for example, 1 or 6, it will cause error.64 is the
> max number of queues that can be used for RSS,
> but VSI might be created with only few queues.
> 
> Fixes: 7cbecc2f742 ("net/i40e: support queue region set and flush")
> 
> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

This implements the discussion on:
http://dpdk.org/ml/archives/dev/2017-October/079599.html
  
Ferruh Yigit Oct. 24, 2017, 9:11 p.m. UTC | #2
On 10/24/2017 2:00 PM, Ferruh Yigit wrote:
> On 10/24/2017 1:45 AM, Wei Zhao wrote:
>> when VSI is enabled with smaller number of queues,
>> for example, 1 or 6, it will cause error.64 is the
>> max number of queues that can be used for RSS,
>> but VSI might be created with only few queues.
>>
>> Fixes: 7cbecc2f742 ("net/i40e: support queue region set and flush")
>>
>> Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> 
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied to dpdk-next-net/master, thanks.

> 
> This implements the discussion on:
> http://dpdk.org/ml/archives/dev/2017-October/079599.html
  

Patch

diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
index 4881ea0..909368d 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
@@ -2825,6 +2825,7 @@  i40e_flush_queue_region_all_conf(struct rte_eth_dev *dev,
 {
 	int32_t ret = -EINVAL;
 	struct i40e_queue_regions *info = &pf->queue_region;
+	struct i40e_vsi *main_vsi = pf->main_vsi;
 
 	if (on) {
 		i40e_queue_region_pf_flowtype_conf(hw, pf);
@@ -2845,7 +2846,7 @@  i40e_flush_queue_region_all_conf(struct rte_eth_dev *dev,
 	}
 
 	info->queue_region_number = 1;
-	info->region[0].queue_num = 64;
+	info->region[0].queue_num = main_vsi->nb_used_qps;
 	info->region[0].queue_start_index = 0;
 
 	ret = i40e_vsi_update_queue_region_mapping(hw, pf);