From patchwork Sat Dec 28 23:46:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Haiyang Zhang X-Patchwork-Id: 1215996 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=microsoft.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=microsoft.com header.i=@microsoft.com header.b="Yba+Xz95"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47lgP56vxqz9sR4 for ; Sun, 29 Dec 2019 10:48:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726597AbfL1Xr5 (ORCPT ); Sat, 28 Dec 2019 18:47:57 -0500 Received: from mail-dm6nam10on2120.outbound.protection.outlook.com ([40.107.93.120]:26849 "EHLO NAM10-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725811AbfL1Xr4 (ORCPT ); Sat, 28 Dec 2019 18:47:56 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aSrfLoB/RYLB7hJbdZoZ2ZVX/G2y2uet+KJaYgDl/bEaotIVOlSuhIOkLjHp6m73w4ei0T5KzBT/Nbx79YZNSfyDEyBgvcDWWR2y0km8L21+pm34YCB+YTO6PO02b4g2rGr+JbfZ630JBybXcjZnd6R2GBX24uo7Ucdxacc64nYMQynFoBxnZg7X6fCa4EVKBQPQyAobrQOz1X/JncCZicWvBgqLwZCimjN68HfQTg0h32d053W4NY8XOIz0gq7HkzJmMez1dAzE/PxgzlDB4QK+Yih4/VchBDD0AQRjbgPHpnLJm9nSysqlwAc/y9Xzf/bGaZgMC60PhOPn7yy0hQ== 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-SenderADCheck; bh=xNxeZ934RWhaWtLTnsqBF7YuZDzqGpUSYuLAeeG/IAg=; b=TnDoaC7qtcx9TYwh0+6/AxGqZXpMDG2n2Kr0RT+pEXAv7JoBIYs1zOXEmYyIziDo6u0/u5wg6cho7p5tc8RtajkJoRlcFpN+e1WpQSwtHo62yHYxuE/JM493kmFpOC0y8rQ3eHdO/sbXmeCvRXDSwetwATO8Z2yti2XhFYDg2pdlfYA6uVJE2vg2ZpJYbun+HtV80188c/n0OhXRXDibjyUyJZLUTjR3wtTJkV+zEYVO5DEFSkjk7Xlvnm8EI+9QnKelSgbXXi8XdyKeY47a8ZqyD8jBdPfMDJWjjb9SE1cqVeziD580PT6wv4hmi75vs9pthvd6HnDh2lG5gA67Yg== 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=xNxeZ934RWhaWtLTnsqBF7YuZDzqGpUSYuLAeeG/IAg=; b=Yba+Xz95h9nv+X+FjLDjxuF84k+WOl2EIvwBHmj5sTYlsS0vFhnVbI5/7nFe+Yje8CqHuw/+ng9nJ0WNdNEm2TymzGkklNtDzNXLNRvO/NtGL4Iu58FqbZIIha6Fjg2Lon7DfjN/w+7XmrkBSP3Adjh7rgX6zc1udI/v0IGlPbk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=lkmlhyz@microsoft.com; Received: from DM5PR2101MB0901.namprd21.prod.outlook.com (52.132.132.158) by DM5PR2101MB0727.namprd21.prod.outlook.com (10.167.110.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.1; Sat, 28 Dec 2019 23:47:14 +0000 Received: from DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91]) by DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91%9]) with mapi id 15.20.2623.000; Sat, 28 Dec 2019 23:47:14 +0000 From: Haiyang Zhang To: sashal@kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org Cc: haiyangz@microsoft.com, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, davem@davemloft.net, linux-kernel@vger.kernel.org Subject: [PATCH net-next, 1/3] Drivers: hv: vmbus: Add a dev_num variable based on channel offer sequence Date: Sat, 28 Dec 2019 15:46:31 -0800 Message-Id: <1577576793-113222-2-git-send-email-haiyangz@microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> References: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> X-ClientProxiedBy: MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) To DM5PR2101MB0901.namprd21.prod.outlook.com (2603:10b6:4:a7::30) MIME-Version: 1.0 Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (13.77.154.182) by MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Sat, 28 Dec 2019 23:47:13 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [13.77.154.182] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 82af4c5e-45e4-4941-7f9d-08d78bf04374 X-MS-TrafficTypeDiagnostic: DM5PR2101MB0727:|DM5PR2101MB0727:|DM5PR2101MB0727: X-MS-Exchange-Transport-Forked: True X-LD-Processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:826; X-Forefront-PRVS: 02652BD10A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(136003)(396003)(366004)(376002)(199004)(189003)(6666004)(478600001)(81156014)(10290500003)(6506007)(8936002)(4326008)(2616005)(36756003)(316002)(81166006)(52116002)(26005)(956004)(8676002)(2906002)(5660300002)(66556008)(186003)(66476007)(66946007)(16526019)(6512007)(6486002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB0727; H:DM5PR2101MB0901.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yznTxQdfBERcB8e24RMggSO/BZN+G4cNXqFqQaqiBvg4c2mFMilSA8KYxByUImT6y+GPMPVkPiM0hOSK5Ww8Bm408L/HofTQDahBR4BZCMCGKyHKPBf1eLTIzvv4SKhOkE3zuOs1sW09j4R2onJeGauxfWiQXiCXnfgDRZesUExHCdHuJTEiJL9mN1COuhNI2IsmCcTHf7ewZ7zTJx2BipP5/Yy3OchPZ1bD9gteWg89Ss9bxp73rUjxcQbRqZwR0d0LDq5lE1Q6jKqod9ik4UUSynI4wBGWkZLNuAciopKwWqjd91KiMJBpPoSeBA76FwnZLvulPKzZ/VXBVRv+NR8JBbLmUd55fztap6MuRoykAFSoHMzkkVQL7oQClo9vouUwjuSqlWMrBECI6JtDPd6IT5chMryWqxkjMVV0iHQUlvdk2K8Q+vDe1RCcNav7 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82af4c5e-45e4-4941-7f9d-08d78bf04374 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2019 23:47:14.3550 (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: Jnw1P8G1TQWY4CdLFXmF9bv77rWCiy84n0cNBehIOuaygsHkYyWt7BgyamZrcheq8Iz5Ur4y2WGHJzcypmeZJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0727 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This number is set to the first available number, starting from zero, when a vmbus device’s primary channel is offered. It will be used for stable naming when Async probing is used. Signed-off-by: Haiyang Zhang --- drivers/hv/channel_mgmt.c | 40 ++++++++++++++++++++++++++++++++++++++-- include/linux/hyperv.h | 6 ++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c index 8eb1675..b14c6a2 100644 --- a/drivers/hv/channel_mgmt.c +++ b/drivers/hv/channel_mgmt.c @@ -315,6 +315,8 @@ static struct vmbus_channel *alloc_channel(void) if (!channel) return NULL; + channel->dev_num = HV_DEV_NUM_INVALID; + spin_lock_init(&channel->lock); init_completion(&channel->rescind_event); @@ -541,6 +543,38 @@ static void vmbus_add_channel_work(struct work_struct *work) } /* + * Get the first available device number of its type, then + * record it in the channel structure. + */ +static void hv_set_devnum(struct vmbus_channel *newchannel) +{ + struct vmbus_channel *channel; + unsigned int i = 0; + bool found; + + BUG_ON(!mutex_is_locked(&vmbus_connection.channel_mutex)); + +next: + found = false; + + list_for_each_entry(channel, &vmbus_connection.chn_list, listentry) { + if (i == channel->dev_num && + guid_equal(&channel->offermsg.offer.if_type, + &newchannel->offermsg.offer.if_type)) { + found = true; + break; + } + } + + if (found) { + i++; + goto next; + } + + newchannel->dev_num = i; +} + +/* * vmbus_process_offer - Process the offer by creating a channel/device * associated with this offer */ @@ -573,10 +607,12 @@ static void vmbus_process_offer(struct vmbus_channel *newchannel) } } - if (fnew) + if (fnew) { + hv_set_devnum(newchannel); + list_add_tail(&newchannel->listentry, &vmbus_connection.chn_list); - else { + } else { /* * Check to see if this is a valid sub-channel. */ diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h index 26f3aee..4f110c5 100644 --- a/include/linux/hyperv.h +++ b/include/linux/hyperv.h @@ -718,6 +718,8 @@ struct vmbus_device { bool perf_device; }; +#define HV_DEV_NUM_INVALID (-1) + struct vmbus_channel { struct list_head listentry; @@ -849,6 +851,10 @@ struct vmbus_channel { */ struct vmbus_channel *primary_channel; /* + * Used for device naming based on channel offer sequence. + */ + int dev_num; + /* * Support per-channel state for use by vmbus drivers. */ void *per_channel_state; From patchwork Sat Dec 28 23:46:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haiyang Zhang X-Patchwork-Id: 1215998 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=microsoft.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=microsoft.com header.i=@microsoft.com header.b="aC6bsKc6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47lgP74BLtz9sR4 for ; Sun, 29 Dec 2019 10:48:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726460AbfL1Xr4 (ORCPT ); Sat, 28 Dec 2019 18:47:56 -0500 Received: from mail-dm6nam10on2097.outbound.protection.outlook.com ([40.107.93.97]:20832 "EHLO NAM10-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726100AbfL1Xrz (ORCPT ); Sat, 28 Dec 2019 18:47:55 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H+ZHnzsTE2bbIFsyXe6Cp4lBLZbX5J2GEsXjx00LWkhytizNllIDDqDENtVsA1ONKZPmUDnLpqG3E4FWt0VgmCVcQ5VVeoyI5NGK+drgeKJqecx0kdEwFTfor59v0pl6VP1cV3UYZnwBBvJz1aMAZFKLEfe3FG2wGXeOq+WsWrYQTd9SaxDOB68mjQUMx+XWEkz+6S0rggzE9COgfbNXDFLDvJLSK97BdZgan4dUeA/l1NVRLkwgJhHIKRVxNMUJhGKYB73j388pz/n6nF/+4Q/QPDhHsaUof/4xXizu8sak3Wnfb7Z39WoIc+eWbB1AMAzxOoeUge4HcgfUm5xOoQ== 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-SenderADCheck; bh=FE+TeZ8HsTtCfcVx3oCCeYc6rM2U7eATcut/H80QDiY=; b=OT5eIGp/BqB976FJm7MEcC/9l+HWPuTDhk7qtSZ4P6fuKScq4r+ZQk36iF0Seg1UPBFVstHlWumPCBjNvPDVN/y9ktZimfGpOJL4vVrFJKsMwy9rPApME1HKIta+dgTDR31qsTZmrJk9ldyeyPK3jXrTPKTzju3asODTZ9WKUdpULJ2kVY+wyNSY7QD24LDxBQCPTMJV1UzazE85fitScxFrZVoEJ9Z6B+d+IOeKMWuAp1Nr8jzMekJhKseVl0nD9boyBGvsZYHITx3N8LYnAzFO0c4KMmbuZ31YzIkVLO0Ou947hMPPao8Dmpypah2xl/11B96gvuEJRyGXCGQlUw== 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=FE+TeZ8HsTtCfcVx3oCCeYc6rM2U7eATcut/H80QDiY=; b=aC6bsKc6ZwUho6KHAyLPMpihXpIVSszZaMAO7IfxI4Hk5up0e3ckycqY8njuK5ElcifFRCvYZ95SI4fqRdye2rYG/a626EWPe+TKyB+JGSUYcVxTNEDE9ygSsOj+DenZOjAPtBSeXNXbZhBVG45NMqRAwHLp0h5RLrSydlrTnJE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=lkmlhyz@microsoft.com; Received: from DM5PR2101MB0901.namprd21.prod.outlook.com (52.132.132.158) by DM5PR2101MB0727.namprd21.prod.outlook.com (10.167.110.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.1; Sat, 28 Dec 2019 23:47:18 +0000 Received: from DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91]) by DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91%9]) with mapi id 15.20.2623.000; Sat, 28 Dec 2019 23:47:18 +0000 From: Haiyang Zhang To: sashal@kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org Cc: haiyangz@microsoft.com, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, davem@davemloft.net, linux-kernel@vger.kernel.org Subject: [PATCH net-next, 2/3] Drivers: hv: vmbus: Add dev_num to sysfs Date: Sat, 28 Dec 2019 15:46:32 -0800 Message-Id: <1577576793-113222-3-git-send-email-haiyangz@microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> References: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> X-ClientProxiedBy: MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) To DM5PR2101MB0901.namprd21.prod.outlook.com (2603:10b6:4:a7::30) MIME-Version: 1.0 Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (13.77.154.182) by MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Sat, 28 Dec 2019 23:47:17 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [13.77.154.182] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 91939a02-401a-46ff-3619-08d78bf04611 X-MS-TrafficTypeDiagnostic: DM5PR2101MB0727:|DM5PR2101MB0727:|DM5PR2101MB0727: X-MS-Exchange-Transport-Forked: True X-LD-Processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-Forefront-PRVS: 02652BD10A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(136003)(396003)(366004)(376002)(199004)(189003)(6666004)(478600001)(81156014)(10290500003)(6506007)(8936002)(4326008)(2616005)(36756003)(316002)(81166006)(52116002)(26005)(956004)(8676002)(2906002)(5660300002)(66556008)(186003)(66476007)(66946007)(16526019)(6512007)(6486002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB0727; H:DM5PR2101MB0901.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fqRq1odeKpXEjBam5qaJz0SUNAE0g7HqhFd7x87CixNNIxZo1P5E+9UT2+5wem3PPGZVjQonDJnivwaIIgxkAU9D/1Lgv7AWx/3E84cGpcU0QiOiFge8c/xhM9K1PBO02KfRjGCVDy4wjOTsAiSa1rXJxT66lWBNHlLxzpkcMfxrWYuvTMlZNxMOisB4f+fYe23Zjjf3nNxe9kBqv9/rOlpXg03Mmhxs2yCfCbRJpyUgIVlcA4UL2xUxfjmNr2MLl3IGoJjnGej+Wak9U4RUFg7tBNaDvIwDemHn3dvt2+cWARMHzTpkAuP45R5L6tSsx+sRa+P6W35jVBtgAV5vprknPG1XxOqAw+ltFgDHBeV3foCD5m50t396xO/oi0SJPbZQxzRRLiPoairKCUZHJgtOxnhLLuFx2noz0YIpssyDIDqI4qaRDElFgrb8cCH4 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91939a02-401a-46ff-3619-08d78bf04611 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2019 23:47:18.1328 (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: pyiilgK/d0PieL3gyry15w+7mKPn0D8OqAMzC2oCSt85510h8y5oB/00lRNqPIwdRvghqKaa180lAhYy+YJ5jQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0727 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org It's a number based on the vmbus device offer sequence. Useful for device naming when using Async probing. Signed-off-by: Haiyang Zhang --- Documentation/ABI/stable/sysfs-bus-vmbus | 8 ++++++++ drivers/hv/vmbus_drv.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/Documentation/ABI/stable/sysfs-bus-vmbus b/Documentation/ABI/stable/sysfs-bus-vmbus index 8e8d167..a42225d 100644 --- a/Documentation/ABI/stable/sysfs-bus-vmbus +++ b/Documentation/ABI/stable/sysfs-bus-vmbus @@ -49,6 +49,14 @@ Contact: Stephen Hemminger Description: This NUMA node to which the VMBUS device is attached, or -1 if the node is unknown. +What: /sys/bus/vmbus/devices//dev_num +Date: Dec 2019 +KernelVersion: 5.5 +Contact: Haiyang Zhang +Description: A number based on the vmbus device offer sequence. + Useful for device naming when using Async probing. +Users: Debugging tools and userspace drivers + What: /sys/bus/vmbus/devices//channels/ Date: September. 2017 KernelVersion: 4.14 diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 4ef5a66..fe7aefa 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -214,6 +214,18 @@ static ssize_t numa_node_show(struct device *dev, static DEVICE_ATTR_RO(numa_node); #endif +static ssize_t dev_num_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct hv_device *hv_dev = device_to_hv_device(dev); + + if (!hv_dev->channel) + return -ENODEV; + + return sprintf(buf, "%d\n", hv_dev->channel->dev_num); +} +static DEVICE_ATTR_RO(dev_num); + static ssize_t server_monitor_pending_show(struct device *dev, struct device_attribute *dev_attr, char *buf) @@ -598,6 +610,7 @@ static ssize_t driver_override_show(struct device *dev, #ifdef CONFIG_NUMA &dev_attr_numa_node.attr, #endif + &dev_attr_dev_num.attr, &dev_attr_server_monitor_pending.attr, &dev_attr_client_monitor_pending.attr, &dev_attr_server_monitor_latency.attr, From patchwork Sat Dec 28 23:46:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haiyang Zhang X-Patchwork-Id: 1215997 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=microsoft.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=microsoft.com header.i=@microsoft.com header.b="RoLH+d5g"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47lgP70c6Qz9sR8 for ; Sun, 29 Dec 2019 10:48:11 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726653AbfL1XsC (ORCPT ); Sat, 28 Dec 2019 18:48:02 -0500 Received: from mail-dm6nam10on2097.outbound.protection.outlook.com ([40.107.93.97]:20832 "EHLO NAM10-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726220AbfL1Xr4 (ORCPT ); Sat, 28 Dec 2019 18:47:56 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Prnfla+iVBnvNEtt2a3lsPwnNDRBj4jGRJB11TQ4FPFaFTgVaNfnnlOrs26MlDJIpR1pdQGpSFJdZ8DeoRrqeoskYV80zoYbWkOZ9IPwR5SToBTWLjCsrH6fJvpmUZCqNzQCeFcjDMj6Vypynm49cIl8qU2ceAFIn4rbAOHscBObRjfUkwmi6Dxd/Sab7jIDs4YXNtbg5DICybr+8I17HAWXt4/MFKhUALsg/5K/hyIE5BQZR374nPwPbTsKEYGFsYDM8zIuFUEcnGxjcBir3Cd9ZCCBekqgMWKeGwVVohLIJWV0AbPfyLu7p8Oyx0BJDnYwS6F5PbAsplUnAo/9Sw== 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-SenderADCheck; bh=SC1OJtV9c+6pbcT1qAqDjwkX3KsbzOKvcHWvlDdV9Lo=; b=cSGHk2D8StxR1OYLuwsgCa46PexZP7sXafNx3QKrEoMgsuGmJhM4B4sHF2J0LOAD5/qGwnM07HDRgTFmB6++yCBc5mHCznvmTUtVWxJpUVoH7vMiD4cuFJsc9+a2dH7IXdJlHnzXTnfYCelZutLfyfUJW/2JEfSdNIRmzWQwedF2+hi8btK3+zpfBtSQ9O0eyIStGxO1yTbM9lAx25Zur2NlxTZHaNnqltZcpVHpZCjqZGoRsLYrK1sRruv5eIhjGhO30H/ysBA2KVP0zDLTjLPghnVQl2InJd1048p9cQfS/kCEQeB/Piun1Mkt4g6wZjuPBd0hf+cJzWnnhtW13g== 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=SC1OJtV9c+6pbcT1qAqDjwkX3KsbzOKvcHWvlDdV9Lo=; b=RoLH+d5gsQLY+SUqXOUwXZt0Fo/WblU5XFsnp9Fwm1wicyfMTpoekcluhZNWZhHrYUrdL0hJq2ufRTNmEclpPhh5Gj3n2Q4nFBwcrKulLLHgFi+SBdu3EivM+0JRahsaC5JmoGJrzwCPuerGhviyzS3nq3aiTcnI7zO5rsoWEfE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=lkmlhyz@microsoft.com; Received: from DM5PR2101MB0901.namprd21.prod.outlook.com (52.132.132.158) by DM5PR2101MB0727.namprd21.prod.outlook.com (10.167.110.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2602.1; Sat, 28 Dec 2019 23:47:20 +0000 Received: from DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91]) by DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::6009:72e0:9d02:2f91%9]) with mapi id 15.20.2623.000; Sat, 28 Dec 2019 23:47:20 +0000 From: Haiyang Zhang To: sashal@kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org Cc: haiyangz@microsoft.com, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, davem@davemloft.net, linux-kernel@vger.kernel.org Subject: [PATCH net-next, 3/3] hv_netvsc: Name NICs based on vmbus offer sequence and use async probe Date: Sat, 28 Dec 2019 15:46:33 -0800 Message-Id: <1577576793-113222-4-git-send-email-haiyangz@microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> References: <1577576793-113222-1-git-send-email-haiyangz@microsoft.com> X-ClientProxiedBy: MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) To DM5PR2101MB0901.namprd21.prod.outlook.com (2603:10b6:4:a7::30) MIME-Version: 1.0 Received: from linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net (13.77.154.182) by MWHPR1201CA0022.namprd12.prod.outlook.com (2603:10b6:301:4a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2581.11 via Frontend Transport; Sat, 28 Dec 2019 23:47:19 +0000 X-Mailer: git-send-email 1.8.3.1 X-Originating-IP: [13.77.154.182] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 993b18b2-1654-44e7-abe2-08d78bf04739 X-MS-TrafficTypeDiagnostic: DM5PR2101MB0727:|DM5PR2101MB0727:|DM5PR2101MB0727: X-MS-Exchange-Transport-Forked: True X-LD-Processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-Forefront-PRVS: 02652BD10A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(136003)(396003)(366004)(376002)(199004)(189003)(6666004)(478600001)(81156014)(10290500003)(6506007)(8936002)(4326008)(2616005)(36756003)(316002)(81166006)(52116002)(26005)(956004)(8676002)(2906002)(5660300002)(66556008)(186003)(66476007)(66946007)(16526019)(6512007)(6486002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB0727; H:DM5PR2101MB0901.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S7+iRUM9cDwDaeFVyX6Y/16axMFsrqw2cdUqVJPwRE/MGMF4cHMtdT+OJ4WchU2a23t/Q1odZ7WAkl5SQQG/tLLcLC7svkp+gtw3nQMuOER+gMLZ59ioUDxrb/UlO6x3Ke0duCZcvo9VZ14LgRODEn33k9k5hYH1Hs9QQsO3S+Ag7jPP36Qw5BnTJvpoXVRUa1F0hOQPle1LFkpm7YtUouvJTGUlBxDBsP4EGI19fDgxfLh9yOBud200oWY+XsiFDRq5jvs1soREsb0BPdIs/QfPPt7a3DdX5KjWX0tEOq5FxTS0CltaufJRsQisSsPMye1qBBSV/gycu0ib6V0+tg+sw+2rSGreZCZZ0/DuxCHm8fQKFCiTHKi3m0+MKfEGXEEXAPNmbQQFApvg89BEYoIWbGDbHrTIUSGJho4qRBUjZUfW4F71/BBAwVJnP5ey X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 993b18b2-1654-44e7-abe2-08d78bf04739 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2019 23:47:20.0877 (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: Ic/dY7y3VufFc9Jg/5Ew0tZzRaS8HmfPQHkC8cfona7VVLEKR7IViWcqlBc1SOFpcmxNR8BafUqs0ZO5/TWFww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0727 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The dev_num field in vmbus channel structure is assigned to the first available number when the channel is offered. So netvsc driver uses it for NIC naming based on channel offer sequence. Now re-enable the async probing mode for faster probing. Signed-off-by: Haiyang Zhang --- drivers/net/hyperv/netvsc_drv.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f3f9eb8..39c412f 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -2267,10 +2267,14 @@ static int netvsc_probe(struct hv_device *dev, struct net_device_context *net_device_ctx; struct netvsc_device_info *device_info = NULL; struct netvsc_device *nvdev; + char name[IFNAMSIZ]; int ret = -ENOMEM; - net = alloc_etherdev_mq(sizeof(struct net_device_context), - VRSS_CHANNEL_MAX); + snprintf(name, IFNAMSIZ, "eth%d", dev->channel->dev_num); + net = alloc_netdev_mqs(sizeof(struct net_device_context), name, + NET_NAME_ENUM, ether_setup, + VRSS_CHANNEL_MAX, VRSS_CHANNEL_MAX); + if (!net) goto no_net; @@ -2355,6 +2359,14 @@ static int netvsc_probe(struct hv_device *dev, net->max_mtu = ETH_DATA_LEN; ret = register_netdevice(net); + + if (ret == -EEXIST) { + pr_info("NIC name %s exists, request another name.\n", + net->name); + strlcpy(net->name, "eth%d", IFNAMSIZ); + ret = register_netdevice(net); + } + if (ret != 0) { pr_err("Unable to register netdev.\n"); goto register_failed; @@ -2496,7 +2508,7 @@ static int netvsc_resume(struct hv_device *dev) .suspend = netvsc_suspend, .resume = netvsc_resume, .driver = { - .probe_type = PROBE_FORCE_SYNCHRONOUS, + .probe_type = PROBE_PREFER_ASYNCHRONOUS, }, };