IB/srp: Fix completion vector assignment algorithm
Ensure that cv_end is equal to ibdev->num_comp_vectors for the NUMA node with the highest index. This patch improves spreading of RDMA channels over completion vectors and thereby improves performance, especially on systems with only a single NUMA node. This patch drops support for the comp_vector login parameter by ignoring the value of that parameter since I have not found a good way to combine support for that parameter and automatic spreading of RDMA channels over completion vectors. Fixes: d92c0da71a35 ("IB/srp: Add multichannel support") Reported-by: Alexander Schmid <alex@modula-shop-systems.de> Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Cc: Alexander Schmid <alex@modula-shop-systems.de> Cc: stable@vger.kernel.org Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
71591d1280
commit
3a148896b2
@ -3871,12 +3871,10 @@ static ssize_t srp_create_target(struct device *dev,
|
||||
num_online_nodes());
|
||||
const int ch_end = ((node_idx + 1) * target->ch_count /
|
||||
num_online_nodes());
|
||||
const int cv_start = (node_idx * ibdev->num_comp_vectors /
|
||||
num_online_nodes() + target->comp_vector)
|
||||
% ibdev->num_comp_vectors;
|
||||
const int cv_end = ((node_idx + 1) * ibdev->num_comp_vectors /
|
||||
num_online_nodes() + target->comp_vector)
|
||||
% ibdev->num_comp_vectors;
|
||||
const int cv_start = node_idx * ibdev->num_comp_vectors /
|
||||
num_online_nodes();
|
||||
const int cv_end = (node_idx + 1) * ibdev->num_comp_vectors /
|
||||
num_online_nodes();
|
||||
int cpu_idx = 0;
|
||||
|
||||
for_each_online_cpu(cpu) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user