lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 051/122] net: hns3: change affinity_mask to numa node range
    Date
    From: Yufeng Mo <moyufeng@huawei.com>

    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: 0812545487ec ("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>
    ---
    drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 14 ++++++++------
    1 file changed, 8 insertions(+), 6 deletions(-)

    --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
    +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
    @@ -1463,9 +1463,10 @@ static void hclge_init_kdump_kernel_conf

    static int hclge_configure(struct hclge_dev *hdev)
    {
    + const struct cpumask *cpumask = cpu_online_mask;
    struct hclge_cfg cfg;
    unsigned int i;
    - int ret;
    + int node, ret;

    ret = hclge_get_cfg(hdev, &cfg);
    if (ret)
    @@ -1526,11 +1527,12 @@ static int hclge_configure(struct hclge_

    hclge_init_kdump_kernel_config(hdev);

    - /* Set the init affinity based on pci func number */
    - i = cpumask_weight(cpumask_of_node(dev_to_node(&hdev->pdev->dev)));
    - i = i ? PCI_FUNC(hdev->pdev->devfn) % i : 0;
    - cpumask_set_cpu(cpumask_local_spread(i, dev_to_node(&hdev->pdev->dev)),
    - &hdev->affinity_mask);
    + /* Set the affinity based on numa node */
    + node = dev_to_node(&hdev->pdev->dev);
    + if (node != NUMA_NO_NODE)
    + cpumask = cpumask_of_node(node);
    +
    + cpumask_copy(&hdev->affinity_mask, cpumask);

    return ret;
    }

    \
     
     \ /
      Last update: 2021-09-20 20:35    [W:2.204 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site