提交 eb051afe 编写于 作者: A Anjali Singhai Jain 提交者: Jeff Kirsher

i40e: Allow RSS table entry range and GPS to be any number, not necessarily power of 2

We tell the HW upper boundary of power of 2 in VSI config,
but the HW does not restrict us to use just power of 2 GPS in
case of RSS as long as we are not sharing the RSS table with
another VSI (VMDq). We at present are not doing RSS in VMDq
VSI.
If we were to enable that and if the system had CPU count which
was not power 2, the VMDq VSIs will see a little skewed distribution.

Change-ID: I3ea797ce9065a3ca4fc4d04251bf195463410473
Signed-off-by: NAnjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
上级 29f71bb0
...@@ -1366,7 +1366,7 @@ static void i40e_vsi_setup_queue_map(struct i40e_vsi *vsi, ...@@ -1366,7 +1366,7 @@ static void i40e_vsi_setup_queue_map(struct i40e_vsi *vsi,
vsi->tc_config.numtc = numtc; vsi->tc_config.numtc = numtc;
vsi->tc_config.enabled_tc = enabled_tc ? enabled_tc : 1; vsi->tc_config.enabled_tc = enabled_tc ? enabled_tc : 1;
/* Number of queues per enabled TC */ /* Number of queues per enabled TC */
num_tc_qps = rounddown_pow_of_two(vsi->alloc_queue_pairs/numtc); num_tc_qps = vsi->alloc_queue_pairs/numtc;
num_tc_qps = min_t(int, num_tc_qps, I40E_MAX_QUEUES_PER_TC); num_tc_qps = min_t(int, num_tc_qps, I40E_MAX_QUEUES_PER_TC);
/* Setup queue offset/count for all TCs for given VSI */ /* Setup queue offset/count for all TCs for given VSI */
...@@ -6498,7 +6498,6 @@ int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count) ...@@ -6498,7 +6498,6 @@ int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count)
return 0; return 0;
queue_count = min_t(int, queue_count, pf->rss_size_max); queue_count = min_t(int, queue_count, pf->rss_size_max);
queue_count = rounddown_pow_of_two(queue_count);
if (queue_count != pf->rss_size) { if (queue_count != pf->rss_size) {
i40e_prep_for_reset(pf); i40e_prep_for_reset(pf);
...@@ -6554,7 +6553,6 @@ static int i40e_sw_init(struct i40e_pf *pf) ...@@ -6554,7 +6553,6 @@ static int i40e_sw_init(struct i40e_pf *pf)
if (pf->hw.func_caps.rss) { if (pf->hw.func_caps.rss) {
pf->flags |= I40E_FLAG_RSS_ENABLED; pf->flags |= I40E_FLAG_RSS_ENABLED;
pf->rss_size = min_t(int, pf->rss_size_max, num_online_cpus()); pf->rss_size = min_t(int, pf->rss_size_max, num_online_cpus());
pf->rss_size = rounddown_pow_of_two(pf->rss_size);
} else { } else {
pf->rss_size = 1; pf->rss_size = 1;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册