Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4793768pxj; Wed, 9 Jun 2021 01:52:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnbeJ9yRR6dqBjFaJJ7oPuaQs669rymQ1OkWcrYu0tKR2O69fGF7ny725RDwLylmV2wm6p X-Received: by 2002:a17:906:b212:: with SMTP id p18mr2363585ejz.109.1623228748788; Wed, 09 Jun 2021 01:52:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623228748; cv=none; d=google.com; s=arc-20160816; b=nE07SBZKyvzV1bnZdJSNV1otq2e5ykCqYC9PIUWenrDjSuagTmnJPqC2n5VqcNmtat eLAUUzB85nUphdjdyEfKDTuFsqVzd1BLWQE+z7fGLAGj++BIj0ZYuyHDE8aHmAxUIY8X EBrLQoRy7/Rc9bYuge/1JB6T3/58j1yKmd2cffU9O0wz9oUDcNNmbloCbdLsOFxfHPoD UwuLkpPT1XKQSR6kk+14ODeoZpvfmie5Ou35mmirOlu3gdUqivLYRozMXWcaOS87d6VY UkdvIPHBesJ8YyFgSvJgYtXGNyeOqNjXy+46m60IwKbB9OtLC9fBoO5NRbjhgO9364DI /bQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=gwzQgvAhfgGzOQ/XfUPIoM+Gvg4QcxXJJvqwZ3Nk9OU=; b=PZ4JhztUVEQfzGRreAJhN504kDMd5MIoFBGy8K8TJH+3L4dv2heXX+u56oCARrLqDx EkGQ3S6CceXp2DMwQb+iBfsNDbIBetsUiMyGQiRakxXJhwCH8h4L6CT2AEJRA1MrwqDd gCiZug+SQIscVRtbeYVDcAEbJLRGiNuFlsQ7dfWmVe6Xiqd1Y0k00evy/CXraPiv4jIe 5Y52OOG5MjzEjqlWqH5r5GPvlU07LohKPoa/t3rUJ5cibS824jh6aG6dw8Nd6hbFGVJf /Jum8b/xs9gSM6yIHtWibdhfhlTaXI0+7Mz0U1OXpeYdnzo6trHmjcghf98/nbLtGnZI qYgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=G9S49rKK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a13si1976329edy.153.2021.06.09.01.52.05; Wed, 09 Jun 2021 01:52:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=G9S49rKK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232696AbhFHRbk (ORCPT + 99 others); Tue, 8 Jun 2021 13:31:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:59474 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231652AbhFHRbj (ORCPT ); Tue, 8 Jun 2021 13:31:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id CE00061375; Tue, 8 Jun 2021 17:29:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1623173386; bh=ItzIBqXzJpZDik1ri9ZEy8dxLAgX/jhstdp/QleUEsE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=G9S49rKKT40nOKxSt69vJEFFnV8Nn1Avanob9mZSh5tccDrdgUcm+1K5/b7V+fiug ANtP7zi+Ii87TBfezRzw2P4IZwtJwz9qqKmN56J3Wi4aYgipkd1QOyplk2bvJ4CTv8 LBTE3Uvs56lWYlAPTytWFKWIdGZAvJg2D43+Hzfo70M86F7v0xD0B714ccUm7R85UA viojxo48doTrAaLZCKM3uplWuFy4bIiQWJQzpCp/nM1oD/ycfO+Sog0HxtpiF/OeNz Sqi71l6fUlrR1ui3lVnBRj20+hTIIipY6JyZK/O407e+tCEozQom731MentiJ7UAcG JdU+3CLk8wMJQ== Date: Tue, 8 Jun 2021 10:29:45 -0700 From: Jakub Kicinski To: Yunsheng Lin Cc: moyufeng , Jakub Kicinski , Jiri Pirko , Parav Pandit , Or Gerlitz , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "michal.lkml@markovi.net" , "davem@davemloft.net" , "gregkh@linuxfoundation.org" , Jiri Pirko , Salil Mehta , "lipeng (Y)" , Guangbin Huang , , "chenhao (DY)" , Jiaran Zhang , "linuxarm@openeuler.org" Subject: Re: [RFC net-next 0/8] Introducing subdev bus and devlink extension Message-ID: <20210608102945.3edff79a@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> In-Reply-To: <530ff54c-3cee-0eb6-30b0-b607826f68cf@huawei.com> References: <1551418672-12822-1-git-send-email-parav@mellanox.com> <20190304174551.2300b7bc@cakuba.netronome.com> <76785913-b1bf-f126-a41e-14cd0f922100@huawei.com> <20210531223711.19359b9a@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <7c591bad-75ed-75bc-5dac-e26bdde6e615@huawei.com> <20210601143451.4b042a94@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <20210602093440.15dc5713@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <857e7a19-1559-b929-fd15-05e8f38e9d45@huawei.com> <20210603105311.27bb0c4d@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <20210604114109.3a7ada85@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <4e7a41ed-3f4d-d55d-8302-df3bc42dedd4@huawei.com> <20210607124643.1bb1c6a1@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> <530ff54c-3cee-0eb6-30b0-b607826f68cf@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 8 Jun 2021 20:10:37 +0800 Yunsheng Lin wrote: > >> I am not sure if controller concept already existed is reusable for > >> the devlink instance representing problem for multi-function which > >> shares common resource in the same ASIC. If not, we do need to pick > >> up other name. > >> > >> Another thing I am not really think throught is how is the VF represented > >> by the devlink instance when VF is passed through to a VM. > >> I was thinking about VF is represented as devlink port, just like PF(with > >> different port flavour), and VF devlink port only exist on the same host > >> as PF(which assumes PF is never passed through to a VM), so it may means > >> the PF is responsible for creating the devlink port for VF when VF is passed > >> through to a VM? > >> > >> Or do we need to create a devlink instance for VF in the VM too when the > >> VF is passed through to a VM? Or more specificly, does user need to query > >> or configure devlink info or configuration in a VM? If not, then devlink > >> instance in VM seems unnecessary? > > > > I believe the current best practice is to create a devlink instance for > > the VF with a devlink port of type "virtual". Such instance represents > > a "virtualized" view of the device. > > Afer discussion with Parav in other thread, I undersood it was the current > practice, but I am not sure I understand why it is current *best* practice. > > If we allow all PF of a ASCI to register to the same devlink instance, does > it not make sense that all VF under one PF also register to the same devlink > instance that it's PF is registering to when they are in the same host? > > For eswitch legacy mode, whether VF and PF are the same host or not, the VF > can also provide the serial number of a ASIC to register to the devlink instance, > if that devlink instance does not exist yet, just create that devlink instance > according to the serial number, just like PF does. > > For eswitch DEVLINK_ESWITCH_MODE_SWITCHDEV mode, the flavour type for devlink > port instance representing the netdev of VF function is FLAVOUR_VIRTUAL, the > flavour type for devlink port instance representing the representor netdev of > VF is FLAVOUR_PCI_VF, which are different type, so they can register to the same > devlink instance even when both of the devlink port instance is in the same host? > > Is there any reason why VF use its own devlink instance? Primary use case for VFs is virtual environments where guest isn't trusted, so tying the VF to the main devlink instance, over which guest should have no control is counter productive. > >> I meant we could still allow the user to provide a more meaningful > >> name to indicate a devlink instance besides the id. > > > > To clarify/summarize my statement above serial number may be a useful > > addition but PCI device names should IMHO remain the primary > > identifiers, even if it means devlink instances with multiple names. > > I am not sure I understand what does it mean by "devlink instances with > multiple names"? > > Does that mean whenever a devlink port instance is registered to a devlink > instance, that devlink instance get a new name according to the PCI device > which the just registered devlink port instance corresponds to? Not devlink port, new PCI device. Multiple ports may reside on the same PCI function, some ports don't have a function (e.g. Ethernet ports).