net: hns3: change affinity_mask to numa node range
commit 1dc839ec09d3ab2a4156dc98328b8bc3586f2b70 upstream.
Currently, affinity_mask is set to a single cpu. As a result,
irqbalance becomes invalid in SUBSET or EXACT mode. To solve
this problem, change affinity_mask to numa node range. In this
way, irqbalance can be performed on the cpu of the numa node.
Fixes: 0812545487
("net: hns3: add interrupt affinity support for misc interrupt")
Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
34fc06d047
commit
b76522c7c3
@@ -1463,9 +1463,10 @@ static void hclge_init_kdump_kernel_config(struct hclge_dev *hdev)
|
|||||||
|
|
||||||
static int hclge_configure(struct hclge_dev *hdev)
|
static int hclge_configure(struct hclge_dev *hdev)
|
||||||
{
|
{
|
||||||
|
const struct cpumask *cpumask = cpu_online_mask;
|
||||||
struct hclge_cfg cfg;
|
struct hclge_cfg cfg;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int ret;
|
int node, ret;
|
||||||
|
|
||||||
ret = hclge_get_cfg(hdev, &cfg);
|
ret = hclge_get_cfg(hdev, &cfg);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -1526,11 +1527,12 @@ static int hclge_configure(struct hclge_dev *hdev)
|
|||||||
|
|
||||||
hclge_init_kdump_kernel_config(hdev);
|
hclge_init_kdump_kernel_config(hdev);
|
||||||
|
|
||||||
/* Set the init affinity based on pci func number */
|
/* Set the affinity based on numa node */
|
||||||
i = cpumask_weight(cpumask_of_node(dev_to_node(&hdev->pdev->dev)));
|
node = dev_to_node(&hdev->pdev->dev);
|
||||||
i = i ? PCI_FUNC(hdev->pdev->devfn) % i : 0;
|
if (node != NUMA_NO_NODE)
|
||||||
cpumask_set_cpu(cpumask_local_spread(i, dev_to_node(&hdev->pdev->dev)),
|
cpumask = cpumask_of_node(node);
|
||||||
&hdev->affinity_mask);
|
|
||||||
|
cpumask_copy(&hdev->affinity_mask, cpumask);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user