[dpdk-dev] net/i40e: fix queue number error in queue region
Checks
Commit Message
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
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
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
@@ -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);