From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-2463037-1516832059-2-16170684400407347496 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.25, RCVD_IN_DNSWL_MED -2.3, SPF_PASS -0.001, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='140.211.166.137', Host='smtp4.osuosl.org', Country='US', FromHeader='com', MailFrom='org', XOriginatingCountry='US' X-Spam-charsets: plain='us-ascii' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: driverdev-devel-bounces@linuxdriverproject.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1516832058; b=R4EPBEiaQM4n75oPsFyel5KjySFe+gCGPKvciLbKuBjkMDn eqfm+RzX8frDLZxerOdtBczCGQGUHTxURZ4ppxd8XneEEausHpGul3Fb8RbZhjN3 0V/mjS9gMkvi+spe1CZ9Dq1xxB2MWxI1+WsFPLEtLXGHuD3pN4OPIsIyJsUMld3l USLyfu7hKwrdlU1c2NhqxuJ0OqbpM/lKW9gBpdzhsqHIYq1z2JGQC6SPFvCvPyxV Wg1Ok9+dINZrZbXgy2pTBMBPhbuhHAAFGxzS67BHu26QVnOvmxO1pZSFltixv08M 0njATNO9qtN0YOSk8SGLRwLQrLdd+Sx3pz20MDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:subject:date:message-id :mime-version:list-id:list-unsubscribe:list-archive:list-post :list-help:list-subscribe:reply-to:cc:content-type :content-transfer-encoding:sender; s=arctest; t=1516832058; bh=N t+F1EX42UwG3c3JvCs8we7slEzh2x3g7J+1f3TelAQ=; b=Bwpiq/ZPRqIUWzLV3 pnuUb5xbqBt2f0X6a9CpSXDaQLgLcxOhSdatQN4y2TIUqWndfDvoKkT21fsP8iX2 sfh0ste4mGefqJm+EdXFIZWNRls13C47eOWnTK0YFelMP1ZRnl5kgc6nh3dtdfuv syGiPAigGIM5LsJ2ECLtNwvrrteL359rXFry1DU5sLuvahj0RKXr1I7kDs3SBjw/ FPE1Q+rG5oNp2ekFwvgWAQgHmqstOt0kxri2kKs56mekxjB574xtSiHoYOUGfjcl OigaMq6Iou3Bv0HdBbRHSNdU8GcDRz2kGsHiboyrkmSOLTEC/dw35H4XW9NZKEKJ oy54w== ARC-Authentication-Results: i=1; mx2.messagingengine.com; arc=none (no signatures found); dkim=fail (message has been altered; 1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=Y2TbAM7V x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=fail (p=reject,has-list-id=yes,d=reject) header.from=microsoft.com; iprev=pass policy.iprev=140.211.166.137 (smtp4.osuosl.org); spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org smtp.helo=fraxinus.osuosl.org; x-aligned-from=fail; x-ptr=fail x-ptr-helo=fraxinus.osuosl.org x-ptr-lookup=smtp4.osuosl.org; x-return-mx=pass smtp.domain=linuxdriverproject.org smtp.result=pass smtp_is_org_domain=yes header.domain=microsoft.com header.result=pass header_is_org_domain=yes; x-tls=pass version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128 Authentication-Results: mx2.messagingengine.com; arc=none (no signatures found); dkim=fail (message has been altered; 1024-bit rsa key sha256) header.d=microsoft.com header.i=@microsoft.com header.b=Y2TbAM7V x-bits=1024 x-keytype=rsa x-algorithm=sha256 x-selector=selector1; dmarc=fail (p=reject,has-list-id=yes,d=reject) header.from=microsoft.com; iprev=pass policy.iprev=140.211.166.137 (smtp4.osuosl.org); spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org smtp.helo=fraxinus.osuosl.org; x-aligned-from=fail; x-ptr=fail x-ptr-helo=fraxinus.osuosl.org x-ptr-lookup=smtp4.osuosl.org; x-return-mx=pass smtp.domain=linuxdriverproject.org smtp.result=pass smtp_is_org_domain=yes header.domain=microsoft.com header.result=pass header_is_org_domain=yes; x-tls=pass version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128 X-Remote-Delivered-To: driverdev-devel@osuosl.org 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" 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> 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; 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 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 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.24 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: "Michael Kelley \(EOSG\)" Cc: "Michael Kelley \(EOSG\)" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 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 != outgoing_channel->target_cpu) { outgoing_channel = stor_device->stor_chns[tgt_cpu]; -- 1.8.3.1 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel