From nobody Tue Apr 28 22:09:38 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0EC9DC433EF for ; Fri, 27 May 2022 16:08:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353917AbiE0QI0 (ORCPT ); Fri, 27 May 2022 12:08:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244397AbiE0QIU (ORCPT ); Fri, 27 May 2022 12:08:20 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2094.outbound.protection.outlook.com [40.107.92.94]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4D2414916B; Fri, 27 May 2022 09:08:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZFAYPyWBqI0NsWZNNwM8r8sfgiNrke48PaUVBzdSoIo+qjlPvW2naYaOHSvI0RwCDuyx5O1dcB1gxq7XHBGL9D/ShbfWL5IvpSAgszSeNm0CXkrs7/lR3A3vbw245ieZGtKSFneyGccMNq8SxcxTh3zP136gKPqDXsNd22nwSDXpqMrsLyRl+x/B9cpGjKerJTvtiv6Xtu37DsQl+93IXlvNzlaysGPuFwAyGqkpUuqwLh9prRAPZC1odc83W6ChJk+9htT0n0uLtLolE+5LTEfO25H+nbAfbEFqHnQxlTnAshVvN/K2VQAu88e24Qr4ahk/DbW6NHSfwTf92Z1djQ== 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=DkTiW6VtgFH/xIDl2GMeTOzsBRhCsUgavkqTrCRzoMI=; b=iHthxGlYZOmzJ/srYzU7iifMLDImiGG//egswJsrbQYNyx0x1zTxXmzudVKTJePH5DIjxjgRLrlYfXGx0eWNwZX3jlALHIaLm/JfNwvSf7VjFxjH0A+0Z3nm3SquSI8JEalEfU4/y1xVKNHoM3FIZVNHLxI1iyOJX557NOh9yM037DOsuMHva+xq0+T8Nyu2gOI0LnLP3pH/dojUKgZKnmDyv5WkxasUK3MlKV34WJ8NVh25XtsQ+8PmzkyCvOoLMqRAdfsTl7Od8HJjsd3kzcZxd0AYZVmMwgG1g0TJq+YEbUlBqAyddU2wfltQPmQGly1Aec7V/Dp206FSxJXTNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DkTiW6VtgFH/xIDl2GMeTOzsBRhCsUgavkqTrCRzoMI=; b=TxtAPqqKxFPXKUhD/HtcMLPE2FpAFMMI8lCl2YHEvz4/8sThQ1yyrL/1mpj2Wyl90HVlRhivMNBrTRwDuh9zbv2KYESkYYJYmWiowQaa4u+u4h0I8OspVLurUZ1UUm0iEIJjlSGQT78024ygO8P1AnvLD3UAxHACm+62YVKO2T8= Received: from MW2PR2101MB1035.namprd21.prod.outlook.com (2603:10b6:302:a::11) by PH7PR21MB3212.namprd21.prod.outlook.com (2603:10b6:510:1d5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.5; Fri, 27 May 2022 15:41:27 +0000 Received: from MW2PR2101MB1035.namprd21.prod.outlook.com ([fe80::d02a:a4e1:e2a7:beed]) by MW2PR2101MB1035.namprd21.prod.outlook.com ([fe80::d02a:a4e1:e2a7:beed%9]) with mapi id 15.20.5314.006; Fri, 27 May 2022 15:41:26 +0000 From: Stephen Hemminger To: Saurabh Sengar , KY Srinivasan , Haiyang Zhang , "wei.liu@kernel.org" , Dexuan Cui , "linux-hyperv@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Saurabh Singh Sengar , "Michael Kelley (LINUX)" Subject: RE: [PATCH v2] Drivers: hv: vmbus: Don't assign VMbus channel interrupts to isolated CPUs Thread-Topic: [PATCH v2] Drivers: hv: vmbus: Don't assign VMbus channel interrupts to isolated CPUs Thread-Index: AQHYcZqCuyoQmicyPkmbcJqVfL10360y3SZQ Date: Fri, 27 May 2022 15:41:26 +0000 Message-ID: References: <1653636136-19643-1-git-send-email-ssengar@linux.microsoft.com> In-Reply-To: <1653636136-19643-1-git-send-email-ssengar@linux.microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=0d727467-68ff-48b3-81de-b31cda484a30;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-05-27T15:41:06Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 14b52e83-50bf-4eb6-df15-08da3ff75c6e x-ms-traffictypediagnostic: PH7PR21MB3212:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3YFMxx+4VqPMbLUk4/Q83ceoyoFc8J6IobgR+5UIei7O/fmoiczmT/zwk47xO2zYLraxoyfu3nJVTJCOSeCJo18Ret0lvMVr8lfR56J3VPEIYOSOVNGwKbnoliumFoLygTr26ibVykras8TgkK+RD3WTtfc9JGWz1jN32EDhEbBKlFJXlHfEsY82PQ+oXmQL9hTVUA0ikBCkDT+KaVSGHJPNuFn5H9Fd8kTpfE4WjlAMZjaWRFG39WSmCzAEj7Xqg1RiHZb8WauLf52FgqQGeGqzqU5pdHe7yO2XIIbgi42vwTyUbl5FB8u3KIJqjKPApkednymheO1SarunqyvQhnySUMAE6UUB2DBLeld0eXwtV8CaNoF6gySC7ACbQcb4pb9VBSaqWiDOCvyoq7C22EWFdLhhMznZAu+zgJ20/GzRTkue5Ms+ymECmyaha4Sd7EG2V9Di0v0LaKSmam8jEaculhCHqGgHNlpN/Ylet805qbny7QFoShLbkxuzA7imWBSSJdqCnquDoh3GDOrSDd+ouJE7Y1gjgQ/oRv5ykJ2wXZA277FCTK8WUWgbGFAJuACuF779JSqoms+VqJGvOuY4EXRPVVp4dZ5Ag5/x4dEgT1vVX0NymSpIyBVEuKZYDI1iOlcbZ8C2JXkBiPjRhA1dxoAkLFqGi5z1Q2GJq5BwcsVgjJB4VcW8v/MsD6l6vLbLreeKgZ76d4L2q5H0ecGeuxxEU0A7WHH/n7ZxFmLuFshJZ1BLpo8xYEcuCGiY x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW2PR2101MB1035.namprd21.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(451199009)(7696005)(8990500004)(2906002)(53546011)(6506007)(33656002)(26005)(9686003)(508600001)(52536014)(186003)(5660300002)(8936002)(86362001)(83380400001)(38100700002)(38070700005)(10290500003)(316002)(6636002)(82950400001)(82960400001)(66556008)(66946007)(66476007)(76116006)(110136005)(122000001)(66446008)(55016003)(8676002)(64756008)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDk3QWVyRXZHaTBpVTJQU1lyb2E0TEIzdldFQU96ck9tamNKdE5uV2FVcnBn?= =?utf-8?B?dHNiOW9pSnEwZXg4S2hYa2JhQm5pQnduUnJ3NEJsL01BQUpZTWdHZ0UrdnVq?= =?utf-8?B?TFlwYXovNUdNekxHcWlrTmFjV3JxVWp4blFrb25pZk0wM0Q2Qy9JWkMyLzNS?= =?utf-8?B?dk5sdHVGS0tvbnN5RE1JL2NJSzllWjV2TWJ6R2J0TmF5SjRqN1hkSy85QXVp?= =?utf-8?B?bENxWkc1KzVWR0dVb281NXpTRFlHV0RSZ1k2MVRBbVYrbU5kZSt4MWpNaWNY?= =?utf-8?B?emc3VWFHYURuREtYa0lLbUdMUTlPM2JPcXU0Ty82MExVWkZmTDV0ajJ2TlZk?= =?utf-8?B?bldMTGNFMUtSNU9Na3FXaEYrQVV3anBhTitYUTlGWnNiWjBjY1hBRWNOMnlD?= =?utf-8?B?NUh6bFVKTThJSTdWVTRZT05iTGZPdGpVZ2JGVXZYcU9RU2xlS2hnWFNXcXMy?= =?utf-8?B?TTRmYjl4V3l1RUQ5aGZZRFQzVXdUY3lycG5GRzVDVFZqMG5YU21tQUZCaU1x?= =?utf-8?B?anlhcjBvV2ZpVUd2NXA1SUpnaGdFazBabUhxZWlTZzltSlYvK3hPRkd5czlG?= =?utf-8?B?b0pZYUVTcG9iUllYNnRJNG1sYzVZM0ZiWFY1cyttTGhNSEtCd0hXUWFjbUhJ?= =?utf-8?B?a0FWV0xxQ1JRNHB1Tmhqc3JhbmNXdEJQQlhVUkgxKzBqdDVFSFJzUysxZU9k?= =?utf-8?B?cElpckRoUFFlRTlUeUc1OGtBR3F2SzBzdmNnM2dBUzV3aFJyaGlqYWdudzNX?= =?utf-8?B?Z1BlZ0xldDk0UHMyR3NsZGxPY1NyMXJmcWpSZ3drdEQxalhsMDNNRDVzN0dZ?= =?utf-8?B?ZmZEMUlYeTZtKy84R05hS1kyOWx3RDVQUVFLZ21UV1ZTZUxONTkxYzNhVXJQ?= =?utf-8?B?SlEzZzFTS1pqaEtuamZWU2Z4a0Iwb2ZoM2dhTkRIV3pBWWtvdDVnSUcxWE8w?= =?utf-8?B?SzVRanpueWxUVmczemg1TmVZQWV3QzJ2QXNsSmhQeXdNMkJaY1JBMDlRY004?= =?utf-8?B?NGdxRE5hcXp0MGdzb1NPdkdwZWFkc1dieUF0TjdtQ3E0dUlMMUdabk9KYjZT?= =?utf-8?B?NWZocVA5SUhReFVZYVVVWmpSVE1lQ1VPSWRCUVJPSDQ4a3E1bERFTUp5N2pE?= =?utf-8?B?cHRMWWFpTlg2K3hPQXRSLyswdXNYem9LNExVYXBZL2N5U0EzUnJ0NGRaYUNH?= =?utf-8?B?SjJPZjhQUURzdGlBOTN1WE43T2hEQzlPVXZFZ2xpU3ZvcVBqck5Cb210Z21o?= =?utf-8?B?MjFMZ3piazFzZDhxYXk1VXdWcENIek1YSkhKZXBwcXBxeU1rRVNaWDdJckNr?= =?utf-8?B?ck1EWDZvcjlUUHRMSnpNc3ZHS2d6SEw4SlI5R00zMElRbVFZRXI3d0tKbm14?= =?utf-8?B?RGZLL0kxVHFhdEQxYWNVeXQzSVo5UmQyNmhPZEZvSzJNbUJQOVlnenJLamlT?= =?utf-8?B?elpJSGVPemNpalVZeGlpTm5hdHF5anlsSUpjakpocjFtQkVBaGJMYk1RK1kv?= =?utf-8?B?ZUR4NmFidVZaRDR6VzliazZIL1AwdDdoWHFVZzZZUi91OFE0QlIvaFRTamNT?= =?utf-8?B?Y012WXB2dm0reWgvL0R6R21KSE8vSXlZTHVYNVBickNqNitKRXQrUUNTMjlF?= =?utf-8?B?OGhrM0VLQmU4ZkdjSGVCT1ExNWRUS3JMR045MEFncGtWSjRJUHpPcGtuc2xV?= =?utf-8?B?OHpFOW85TVJtY3ZKcEM3Rk8vWU1OdzFxV2dNWDBzMG9WZHE0U25PalY4RUd4?= =?utf-8?B?UnFRZXV0bkpxVUR2TGw4VXdYS2taN2MvZDJvVTZDZDAra2lTYmY3dUZuM1ll?= =?utf-8?B?VHE0WlI5elc2YUlBTWZDNFJVSSsyNXFjUHpCRWZoVmk0WnNiYzFsd05wQ2ZV?= =?utf-8?B?RDQ0RUdDQ01Vc1VlZVVRaHpveS8wMzVHU0ExTUc0Y1NHUXdsakZ0TlRhejhL?= =?utf-8?B?a3J6cWFRQVlLcjRzOUl1Vi9ESlZDaDdZcWRKYk81RHphcEZJTkJUbVhCdE1D?= =?utf-8?B?dWRkMk1QNDcxdzR5QlpuM1IrZ2JCOElsa2hIaFhNZVpxbTc1ajdPRS9JL0FD?= =?utf-8?B?UGRTVG1BcXJJU0dEQTNOdUl0aGpweVVZUy9CYmI2TTllR1E2SW9mNHhvMWhT?= =?utf-8?B?ZEVSRGZmSzVacTVXNVozZzBuSnNCaGdYTERkbmp1OXNtRyt1TGJyNnZQVFhy?= =?utf-8?B?RHRLOVY3RTlZL0dEMHVrRkt1TmRUS21HakQ2VE5WTkhUVTZNZktmM0tacldK?= =?utf-8?B?bDNYTWgwNnJ4bE9NM1Y3ckRzbk9od0V2VUxmWVNTT29WRE1QVmx6SVJwR1hC?= =?utf-8?B?VkM4RStnSnczbnBBZUZ6ZTZmWUtlRDEwb0JaSzFHU0FtK1FjdDI5UT09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR2101MB1035.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14b52e83-50bf-4eb6-df15-08da3ff75c6e X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2022 15:41:26.6432 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1FTLrUSWuvzhPxvN01eSXTqNOtSI54kzROg65Zbw+2mxA9wsq7H0mm4hs4Cy/N90Cqj+fa1sRmNEOG8InWlPhw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR21MB3212 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Would this have impact for DPDK applications using isolated cpus? -----Original Message----- From: Saurabh Sengar =20 Sent: Friday, May 27, 2022 12:22 AM To: KY Srinivasan ; Haiyang Zhang ; Stephen Hemminger ; wei.liu@kernel.org; Dexuan = Cui ; linux-hyperv@vger.kernel.org; linux-kernel@vger.= kernel.org; Saurabh Singh Sengar ; Michael Kelley (L= INUX) Subject: [PATCH v2] Drivers: hv: vmbus: Don't assign VMbus channel interrup= ts to isolated CPUs When initially assigning a VMbus channel interrupt to a CPU, don=E2=80=99t = choose a managed IRQ isolated CPU (as specified on the kernel boot line with parameter 'isolcpus=3Dmanaged_irq,<#cpu>'). Also, when using sysfs to change the CPU that a VMbus channel will interrupt, don't allow changing to a managed IRQ isolated CPU. Signed-off-by: Saurabh Sengar --- v2: * better commit message * Added back empty line, removed by mistake * Removed error print for sysfs error drivers/hv/channel_mgmt.c | 18 ++++++++++++------ drivers/hv/vmbus_drv.c | 4 ++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c index 97d8f56..e1fe029 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #include "hyperv_vmbus.h" =20 @@ -728,16 +729,20 @@ static void init_vp_index(struct vmbus_channel *chann= el) u32 i, ncpu =3D num_online_cpus(); cpumask_var_t available_mask; struct cpumask *allocated_mask; + const struct cpumask *hk_mask =3D housekeeping_cpumask(HK_TYPE_MANAGED_IR= Q); u32 target_cpu; int numa_node; =20 if (!perf_chn || - !alloc_cpumask_var(&available_mask, GFP_KERNEL)) { + !alloc_cpumask_var(&available_mask, GFP_KERNEL) || + cpumask_empty(hk_mask)) { /* * If the channel is not a performance critical * channel, bind it to VMBUS_CONNECT_CPU. * In case alloc_cpumask_var() fails, bind it to * VMBUS_CONNECT_CPU. + * If all the cpus are isolated, bind it to + * VMBUS_CONNECT_CPU. */ channel->target_cpu =3D VMBUS_CONNECT_CPU; if (perf_chn) @@ -758,17 +763,19 @@ static void init_vp_index(struct vmbus_channel *chann= el) } allocated_mask =3D &hv_context.hv_numa_map[numa_node]; =20 - if (cpumask_equal(allocated_mask, cpumask_of_node(numa_node))) { +retry: + cpumask_xor(available_mask, allocated_mask, cpumask_of_node(numa_node)); + cpumask_and(available_mask, available_mask, hk_mask); + + if (cpumask_empty(available_mask)) { /* * We have cycled through all the CPUs in the node; * reset the allocated map. */ cpumask_clear(allocated_mask); + goto retry; } =20 - cpumask_xor(available_mask, allocated_mask, - cpumask_of_node(numa_node)); - target_cpu =3D cpumask_first(available_mask); cpumask_set_cpu(target_cpu, allocated_mask); =20 @@ -778,7 +785,6 @@ static void init_vp_index(struct vmbus_channel *channel) } =20 channel->target_cpu =3D target_cpu; - free_cpumask_var(available_mask); } =20 diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 714d549..547ae33 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -21,6 +21,7 @@ #include #include #include +#include #include =20 #include @@ -1770,6 +1771,9 @@ static ssize_t target_cpu_store(struct vmbus_channel = *channel, if (target_cpu >=3D nr_cpumask_bits) return -EINVAL; =20 + if (!cpumask_test_cpu(target_cpu, housekeeping_cpumask(HK_TYPE_MANAGED_IR= Q))) + return -EINVAL; + /* No CPUs should come up or down during this. */ cpus_read_lock(); =20 --=20 1.8.3.1