Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp320967ybv; Wed, 5 Feb 2020 06:12:44 -0800 (PST) X-Google-Smtp-Source: APXvYqwYUgKdSPA+ifHv2zhA9cvhQpMctsT7++B8s1gCF6bRvQXvNFl/x+9EVhiiVsXfD6jSyOdL X-Received: by 2002:a05:6830:140f:: with SMTP id v15mr26342667otp.218.1580911963850; Wed, 05 Feb 2020 06:12:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580911963; cv=none; d=google.com; s=arc-20160816; b=JPXZa35IAXWAOFGCX+jvVPnSt4sk+iSbrIMPpOmrYjtElXzuX6oRpE7+pSbzdNV3kN +g+U28C1BVya2NOrEtH/viuXR/lm8z51UEqQ0xJXj7e7zUSS1YAY0VLphlD4cfaxg1YS jWrKQ58sWp35WDvQXO1ACYdoF6Zffd/VH0WpYrP9XY+MribvqrD8Fvij9NWYvPnlw+Pc H9cht7EjjsnsUtVcj2AVrgloqTzEU9iPkJpX+KXxeGqQ9A4B9v2/Cwh5GpCjmO9rL1iT oB1xRPK1b4Bq/QnyIXKHoCw9Jns/TQWBWToqdWq0MTWs2wi6m+qoYKjGJJRnT6x1eumv odfw== 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:dkim-signature; bh=w4/IAIkLz0D/Z/IjxmMi8dEqQry7xSlVGHBtHnUX7vg=; b=brn6/2DtxW5KKdLhWFLz7K3EUpU//EyEq8bGU420yQQW+MFZeOb39j1Gg4V0uxGx0Z wxZLqfpNalOoCbMj3dqCLNXLatFgL1/AaEVTx+8NlBER3HEFtwesxWyJVQqMB6WPxpJ1 SLULHiY3NKKP+8f43Nv2FHCPVtOsi1iiLa1sNvEzLyzvnH+NYNWmJu0cTtDndbQshutv h7e9eZuxQiATYwKniXCW9R4ihZxUaPWLx9Xmr/jHbGEC2RlD1jb+ySZHYsYXr8Od62Ff epqrU5co20e+tSfhu6Dse40qPrgZ9AR+DxnCSYpgjsnPHXFJtyWXhQ24WxlhV3yyoG9M Ygdg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Z1WcrUak; 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=pass (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 n2si7515078otq.315.2020.02.05.06.12.24; Wed, 05 Feb 2020 06:12:43 -0800 (PST) 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; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Z1WcrUak; 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=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728028AbgBEOLG (ORCPT + 99 others); Wed, 5 Feb 2020 09:11:06 -0500 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:52396 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727109AbgBEOLF (ORCPT ); Wed, 5 Feb 2020 09:11:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580911864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=w4/IAIkLz0D/Z/IjxmMi8dEqQry7xSlVGHBtHnUX7vg=; b=Z1WcrUakHCqJ+6Xe7XtsyRXOwm/JSLTyS7nmmeExkpk3SoTpAdpyy340czNHSNtGMGHG1W 6IN6Y81+eEu230c0RB2Q2ubKgNB3M6VH1IJxjkgNIJmGjt7mO7a1YpfwjFLC3f6phjJCLY 6TsKMcwg7+xeYKF0grZYuyZhFlPiyVg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-261-ugnoM9xKOA6feBUjQwI-mQ-1; Wed, 05 Feb 2020 09:11:00 -0500 X-MC-Unique: ugnoM9xKOA6feBUjQwI-mQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6AFB41336563; Wed, 5 Feb 2020 14:10:58 +0000 (UTC) Received: from x1.home (ovpn-116-28.phx2.redhat.com [10.3.116.28]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4E01660C05; Wed, 5 Feb 2020 14:10:57 +0000 (UTC) Date: Wed, 5 Feb 2020 07:10:56 -0700 From: Alex Williamson To: "Liu, Yi L" Cc: "kvm@vger.kernel.org" , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "dev@dpdk.org" , "mtosatti@redhat.com" , "thomas@monjalon.net" , "bluca@debian.org" , "jerinjacobk@gmail.com" , "Richardson, Bruce" , "cohuck@redhat.com" Subject: Re: [RFC PATCH 0/7] vfio/pci: SR-IOV support Message-ID: <20200205071056.101ad3f2@x1.home> In-Reply-To: References: <158085337582.9445.17682266437583505502.stgit@gimli.home> Organization: Red Hat MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 5 Feb 2020 07:57:21 +0000 "Liu, Yi L" wrote: > Hi Alex, > > Silly questions on the background: > > > From: Alex Williamson > > Sent: Wednesday, February 5, 2020 7:06 AM > > Subject: [RFC PATCH 0/7] vfio/pci: SR-IOV support > > > > There seems to be an ongoing desire to use userspace, vfio-based > > drivers for both SR-IOV PF and VF devices. > > Is this series to make PF be bound-able to vfio-pci even SR-IOV is > enabled on such PFs? If yes, is it allowed to assign PF to a VM? or > it can only be used by userspace applications like DPDK? No, this series does not change the behavior of vfio-pci with respect to probing a PF where VFs are already enabled. This is still disallowed. I haven't seen a use case that requires this and allowing it tends to subvert the restrictions here. For instance, if an existing VF is already in use by a vfio-pci driver, the PF can transition from a trusted host driver to an unknown userspace driver. > > The fundamental issue > > with this concept is that the VF is not fully independent of the PF > > driver. Minimally the PF driver might be able to deny service to the > > VF, VF data paths might be dependent on the state of the PF device, > > or the PF my have some degree of ability to inspect or manipulate the > > VF data. It therefore would seem irresponsible to unleash VFs onto > > the system, managed by a user owned PF. > > > > We address this in a few ways in this series. First, we can use a bus > > notifier and the driver_override facility to make sure VFs are bound > > to the vfio-pci driver by default. This should eliminate the chance > > that a VF is accidentally bound and used by host drivers. We don't > > however remove the ability for a host admin to change this override. > > > > The next issue we need to address is how we let userspace drivers > > opt-in to this participation with the PF driver. We do not want an > > admin to be able to unwittingly assign one of these VFs to a tenant > > that isn't working in collaboration with the PF driver. We could use > > IOMMU grouping, but this seems to push too far towards tightly coupled > > PF and VF drivers. This series introduces a "VF token", implemented > > as a UUID, as a shared secret between PF and VF drivers. The token > > needs to be set by the PF driver and used as part of the device > > matching by the VF driver. Provisions in the code also account for > > restarting the PF driver with active VF drivers, requiring the PF to > > use the current token to re-gain access to the PF. > > How about the scenario in which PF driver is vfio-based userspace > driver but VF drivers are mixed. This means not all VFs are bound > to vfio-based userspace driver. Is it also supported here? :-) It's allowed. Userspace VF drivers will need to participate in the VF token scheme, host drivers may be bound to VFs normally after removing the default driver_override. Thanks, Alex