Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp5162882ybe; Tue, 17 Sep 2019 03:48:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqy1QTqEHoGIEyAJwqWgSaMBTb1OuSoyHeFFm0jcnEZBbsjeLR2WT1OZVNBpS0xethpBPyzg X-Received: by 2002:a17:907:211c:: with SMTP id qn28mr1981554ejb.244.1568717306357; Tue, 17 Sep 2019 03:48:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568717306; cv=none; d=google.com; s=arc-20160816; b=Bdj83QHgmE2HciRrYOaiokhWIhwe2ESf84SkR5rx5EeWZxCME9hw339tweCnGQBiG1 4KUIecY4bZCH1tjBO3HqA5HvOFR9llX2v4MrgeLHdq2bIv1H6iBA57SK8ebFP77vXuMG kvMwcrN33hJr8esHH5i+eZSpzLcUpiP+ZT2ontxY2C2Jf7YStHbBUb+MKgbIxgKu2baY 9a3P4hwIvoQTJC/yz5BRExYbYb8+pHX81b2J119rrs0Od1w3nv33FkkBwHm8Qrc+YES/ WJNH12TZxDYuuUS0UXNmCiZ4f9a+xgrqm3jfeKYM4em5+5qxhrN5fVZMEJsAU/bBBe0Z QZNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=WHZA1+5wDgbgX92N2DzZ7/43mzCak06MhgXmbJ7VH3M=; b=Pustf7u8sdJ/o9gQZb93ZvfolelcGTXGeqjBy+ksAtb3VXj6drISPtKTbMz8zA8iHZ GAsbqhmrHYY/Zgr6O3/oHQGY6vob13fu5fcxSu7bQRID6h+r6R0qS6dactVUHto/qlfC GARDBHkba31C2ZCr9QgTqOBVtSI0rQDolFU2yp7WruxoB4lqxwki6L1CvkUTsF7BjAvB fnBrfNuUj3qDg+SLx66xrPF2eIRqMzSEPYlApUxfvM0avR+/+gCrT/9woROk062A8/L8 Ql8XfEIZzthXjTgGXe3yRv/Ttcrw+s3G93pNsAoCkpqXYUoaPb4hUVdPh4mlNXGMCoQN wjPw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z15si1050981edd.431.2019.09.17.03.48.03; Tue, 17 Sep 2019 03:48:26 -0700 (PDT) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727489AbfIQKOF (ORCPT + 99 others); Tue, 17 Sep 2019 06:14:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43944 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726688AbfIQKOF (ORCPT ); Tue, 17 Sep 2019 06:14:05 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2BA7E307D8BE; Tue, 17 Sep 2019 10:14:04 +0000 (UTC) Received: from gondolin (dhcp-192-230.str.redhat.com [10.33.192.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id E471619C4F; Tue, 17 Sep 2019 10:13:59 +0000 (UTC) Date: Tue, 17 Sep 2019 12:13:57 +0200 From: Cornelia Huck To: Parav Pandit Cc: alex.williamson@redhat.com, jiri@mellanox.com, kwankhede@nvidia.com, davem@davemloft.net, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH v3 0/5] Introduce variable length mdev alias Message-ID: <20190917121357.02480c09.cohuck@redhat.com> In-Reply-To: <20190902042436.23294-1-parav@mellanox.com> References: <20190826204119.54386-1-parav@mellanox.com> <20190902042436.23294-1-parav@mellanox.com> Organization: Red Hat GmbH MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Tue, 17 Sep 2019 10:14:04 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 1 Sep 2019 23:24:31 -0500 Parav Pandit wrote: > To have consistent naming for the netdevice of a mdev and to have > consistent naming of the devlink port [1] of a mdev, which is formed using > phys_port_name of the devlink port, current UUID is not usable because > UUID is too long. > > UUID in string format is 36-characters long and in binary 128-bit. > Both formats are not able to fit within 15 characters limit of netdev > name. > > It is desired to have mdev device naming consistent using UUID. > So that widely used user space framework such as ovs [2] can make use > of mdev representor in similar way as PCIe SR-IOV VF and PF representors. > > Hence, > (a) mdev alias is created which is derived using sha1 from the mdev name. > (b) Vendor driver describes how long an alias should be for the child mdev > created for a given parent. > (c) Mdev aliases are unique at system level. > (d) alias is created optionally whenever parent requested. > This ensures that non networking mdev parents can function without alias > creation overhead. > > This design is discussed at [3]. > > An example systemd/udev extension will have, > > 1. netdev name created using mdev alias available in sysfs. > > mdev UUID=83b8f4f2-509f-382f-3c1e-e6bfe0fa1001 > mdev 12 character alias=cd5b146a80a5 > > netdev name of this mdev = enmcd5b146a80a5 > Here en = Ethernet link > m = mediated device > > 2. devlink port phys_port_name created using mdev alias. > devlink phys_port_name=pcd5b146a80a5 > > This patchset enables mdev core to maintain unique alias for a mdev. > > Patch-1 Introduces mdev alias using sha1. > Patch-2 Ensures that mdev alias is unique in a system. > Patch-3 Exposes mdev alias in a sysfs hirerchy, update Documentation > Patch-4 Introduces mdev_alias() API. > Patch-5 Extends mtty driver to optionally provide alias generation. > This also enables to test UUID based sha1 collision and trigger > error handling for duplicate sha1 results. > > [1] http://man7.org/linux/man-pages/man8/devlink-port.8.html > [2] https://docs.openstack.org/os-vif/latest/user/plugins/ovs.html > [3] https://patchwork.kernel.org/cover/11084231/ > > --- > Changelog: > v2->v3: > - Addressed comment from Yunsheng Lin > - Changed strcmp() ==0 to !strcmp() > - Addressed comment from Cornelia Hunk > - Merged sysfs Documentation patch with syfs patch > - Added more description for alias return value > v1->v2: > - Corrected a typo from 'and' to 'an' > - Addressed comments from Alex Williamson > - Kept mdev_device naturally aligned > - Added error checking for crypt_*() calls > - Moved alias NULL check at beginning > - Added mdev_alias() API > - Updated mtty driver to show example mdev_alias() usage > - Changed return type of generate_alias() from int to char* > v0->v1: > - Addressed comments from Alex Williamson, Cornelia Hunk and Mark Bloch > - Moved alias length check outside of the parent lock > - Moved alias and digest allocation from kvzalloc to kzalloc > - &alias[0] changed to alias > - alias_length check is nested under get_alias_length callback check > - Changed comments to start with an empty line > - Added comment where alias memory ownership is handed over to mdev device > - Fixed cleaunup of hash if mdev_bus_register() fails > - Updated documentation for new sysfs alias file > - Improved commit logs to make description more clear > - Fixed inclusiong of alias for NULL check > - Added ratelimited debug print for sha1 hash collision error > > Parav Pandit (5): > mdev: Introduce sha1 based mdev alias > mdev: Make mdev alias unique among all mdevs > mdev: Expose mdev alias in sysfs tree > mdev: Introduce an API mdev_alias > mtty: Optionally support mtty alias > > .../driver-api/vfio-mediated-device.rst | 9 ++ > drivers/vfio/mdev/mdev_core.c | 142 +++++++++++++++++- > drivers/vfio/mdev/mdev_private.h | 5 +- > drivers/vfio/mdev/mdev_sysfs.c | 26 +++- > include/linux/mdev.h | 5 + > samples/vfio-mdev/mtty.c | 13 ++ > 6 files changed, 190 insertions(+), 10 deletions(-) > The patches on their own look sane (and I gave my R-b), but the consumer of this new API should be ready before this is merged, as already discussed below.