Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp2693977imw; Sun, 17 Jul 2022 14:54:56 -0700 (PDT) X-Google-Smtp-Source: AGRyM1spgi8WcSLIJUCCLxIM8Q2aPQCnYPL0wWtsKSqJ7ClPuDNDDS+tN6RGOfKbEmg+ovDncznj X-Received: by 2002:a17:90b:48c2:b0:1f0:fe42:6189 with SMTP id li2-20020a17090b48c200b001f0fe426189mr18675458pjb.40.1658094895962; Sun, 17 Jul 2022 14:54:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1658094895; cv=pass; d=google.com; s=arc-20160816; b=E5wKFr09+51h9q7Lw8lnRaCa7wSWqGzVCn12b0mu9foAnOFgdH1zIkag13jtnTJDA1 rGkI3jc+0wqXCGT7ysji7eOY7fMMzEvBG0aNL1tTpVeF7ccUotpQnjOz6t5KSsyzEsB+ cW++6Dx+OTJTsmt7IbODrwZm0IkCdyXJOY5Di1foiumGMGb+PkzNZ2LtQg38XUhIUP+h l2PYbtkSqLQsItYqbSgIVuMfa/qlNRSaAH+5v3k4EP79q7NV541oG+Mq9rBXMKRctrFM vpCLAVZWc1DkBiuLc0Y60w4U8ZbA1qBTeUzroJDZolBQcEpqgqUpFmo2xhvz8TlOqVOB unTw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:in-reply-to:content-disposition :references:message-id:subject:cc:to:from:date:dkim-signature; bh=DBFm4Wte8c1TmUFXXrdOTJmqW+z40qHRug4p3oc3R+I=; b=sv7KMt35sWCZwQddSkD7HHIFivJWrzcxqHSCFZYnVhUFGuPVDi8PUG8iaFLuPXrmYI Suf26iXgFpmC3hRNZV8yG3Iwp3z2/Qb50+XM7GCeQ3xcEYXuh4oP2MzgGsggIRiBJ5Py Fp6DZVohiKTtJv1OnQILGdAglLF7T80c1XfXH2eE0iayTRipaxKvfLCl/4zKGSo780Vx 2NmGC8ewxXoLxL20T/dFPtil5nFUUWQyBl33IVBzpJejgNLhaAD38wOb5NVxxLgFllrM 6/sWfWQ5iECNiFhfi7I5oBPYz0188hh3jUP2LZRzfmHDzGAUF5+8fJqA+Rs00MYado87 USsg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=lAVkk4Nw; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g11-20020a17090a640b00b001efa6c330e3si13066100pjj.121.2022.07.17.14.54.42; Sun, 17 Jul 2022 14:54:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=lAVkk4Nw; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231629AbiGQVvb (ORCPT + 99 others); Sun, 17 Jul 2022 17:51:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229587AbiGQVv3 (ORCPT ); Sun, 17 Jul 2022 17:51:29 -0400 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2043.outbound.protection.outlook.com [40.107.243.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE86EFD27; Sun, 17 Jul 2022 14:51:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JyGklmZPxF0cuy9UMsBf5UZ/e8n3VPFmchroABwGiDsvPuphIG29FBHCUUxnJjp2x29jHr/maju6jH72+iXXuS3EuNB3QZ+5pOLy6Z7tikt7x64WB6rrwFvJrePZnh+5TGFOvsGUHKGzm66bo6z7d0q7gaWicYFua8QxnIgkdrd+l5Gim2UjUZd9ICPYOzu/bCGcwx3qRkJixXrc8cZGczB1TBLIz+fI1sZ7aqAAUfaO85jP+k1gQm5PtMUJSUZZ3AeIyqoZlQDQT//l0z0dlLeFrc5mQCrZ72vNAf3m7tk+oWE03eti9UZ5EI4zkhhuQsNQqGaI+A116rcUcdltjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DBFm4Wte8c1TmUFXXrdOTJmqW+z40qHRug4p3oc3R+I=; b=HmceFtMNhZtPDemTc1Wi84jUhASydGTIpVp0Jj6MC+Jb5C/YuhjNWtrceGvQCuTXmRbvYwErOMG+ywKYQfC/ZHQSnZ+SQJYL2BW2MpTfCFAKdMGSxatSAoRfUK6Rn4qO3IU1bVvZiU4teeOw9RED/XFumtmbBEiibQPQ1PCTtNjDuTKaTUUlknTWvRh8BkhTSdTuGigzvHQ+muP6Tp8XbKjuPhTsGhW1AriSmP0k2TwKt0K+oVmrqnfW8BogtO4tq/Gii4XK6hV9xwrO42rbdiIk5cpLXcyX9LLT715ydEFXZCBxpBXCg1Sv/jhUtWSGUydceawTdI5htLk1lRp89A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DBFm4Wte8c1TmUFXXrdOTJmqW+z40qHRug4p3oc3R+I=; b=lAVkk4NwAC+b0OBRkStua+75lXGOwiYiC0Mwu6AAEmUpeUTnBRzeyrzM6+k8KmsOrQSR1sx2za7Ql4BGgWc10WV6dB3ihGCi1ZO+lQtzX4VrEzjExzG3oURI1IgM0o3anRxrIjlib+jZliSbQpb003iC4ubvIMHwPHPGARMctgtR5KmFIBqEmw8Bag7KbxjvtkUZM5w2/iWGxx8EB7Jap4sLnWS0S3CjdlCm7TmIROiCw7kYXwmNiaegS8HvNGaYwVbZeK+/ApZiJPSSsyCE21hPKVjVsnCNzOLqK0eArLdX7wF0cFX43wCUIXnKfIiqZ+jVBpckW/76VjbadZWCcA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4209.namprd12.prod.outlook.com (2603:10b6:a03:20d::22) by BY5PR12MB4817.namprd12.prod.outlook.com (2603:10b6:a03:1fe::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.12; Sun, 17 Jul 2022 21:51:24 +0000 Received: from BY5PR12MB4209.namprd12.prod.outlook.com ([fe80::900e:a8f9:4d99:1cb1]) by BY5PR12MB4209.namprd12.prod.outlook.com ([fe80::900e:a8f9:4d99:1cb1%4]) with mapi id 15.20.5438.023; Sun, 17 Jul 2022 21:51:23 +0000 Date: Sun, 17 Jul 2022 14:51:22 -0700 From: Saeed Mahameed To: Tariq Toukan Cc: "David S. Miller" , Jakub Kicinski , Ingo Molnar , Peter Zijlstra , Juri Lelli , Eric Dumazet , Paolo Abeni , netdev@vger.kernel.org, Gal Pressman , Vincent Guittot , linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next 2/2] net/mlx5: Improve remote NUMA preferences used for the IRQ affinity hints Message-ID: <20220717215122.7bw7dwbq43jcm5hz@sx1> References: <20220717052301.19067-1-tariqt@nvidia.com> <20220717052301.19067-3-tariqt@nvidia.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20220717052301.19067-3-tariqt@nvidia.com> X-ClientProxiedBy: BY5PR04CA0021.namprd04.prod.outlook.com (2603:10b6:a03:1d0::31) To BY5PR12MB4209.namprd12.prod.outlook.com (2603:10b6:a03:20d::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 613d338c-b292-4e62-e3a4-08da683e7dc5 X-MS-TrafficTypeDiagnostic: BY5PR12MB4817:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Gk3XtemuWGcoiychoyVM5C8MTl+J4NLf508C4MdBvZ5meAB0SoCN/Sku/NozZdRZVHbpCxgRjByxYlnSQytQuRrkPD9i05EgnH4oU8my7CMa7LXfuwFAjoNDpSjJP07uvQll72J8CGbtGblFhf9op8LP8/89KNlwyc6P3QXaFj5nBZMIe4zLLb0375Wa53GY5FcVFgzroVu3bCAFFPmRLjdZ5ifYdf0XrhkFMAe38q4ve9ava+fRRPEkinDLEoQDqf8KYphnLoqqv/BL/UUzTP2ZwiY7gT8lSO5jOmBs0GXXYt5aK/PNbEvqf3EWCNtJKD8YmE7R/48Z9N4APoqTUJDQc87iT4/AxlIGCHgbcZJKrvmgFbYJmpmWAkRRQjU6eIP5i4i2hqsQvVa13cvFup1Re/qqf8gwJsyiUxVgKP2htR2/zDqAGAcNI0K0zghaJHnGqaUp1HAJDUGf8ldFdlCgX5mItwypmRTljtWm+WIsyiZzPmxGK9gL8cnrRfsngIoLDFtCdoP3jUgj7PId7agXw9B262Qo7d5Z92os9SmaZavQRtegu6BtkloV7t2AG1VBwAabahznFpviSBjHWWZRR4culakS6eKM9v04QFaKn1PVffpWYEZNs33SBXFwDQ4pEliBypypVkLF/e07OIg2D94KMtMu8sVLCkFyg/Lb39o5g9TvQk5nhH9p7eum/tnAborfBFa1IDFqXiUQ6bpUUQfeE+i4fFguVFw6nqMnQFc2l6V3JvQJ5UIvACZqYOpm7DWOWGi7YaeCzDvIkA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4209.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(7916004)(136003)(366004)(39860400002)(396003)(346002)(376002)(6486002)(478600001)(41300700001)(186003)(1076003)(26005)(6506007)(9686003)(6512007)(38100700002)(83380400001)(2906002)(30864003)(7416002)(6862004)(5660300002)(8936002)(316002)(8676002)(33716001)(66476007)(66556008)(66946007)(86362001)(54906003)(4326008)(6636002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RtppFJqHk6vKnEmAYRYlCc4waO39fzQIghpIrW3+5oHjJCDRIkTaIMHKN+it?= =?us-ascii?Q?So8i+3TQoxWIwxOGYSGtMUKOdEQ4tCPVYYixodprpsJv8zInGLU9tWsjg5VC?= =?us-ascii?Q?iIXE64FXz44wM6mT+C7LdWZWEFtjnYkItKvRUvdKuNmRWQq2gEev2s3FzOno?= =?us-ascii?Q?5HaY6XaMVkuB5Jl/g3ViQftpJ/y14Dqt3Da+xh+ALlcCafckxQ5Rda2d27xr?= =?us-ascii?Q?3G8PuxiYfEk0SvT9L8EgZIzMjw5Q7XDtwxEbXE6OmXIvc6HiMj3wPkE2sXkx?= =?us-ascii?Q?wKTBLSqnr5rMefslT7vPUPFcLl5DiGkGtzIRLl+zGKGWkgmpeHgNxtZb6+MP?= =?us-ascii?Q?UfN9pYv/oNCV3jKBIXRe/vocrOLxkUneeSLmuiqEo0ztGn/ZfJXGC9rDP6+L?= =?us-ascii?Q?H9hsRI/88dbaMl36GJWNIptxJbVZ6t6uo5k+n+LiACvzhFQUaTmBdEk/jMML?= =?us-ascii?Q?sfqAZMLwU1eTkhz9p3PZeBW1ndoJlGnBdBAo+ap9I/HQPdPG6MOIMDVvbip5?= =?us-ascii?Q?xO+wPLv9kfidLhq2Sa+VmVMg6nRNzP9PL4Y7BaUZQt3C2+9Ol54MgKXao04A?= =?us-ascii?Q?I0VbrxLWamVbrcNhKTdwMyTviJ5sK1ypArtt+dpEOJlSH1dgEc7AAPQtp+hu?= =?us-ascii?Q?BjUfdPB0S72Yb5cv0NUeIwV7kxwKAZ9afvkP9bu38fU++JfLmu0DZV+XsEuF?= =?us-ascii?Q?ga6AXjW5KnVqxm3VUKQR8b9KUH6nLI8LE0is5CMugl9KY61lSUZmMIO1dDj9?= =?us-ascii?Q?28wYl4OCSJaUwyivVZgwtIa3cL3HD8Er/24YoySU4e/A0UyFfEJI2sJVp7X+?= =?us-ascii?Q?2tBNsJ0Zq4Y7x+ksHFaAdSPOdiDgVo/E7UwgIWxBMQFbofujd9qjnxkD85gD?= =?us-ascii?Q?zUcy0tqttxF6K9S33Ic/JB8yCwJKEnsfMeSAdYU7KF5fUXTlQWOE9rVTgZHo?= =?us-ascii?Q?JMGjukSvIm1NoY29WZ/d8IiH14+QPIHsbMmGZVDria+Wypugt5Sg5Jy+V5e5?= =?us-ascii?Q?Ym3vgV6CbpxVJWDx3ILe+nDUh86aJw9J1fkLqv4NNHCvqy4QBBL46xOyiUOr?= =?us-ascii?Q?ty4pkuqJfURMYbH4E1jVNlwMjh/YKaanoEHy2qiuJDEJX83IRL6ZfHT31E5Y?= =?us-ascii?Q?TtGAYQ21vvI2rT6iPkqyeSfDidU0/k5uXZ2SOwN++Q2Pa57Vni5uixCe6gJ2?= =?us-ascii?Q?tlIymhECIhiBX5E3v/obLL64alAzCwUj+QKAFkBLVdMWKE6RApYtQHArSxyk?= =?us-ascii?Q?Ozu+v7pE4vcWCNVBZae6HIcOih7FrprNv7xc3j2ypcu+WzrmIfV1m3lB2YwG?= =?us-ascii?Q?pr8jNQb7qJxiV7qqcolleOV+7AlpaObYbN3D6GB+sIssUMjT+/mkIW4Az2hd?= =?us-ascii?Q?wvyf8iB/Lzadxikhuh99pwTGTnVVyxISlCR+mdjrIPI4qR+jFiYwy/2RvN1B?= =?us-ascii?Q?jo4POggPeeLzpYbPzET0BL8ZwEv5a0Fi2BULT7qUbbJ2jU0AIq3y5WeoknTc?= =?us-ascii?Q?RGRIHOWvbtl67N/ElX/uODFHdIl54j+Sqrot+Q3/sGoTdqkIluP4376AOBBN?= =?us-ascii?Q?3pw02pjdgQZwaFfO2Kvzq8ZIAstz2sjI0xLEYb3a?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 613d338c-b292-4e62-e3a4-08da683e7dc5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4209.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2022 21:51:23.8727 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BaKsPOYtZslfgifBwPq4tEeuHtwGMgbwZBeHnDRRwV4ZsRqaoaDlKgL1nrUW4Dc13sif+apDZA9x/Qadglgi/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4817 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17 Jul 08:23, Tariq Toukan wrote: >In the IRQ affinity hints, replace the binary NUMA preference (local / >remote) with an improved one that minds the actual distances, so that >remote NUMAs with short distance are preferred over farther ones. > >This has significant performance implications when using NUMA-aware >allocated memory (follow [1] and derivatives for example). > >[1] >drivers/net/ethernet/mellanox/mlx5/core/en_main.c :: mlx5e_open_channel() > int cpu = cpumask_first(mlx5_comp_irq_get_affinity_mask(priv->mdev, ix)); > >Performance tests: > >TCP multi-stream, using 16 iperf3 instances pinned to 16 cores (with aRFS on). >Active cores: 64,65,72,73,80,81,88,89,96,97,104,105,112,113,120,121 > >+-------------------------+-----------+------------------+------------------+ >| | BW (Gbps) | TX side CPU util | RX side CPU util | >+-------------------------+-----------+------------------+------------------+ >| Baseline | 52.3 | 6.4 % | 17.9 % | >+-------------------------+-----------+------------------+------------------+ >| Applied on TX side only | 52.6 | 5.2 % | 18.5 % | >+-------------------------+-----------+------------------+------------------+ >| Applied on RX side only | 94.9 | 11.9 % | 27.2 % | >+-------------------------+-----------+------------------+------------------+ >| Applied on both sides | 95.1 | 8.4 % | 27.3 % | >+-------------------------+-----------+------------------+------------------+ > >Bottleneck in RX side is released, reached linerate (~1.8x speedup). >~30% less cpu util on TX. > >* CPU util on active cores only. > >Setups details (similar for both sides): > >NIC: ConnectX6-DX dual port, 100 Gbps each. >Single port used in the tests. > >$ lscpu >Architecture: x86_64 >CPU op-mode(s): 32-bit, 64-bit >Byte Order: Little Endian >CPU(s): 256 >On-line CPU(s) list: 0-255 >Thread(s) per core: 2 >Core(s) per socket: 64 >Socket(s): 2 >NUMA node(s): 16 >Vendor ID: AuthenticAMD >CPU family: 25 >Model: 1 >Model name: AMD EPYC 7763 64-Core Processor >Stepping: 1 >CPU MHz: 2594.804 >BogoMIPS: 4890.73 >Virtualization: AMD-V >L1d cache: 32K >L1i cache: 32K >L2 cache: 512K >L3 cache: 32768K >NUMA node0 CPU(s): 0-7,128-135 >NUMA node1 CPU(s): 8-15,136-143 >NUMA node2 CPU(s): 16-23,144-151 >NUMA node3 CPU(s): 24-31,152-159 >NUMA node4 CPU(s): 32-39,160-167 >NUMA node5 CPU(s): 40-47,168-175 >NUMA node6 CPU(s): 48-55,176-183 >NUMA node7 CPU(s): 56-63,184-191 >NUMA node8 CPU(s): 64-71,192-199 >NUMA node9 CPU(s): 72-79,200-207 >NUMA node10 CPU(s): 80-87,208-215 >NUMA node11 CPU(s): 88-95,216-223 >NUMA node12 CPU(s): 96-103,224-231 >NUMA node13 CPU(s): 104-111,232-239 >NUMA node14 CPU(s): 112-119,240-247 >NUMA node15 CPU(s): 120-127,248-255 >.. > >$ numactl -H >.. >node distances: >node 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > 0: 10 11 11 11 12 12 12 12 32 32 32 32 32 32 32 32 > 1: 11 10 11 11 12 12 12 12 32 32 32 32 32 32 32 32 > 2: 11 11 10 11 12 12 12 12 32 32 32 32 32 32 32 32 > 3: 11 11 11 10 12 12 12 12 32 32 32 32 32 32 32 32 > 4: 12 12 12 12 10 11 11 11 32 32 32 32 32 32 32 32 > 5: 12 12 12 12 11 10 11 11 32 32 32 32 32 32 32 32 > 6: 12 12 12 12 11 11 10 11 32 32 32 32 32 32 32 32 > 7: 12 12 12 12 11 11 11 10 32 32 32 32 32 32 32 32 > 8: 32 32 32 32 32 32 32 32 10 11 11 11 12 12 12 12 > 9: 32 32 32 32 32 32 32 32 11 10 11 11 12 12 12 12 > 10: 32 32 32 32 32 32 32 32 11 11 10 11 12 12 12 12 > 11: 32 32 32 32 32 32 32 32 11 11 11 10 12 12 12 12 > 12: 32 32 32 32 32 32 32 32 12 12 12 12 10 11 11 11 > 13: 32 32 32 32 32 32 32 32 12 12 12 12 11 10 11 11 > 14: 32 32 32 32 32 32 32 32 12 12 12 12 11 11 10 11 > 15: 32 32 32 32 32 32 32 32 12 12 12 12 11 11 11 10 > >$ cat /sys/class/net/ens5f0/device/numa_node >14 > >Affinity hints (127 IRQs): >Before: >331: 00000000,00000000,00000000,00000000,00010000,00000000,00000000,00000000 >332: 00000000,00000000,00000000,00000000,00020000,00000000,00000000,00000000 >333: 00000000,00000000,00000000,00000000,00040000,00000000,00000000,00000000 >334: 00000000,00000000,00000000,00000000,00080000,00000000,00000000,00000000 >335: 00000000,00000000,00000000,00000000,00100000,00000000,00000000,00000000 >336: 00000000,00000000,00000000,00000000,00200000,00000000,00000000,00000000 >337: 00000000,00000000,00000000,00000000,00400000,00000000,00000000,00000000 >338: 00000000,00000000,00000000,00000000,00800000,00000000,00000000,00000000 >339: 00010000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >340: 00020000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >341: 00040000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >342: 00080000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >343: 00100000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >344: 00200000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >345: 00400000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >346: 00800000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >347: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 >348: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000002 >349: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000004 >350: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000008 >351: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000010 >352: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000020 >353: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000040 >354: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000080 >355: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000100 >356: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000200 >357: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000400 >358: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000800 >359: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00001000 >360: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00002000 >361: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00004000 >362: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00008000 >363: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00010000 >364: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00020000 >365: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00040000 >366: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00080000 >367: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00100000 >368: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00200000 >369: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00400000 >370: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00800000 >371: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,01000000 >372: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,02000000 >373: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,04000000 >374: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,08000000 >375: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,10000000 >376: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,20000000 >377: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,40000000 >378: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,80000000 >379: 00000000,00000000,00000000,00000000,00000000,00000000,00000001,00000000 >380: 00000000,00000000,00000000,00000000,00000000,00000000,00000002,00000000 >381: 00000000,00000000,00000000,00000000,00000000,00000000,00000004,00000000 >382: 00000000,00000000,00000000,00000000,00000000,00000000,00000008,00000000 >383: 00000000,00000000,00000000,00000000,00000000,00000000,00000010,00000000 >384: 00000000,00000000,00000000,00000000,00000000,00000000,00000020,00000000 >385: 00000000,00000000,00000000,00000000,00000000,00000000,00000040,00000000 >386: 00000000,00000000,00000000,00000000,00000000,00000000,00000080,00000000 >387: 00000000,00000000,00000000,00000000,00000000,00000000,00000100,00000000 >388: 00000000,00000000,00000000,00000000,00000000,00000000,00000200,00000000 >389: 00000000,00000000,00000000,00000000,00000000,00000000,00000400,00000000 >390: 00000000,00000000,00000000,00000000,00000000,00000000,00000800,00000000 >391: 00000000,00000000,00000000,00000000,00000000,00000000,00001000,00000000 >392: 00000000,00000000,00000000,00000000,00000000,00000000,00002000,00000000 >393: 00000000,00000000,00000000,00000000,00000000,00000000,00004000,00000000 >394: 00000000,00000000,00000000,00000000,00000000,00000000,00008000,00000000 >395: 00000000,00000000,00000000,00000000,00000000,00000000,00010000,00000000 >396: 00000000,00000000,00000000,00000000,00000000,00000000,00020000,00000000 >397: 00000000,00000000,00000000,00000000,00000000,00000000,00040000,00000000 >398: 00000000,00000000,00000000,00000000,00000000,00000000,00080000,00000000 >399: 00000000,00000000,00000000,00000000,00000000,00000000,00100000,00000000 >400: 00000000,00000000,00000000,00000000,00000000,00000000,00200000,00000000 >401: 00000000,00000000,00000000,00000000,00000000,00000000,00400000,00000000 >402: 00000000,00000000,00000000,00000000,00000000,00000000,00800000,00000000 >403: 00000000,00000000,00000000,00000000,00000000,00000000,01000000,00000000 >404: 00000000,00000000,00000000,00000000,00000000,00000000,02000000,00000000 >405: 00000000,00000000,00000000,00000000,00000000,00000000,04000000,00000000 >406: 00000000,00000000,00000000,00000000,00000000,00000000,08000000,00000000 >407: 00000000,00000000,00000000,00000000,00000000,00000000,10000000,00000000 >408: 00000000,00000000,00000000,00000000,00000000,00000000,20000000,00000000 >409: 00000000,00000000,00000000,00000000,00000000,00000000,40000000,00000000 >410: 00000000,00000000,00000000,00000000,00000000,00000000,80000000,00000000 >411: 00000000,00000000,00000000,00000000,00000000,00000001,00000000,00000000 >412: 00000000,00000000,00000000,00000000,00000000,00000002,00000000,00000000 >413: 00000000,00000000,00000000,00000000,00000000,00000004,00000000,00000000 >414: 00000000,00000000,00000000,00000000,00000000,00000008,00000000,00000000 >415: 00000000,00000000,00000000,00000000,00000000,00000010,00000000,00000000 >416: 00000000,00000000,00000000,00000000,00000000,00000020,00000000,00000000 >417: 00000000,00000000,00000000,00000000,00000000,00000040,00000000,00000000 >418: 00000000,00000000,00000000,00000000,00000000,00000080,00000000,00000000 >419: 00000000,00000000,00000000,00000000,00000000,00000100,00000000,00000000 >420: 00000000,00000000,00000000,00000000,00000000,00000200,00000000,00000000 >421: 00000000,00000000,00000000,00000000,00000000,00000400,00000000,00000000 >422: 00000000,00000000,00000000,00000000,00000000,00000800,00000000,00000000 >423: 00000000,00000000,00000000,00000000,00000000,00001000,00000000,00000000 >424: 00000000,00000000,00000000,00000000,00000000,00002000,00000000,00000000 >425: 00000000,00000000,00000000,00000000,00000000,00004000,00000000,00000000 >426: 00000000,00000000,00000000,00000000,00000000,00008000,00000000,00000000 >427: 00000000,00000000,00000000,00000000,00000000,00010000,00000000,00000000 >428: 00000000,00000000,00000000,00000000,00000000,00020000,00000000,00000000 >429: 00000000,00000000,00000000,00000000,00000000,00040000,00000000,00000000 >430: 00000000,00000000,00000000,00000000,00000000,00080000,00000000,00000000 >431: 00000000,00000000,00000000,00000000,00000000,00100000,00000000,00000000 >432: 00000000,00000000,00000000,00000000,00000000,00200000,00000000,00000000 >433: 00000000,00000000,00000000,00000000,00000000,00400000,00000000,00000000 >434: 00000000,00000000,00000000,00000000,00000000,00800000,00000000,00000000 >435: 00000000,00000000,00000000,00000000,00000000,01000000,00000000,00000000 >436: 00000000,00000000,00000000,00000000,00000000,02000000,00000000,00000000 >437: 00000000,00000000,00000000,00000000,00000000,04000000,00000000,00000000 >438: 00000000,00000000,00000000,00000000,00000000,08000000,00000000,00000000 >439: 00000000,00000000,00000000,00000000,00000000,10000000,00000000,00000000 >440: 00000000,00000000,00000000,00000000,00000000,20000000,00000000,00000000 >441: 00000000,00000000,00000000,00000000,00000000,40000000,00000000,00000000 >442: 00000000,00000000,00000000,00000000,00000000,80000000,00000000,00000000 >443: 00000000,00000000,00000000,00000000,00000001,00000000,00000000,00000000 >444: 00000000,00000000,00000000,00000000,00000002,00000000,00000000,00000000 >445: 00000000,00000000,00000000,00000000,00000004,00000000,00000000,00000000 >446: 00000000,00000000,00000000,00000000,00000008,00000000,00000000,00000000 >447: 00000000,00000000,00000000,00000000,00000010,00000000,00000000,00000000 >448: 00000000,00000000,00000000,00000000,00000020,00000000,00000000,00000000 >449: 00000000,00000000,00000000,00000000,00000040,00000000,00000000,00000000 >450: 00000000,00000000,00000000,00000000,00000080,00000000,00000000,00000000 >451: 00000000,00000000,00000000,00000000,00000100,00000000,00000000,00000000 >452: 00000000,00000000,00000000,00000000,00000200,00000000,00000000,00000000 >453: 00000000,00000000,00000000,00000000,00000400,00000000,00000000,00000000 >454: 00000000,00000000,00000000,00000000,00000800,00000000,00000000,00000000 >455: 00000000,00000000,00000000,00000000,00001000,00000000,00000000,00000000 >456: 00000000,00000000,00000000,00000000,00002000,00000000,00000000,00000000 >457: 00000000,00000000,00000000,00000000,00004000,00000000,00000000,00000000 > >After: >331: 00000000,00000000,00000000,00000000,00010000,00000000,00000000,00000000 >332: 00000000,00000000,00000000,00000000,00020000,00000000,00000000,00000000 >333: 00000000,00000000,00000000,00000000,00040000,00000000,00000000,00000000 >334: 00000000,00000000,00000000,00000000,00080000,00000000,00000000,00000000 >335: 00000000,00000000,00000000,00000000,00100000,00000000,00000000,00000000 >336: 00000000,00000000,00000000,00000000,00200000,00000000,00000000,00000000 >337: 00000000,00000000,00000000,00000000,00400000,00000000,00000000,00000000 >338: 00000000,00000000,00000000,00000000,00800000,00000000,00000000,00000000 >339: 00010000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >340: 00020000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >341: 00040000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >342: 00080000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >343: 00100000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >344: 00200000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >345: 00400000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >346: 00800000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >347: 00000000,00000000,00000000,00000000,00000001,00000000,00000000,00000000 >348: 00000000,00000000,00000000,00000000,00000002,00000000,00000000,00000000 >349: 00000000,00000000,00000000,00000000,00000004,00000000,00000000,00000000 >350: 00000000,00000000,00000000,00000000,00000008,00000000,00000000,00000000 >351: 00000000,00000000,00000000,00000000,00000010,00000000,00000000,00000000 >352: 00000000,00000000,00000000,00000000,00000020,00000000,00000000,00000000 >353: 00000000,00000000,00000000,00000000,00000040,00000000,00000000,00000000 >354: 00000000,00000000,00000000,00000000,00000080,00000000,00000000,00000000 >355: 00000000,00000000,00000000,00000000,00000100,00000000,00000000,00000000 >356: 00000000,00000000,00000000,00000000,00000200,00000000,00000000,00000000 >357: 00000000,00000000,00000000,00000000,00000400,00000000,00000000,00000000 >358: 00000000,00000000,00000000,00000000,00000800,00000000,00000000,00000000 >359: 00000000,00000000,00000000,00000000,00001000,00000000,00000000,00000000 >360: 00000000,00000000,00000000,00000000,00002000,00000000,00000000,00000000 >361: 00000000,00000000,00000000,00000000,00004000,00000000,00000000,00000000 >362: 00000000,00000000,00000000,00000000,00008000,00000000,00000000,00000000 >363: 00000000,00000000,00000000,00000000,01000000,00000000,00000000,00000000 >364: 00000000,00000000,00000000,00000000,02000000,00000000,00000000,00000000 >365: 00000000,00000000,00000000,00000000,04000000,00000000,00000000,00000000 >366: 00000000,00000000,00000000,00000000,08000000,00000000,00000000,00000000 >367: 00000000,00000000,00000000,00000000,10000000,00000000,00000000,00000000 >368: 00000000,00000000,00000000,00000000,20000000,00000000,00000000,00000000 >369: 00000000,00000000,00000000,00000000,40000000,00000000,00000000,00000000 >370: 00000000,00000000,00000000,00000000,80000000,00000000,00000000,00000000 >371: 00000001,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >372: 00000002,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >373: 00000004,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >374: 00000008,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >375: 00000010,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >376: 00000020,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >377: 00000040,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >378: 00000080,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >379: 00000100,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >380: 00000200,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >381: 00000400,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >382: 00000800,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >383: 00001000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >384: 00002000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >385: 00004000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >386: 00008000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >387: 01000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >388: 02000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >389: 04000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >390: 08000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >391: 10000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >392: 20000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >393: 40000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >394: 80000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000 >395: 00000000,00000000,00000000,00000000,00000000,00000001,00000000,00000000 >396: 00000000,00000000,00000000,00000000,00000000,00000002,00000000,00000000 >397: 00000000,00000000,00000000,00000000,00000000,00000004,00000000,00000000 >398: 00000000,00000000,00000000,00000000,00000000,00000008,00000000,00000000 >399: 00000000,00000000,00000000,00000000,00000000,00000010,00000000,00000000 >400: 00000000,00000000,00000000,00000000,00000000,00000020,00000000,00000000 >401: 00000000,00000000,00000000,00000000,00000000,00000040,00000000,00000000 >402: 00000000,00000000,00000000,00000000,00000000,00000080,00000000,00000000 >403: 00000000,00000000,00000000,00000000,00000000,00000100,00000000,00000000 >404: 00000000,00000000,00000000,00000000,00000000,00000200,00000000,00000000 >405: 00000000,00000000,00000000,00000000,00000000,00000400,00000000,00000000 >406: 00000000,00000000,00000000,00000000,00000000,00000800,00000000,00000000 >407: 00000000,00000000,00000000,00000000,00000000,00001000,00000000,00000000 >408: 00000000,00000000,00000000,00000000,00000000,00002000,00000000,00000000 >409: 00000000,00000000,00000000,00000000,00000000,00004000,00000000,00000000 >410: 00000000,00000000,00000000,00000000,00000000,00008000,00000000,00000000 >411: 00000000,00000000,00000000,00000000,00000000,00010000,00000000,00000000 >412: 00000000,00000000,00000000,00000000,00000000,00020000,00000000,00000000 >413: 00000000,00000000,00000000,00000000,00000000,00040000,00000000,00000000 >414: 00000000,00000000,00000000,00000000,00000000,00080000,00000000,00000000 >415: 00000000,00000000,00000000,00000000,00000000,00100000,00000000,00000000 >416: 00000000,00000000,00000000,00000000,00000000,00200000,00000000,00000000 >417: 00000000,00000000,00000000,00000000,00000000,00400000,00000000,00000000 >418: 00000000,00000000,00000000,00000000,00000000,00800000,00000000,00000000 >419: 00000000,00000000,00000000,00000000,00000000,01000000,00000000,00000000 >420: 00000000,00000000,00000000,00000000,00000000,02000000,00000000,00000000 >421: 00000000,00000000,00000000,00000000,00000000,04000000,00000000,00000000 >422: 00000000,00000000,00000000,00000000,00000000,08000000,00000000,00000000 >423: 00000000,00000000,00000000,00000000,00000000,10000000,00000000,00000000 >424: 00000000,00000000,00000000,00000000,00000000,20000000,00000000,00000000 >425: 00000000,00000000,00000000,00000000,00000000,40000000,00000000,00000000 >426: 00000000,00000000,00000000,00000000,00000000,80000000,00000000,00000000 >427: 00000000,00000001,00000000,00000000,00000000,00000000,00000000,00000000 >428: 00000000,00000002,00000000,00000000,00000000,00000000,00000000,00000000 >429: 00000000,00000004,00000000,00000000,00000000,00000000,00000000,00000000 >430: 00000000,00000008,00000000,00000000,00000000,00000000,00000000,00000000 >431: 00000000,00000010,00000000,00000000,00000000,00000000,00000000,00000000 >432: 00000000,00000020,00000000,00000000,00000000,00000000,00000000,00000000 >433: 00000000,00000040,00000000,00000000,00000000,00000000,00000000,00000000 >434: 00000000,00000080,00000000,00000000,00000000,00000000,00000000,00000000 >435: 00000000,00000100,00000000,00000000,00000000,00000000,00000000,00000000 >436: 00000000,00000200,00000000,00000000,00000000,00000000,00000000,00000000 >437: 00000000,00000400,00000000,00000000,00000000,00000000,00000000,00000000 >438: 00000000,00000800,00000000,00000000,00000000,00000000,00000000,00000000 >439: 00000000,00001000,00000000,00000000,00000000,00000000,00000000,00000000 >440: 00000000,00002000,00000000,00000000,00000000,00000000,00000000,00000000 >441: 00000000,00004000,00000000,00000000,00000000,00000000,00000000,00000000 >442: 00000000,00008000,00000000,00000000,00000000,00000000,00000000,00000000 >443: 00000000,00010000,00000000,00000000,00000000,00000000,00000000,00000000 >444: 00000000,00020000,00000000,00000000,00000000,00000000,00000000,00000000 >445: 00000000,00040000,00000000,00000000,00000000,00000000,00000000,00000000 >446: 00000000,00080000,00000000,00000000,00000000,00000000,00000000,00000000 >447: 00000000,00100000,00000000,00000000,00000000,00000000,00000000,00000000 >448: 00000000,00200000,00000000,00000000,00000000,00000000,00000000,00000000 >449: 00000000,00400000,00000000,00000000,00000000,00000000,00000000,00000000 >450: 00000000,00800000,00000000,00000000,00000000,00000000,00000000,00000000 >451: 00000000,01000000,00000000,00000000,00000000,00000000,00000000,00000000 >452: 00000000,02000000,00000000,00000000,00000000,00000000,00000000,00000000 >453: 00000000,04000000,00000000,00000000,00000000,00000000,00000000,00000000 >454: 00000000,08000000,00000000,00000000,00000000,00000000,00000000,00000000 >455: 00000000,10000000,00000000,00000000,00000000,00000000,00000000,00000000 >456: 00000000,20000000,00000000,00000000,00000000,00000000,00000000,00000000 >457: 00000000,40000000,00000000,00000000,00000000,00000000,00000000,00000000 > >Reviewed-by: Gal Pressman >Signed-off-by: Tariq Toukan >--- > drivers/net/ethernet/mellanox/mlx5/core/eq.c | 46 ++++++++++++++++++-- > 1 file changed, 43 insertions(+), 3 deletions(-) > >diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c >index 229728c80233..6e239eb02791 100644 >--- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c >+++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c >@@ -11,6 +11,9 @@ > #ifdef CONFIG_RFS_ACCEL > #include > #endif >+#ifdef CONFIG_NUMA >+#include >+#endif > #include "mlx5_core.h" > #include "lib/eq.h" > #include "fpga/core.h" >@@ -806,13 +809,51 @@ static void comp_irqs_release(struct mlx5_core_dev *dev) > kfree(table->comp_irqs); > } > >+static void set_cpus_by_numa_distance(struct mlx5_core_dev *dev, int ncomp_eqs, >+ u16 *cpus) cosmetic comment: The name of the function doesn't suggest that it has a fallback that doesn't set cpus by distance ! anyways, better if you implement this in two layers: mlx5_set_cpus_affinity() { err = -ERRVAL; if (IS_ENABLED(CONFIG_NUMA)) err = set_cpus_by_numa_distance(...) if (err) set_cpu_loacal_spread(...); } otherwise, Acked-by: Saeed Mahameed >+{ >+ int i; >+#ifdef CONFIG_NUMA >+ cpumask_var_t cpumask; >+ int first; >+ >+ if (!zalloc_cpumask_var(&cpumask, GFP_KERNEL)) { >+ mlx5_core_err(dev, "zalloc_cpumask_var failed\n"); >+ goto err; >+ } >+ cpumask_copy(cpumask, cpu_online_mask); >+ >+ first = cpumask_local_spread(0, dev->priv.numa_node); >+ >+ for (i = 0; i < ncomp_eqs; i++) { >+ int cpu; >+ >+ cpu = sched_numa_find_closest(cpumask, first); >+ if (cpu >= nr_cpu_ids) { >+ mlx5_core_err(dev, "sched_numa_find_closest failed, cpu(%d) >= nr_cpu_ids(%d)\n", >+ cpu, nr_cpu_ids); >+ >+ free_cpumask_var(cpumask); >+ goto err; >+ } >+ cpus[i] = cpu; >+ cpumask_clear_cpu(cpu, cpumask); >+ } >+ >+ free_cpumask_var(cpumask); >+ return; >+err: >+#endif >+ for (i = 0; i < ncomp_eqs; i++) >+ cpus[i] = cpumask_local_spread(i, dev->priv.numa_node); >+} >+ > static int comp_irqs_request(struct mlx5_core_dev *dev) > { > struct mlx5_eq_table *table = dev->priv.eq_table; > int ncomp_eqs = table->num_comp_eqs; > u16 *cpus; > int ret; >- int i; > > ncomp_eqs = table->num_comp_eqs; > table->comp_irqs = kcalloc(ncomp_eqs, sizeof(*table->comp_irqs), GFP_KERNEL); >@@ -830,8 +871,7 @@ static int comp_irqs_request(struct mlx5_core_dev *dev) > ret = -ENOMEM; > goto free_irqs; > } >- for (i = 0; i < ncomp_eqs; i++) >- cpus[i] = cpumask_local_spread(i, dev->priv.numa_node); >+ set_cpus_by_numa_distance(dev, ncomp_eqs, cpus); > ret = mlx5_irqs_request_vectors(dev, cpus, ncomp_eqs, table->comp_irqs); > kfree(cpus); > if (ret < 0) >-- >2.21.0 >