Received: by 10.223.176.46 with SMTP id f43csp1304409wra; Wed, 24 Jan 2018 14:14:51 -0800 (PST) X-Google-Smtp-Source: AH8x227EE1qBdXsKvFwLeoFmdR1tCqlEx2JK2H/D7XGkxux/NI4GbW1D7Bbe1Gdhml8+AJbXY3KW X-Received: by 2002:a17:902:8f8a:: with SMTP id z10-v6mr9082514plo.395.1516832091442; Wed, 24 Jan 2018 14:14:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516832091; cv=none; d=google.com; s=arc-20160816; b=q4uOUSmbjfKHCjWN9NkxFVj11uedCceI+cpUQv99oCY1h45ZmiS1Tt6Hx63VUhPW3m 3XwNFhNC69kq3MiEbQKlAOxL2+stywWqNxOdkC++p1sN2t6cSrbH/81lkkq6DROd1eC3 xOBFEVFG1etACxtQ0a5NdzFoyGq2FHR1xoOHEdsBlmig3y2OpQ1BR2mZsKkRvYjVvidD AQNQGI925KAJtYaFoCW/6i4m+VWtVGRD+n8653yL64iqqHPRy6oFiqvrkevKgr76K2z4 yeFIazcvTaeVDXmxMnKVj6G7IxxE7Jqj8vh1SdANA3et7rgcdPa3aWkJFrr0w/WmVjAD 1CTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:reply-to:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=ID1W0loH/LljvPwsietzYheKss0AsukcbbwfE8ImrQo=; b=Lk1NAP4cMmMWdeuXWTR5ZQpyYFvKfxtaFf4epx+q4ZGJj8GVVORtLyDKr4rSev0tYg LMbJsr3Gx3uD1Gm94+LQJ0jTjSLfqxsgS70lRwLDUsix0h8ZOZpsstbrkFLl278tmuJL GR/iP6xE9efsppCrIyDdYWbRGQMuT2LTjlDaPDtxT6J2oJYpnF0KbvlZPCosIbzHO9n8 ZfXNL66NF/Lt5+wUD/x5HA7F1qGcsye7KraIJMOXqUBd4KgHagjW0a7z8E2YhU6RiOID T0gFaA3mOKPuf586qp7qLA/KGyeERIi2YU1nKlK3ufj7MHljSC4vCI16MOeCQyaA/B9j MaOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Y2TbAM7V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n64si3524055pfj.112.2018.01.24.14.14.37; Wed, 24 Jan 2018 14:14:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Y2TbAM7V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932888AbeAXWOM (ORCPT + 99 others); Wed, 24 Jan 2018 17:14:12 -0500 Received: from mail-dm3nam03on0106.outbound.protection.outlook.com ([104.47.41.106]:15072 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932072AbeAXWOK (ORCPT ); Wed, 24 Jan 2018 17:14:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ID1W0loH/LljvPwsietzYheKss0AsukcbbwfE8ImrQo=; b=Y2TbAM7V1HhsB+Za7Wb7SCD25Q7ryIR/e4y8masG+c84DYSQdzxZ90RnNkCuUZMXxUgBCXilmdvy/BVrOB1gS/Zr+m5RHl/lxrxMALU1HFdVm4edOeySUKlUGZ7HcZfgH/mVRSLnNXbLeEMoJqqA+TVKZ5VvG8QCKFRoxE3EqaM= Received: from DM5PR2101MB1030.namprd21.prod.outlook.com (52.132.128.11) by DM5PR2101MB1110.namprd21.prod.outlook.com (52.132.131.167) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.464.1; Wed, 24 Jan 2018 22:14:08 +0000 Received: from DM5PR2101MB1030.namprd21.prod.outlook.com ([fe80::d5db:a805:a24c:d4bc]) by DM5PR2101MB1030.namprd21.prod.outlook.com ([fe80::d5db:a805:a24c:d4bc%3]) with mapi id 15.20.0464.006; Wed, 24 Jan 2018 22:14:08 +0000 From: "Michael Kelley (EOSG)" To: KY Srinivasan , Stephen Hemminger , "martin.petersen@oracle.com" , "longi@microsoft.com" , "JBottomley@odin.com" , "devel@linuxdriverproject.org" , "linux-kernel@vger.kernel.org" , "linux-scsi@vger.kernel.org" CC: "Michael Kelley (EOSG)" Subject: [PATCH 1/1] scsi: storvsc: Spread interrupts when picking a channel for I/O requests Thread-Topic: [PATCH 1/1] scsi: storvsc: Spread interrupts when picking a channel for I/O requests Thread-Index: AQHTlWCnc+A/Qzvuo0G+StbT1Ra74A== Date: Wed, 24 Jan 2018 22:14:08 +0000 Message-ID: <1516831913-26013-1-git-send-email-mikelley@ntdev.microsoft.com> Reply-To: "Michael Kelley (EOSG)" Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 1.8.3.1 x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DM5PR2101MB1110;7:3n/40hx1nPPIJ2EK5lv0Usvz78ZdupHiWCx6YPDgDE15CdPYiTxbiY5HWLPOGdeLcYJzYGGck9xXhvrmhrxOfAbzOlhhZnIOq7LM1r6js5BQM4adofDzt+HfSguJkWbV17hFR9uVLBlpULCianzO3TK7I4gQwlzBmqFXlFpNHWeUV4xFv6VzuedaLS74I04QnW2dhB1fMXbrmqFpSCns1j0N/IP9z+QQcR+tbuMPMvr9TTSsQHrMTCYqb85r7yf+ x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-ms-office365-filtering-correlation-id: 48676eb5-2c17-48de-c978-08d56377ca2a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(48565401081)(2017052603307)(7193020);SRVR:DM5PR2101MB1110; x-ms-traffictypediagnostic: DM5PR2101MB1110: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(61425038)(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231046)(2400081)(944501161)(3002001)(10201501046)(6055026)(61426038)(61427038)(6041288)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:DM5PR2101MB1110;BCL:0;PCL:0;RULEID:;SRVR:DM5PR2101MB1110; x-forefront-prvs: 056297E276 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(376002)(39860400002)(366004)(346002)(39380400002)(189003)(199004)(4720700003)(110136005)(97736004)(26005)(25786009)(8936002)(99286004)(3280700002)(22452003)(3450700001)(107886003)(3660700001)(305945005)(316002)(7736002)(2906002)(86612001)(5250100002)(6116002)(59450400001)(50226002)(3846002)(4326008)(10090500001)(81166006)(81156014)(8676002)(6346003)(53936002)(5660300001)(1511001)(102836004)(14454004)(72206003)(2900100001)(478600001)(106356001)(2501003)(43066004)(10290500003)(6436002)(66066001)(6506007)(105586002)(6512007)(68736007)(2201001)(6486002)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR2101MB1110;H:DM5PR2101MB1030.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.H.Kelley@microsoft.com; x-microsoft-antispam-message-info: CImD+KUe918XkDxoYYSh5qCqASTAmPejyx5OwCq/p/g5Eh2dFUWpVqpxchAs162AKc5CtPyQFjXova5c4OD4tA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48676eb5-2c17-48de-c978-08d56377ca2a X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2018 22:14:08.4821 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB1110 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Update the algorithm in storvsc_do_io to look for a channel starting with the current CPU + 1 and wrap around (within the current NUMA node). This spreads VMbus interrupts more evenly across CPUs. Previous code always started with first CPU in the current NUMA node, skewing the interrupt load to that CPU. Signed-off-by: Michael Kelley --- drivers/scsi/storvsc_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index e07907d..f3264c4 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1310,7 +1310,8 @@ static int storvsc_do_io(struct hv_device *device, */ cpumask_and(&alloced_mask, &stor_device->alloced_cpus, cpumask_of_node(cpu_to_node(q_num))); - for_each_cpu(tgt_cpu, &alloced_mask) { + for_each_cpu_wrap(tgt_cpu, &alloced_mask, + outgoing_channel->target_cpu + 1) { if (tgt_cpu !=3D outgoing_channel->target_cpu) { outgoing_channel =3D stor_device->stor_chns[tgt_cpu]; --=20 1.8.3.1