Received: by 10.223.185.116 with SMTP id b49csp309529wrg; Fri, 2 Mar 2018 19:57:52 -0800 (PST) X-Google-Smtp-Source: AG47ELuL0+c2zwtC73RDQSS22LqaUgph8OnARck8cv+cqs3q7yVTaYI2UzXIAsqrj8JSJqCePsOG X-Received: by 10.98.18.143 with SMTP id 15mr7872952pfs.104.1520049471949; Fri, 02 Mar 2018 19:57:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520049471; cv=none; d=google.com; s=arc-20160816; b=L+ART28HOpxv9YouuObql0j+/jGgyW0vQZvbatYq8lQ4RxEGzXkiSKAWsF4072KoVd kjWNH+FcrsAoAQi4GGh3BjZtbMG88D+l0Z9JuihkJvi0ljzzlZgWgFB1s8nu6poKtqKo cmMY8Q1V7964aZ+I9zBB6QoI1KcwuA1FgCUH6mTSlldBmHF7hJzjBIi0+GuBreJqxQ77 tiSl1iywe5ezFjYoYWsrh+VZHEg1cK0m1r89AXf3gP6RYdZwQ2xrmUiZLZq/JVceupXX SV0JRxKhZBTmnckIawwuHW0QT9NGG33IQNdyn9onPrXncAxmLARDwendWnuINJxcky+6 2sDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:arc-authentication-results; bh=ikUFqwEYzlR/IEa/NGUNoheTaNLxEgl+BGaDdifWC7g=; b=IAXlIOdhJ8LYizgry3+nMveWGKW8eqNq+wnbPyIEgyX5pCiyhoUf0579Rwk7+5xniF VYBXa0ivRFzVFNshvjfxR5Ai5rWWrEbX/QYiWXbWvJIUgve9Kvs1botPt6bGt+OazIn7 DpdomIarkKTdDG6aBjb5IwqEze5SWzy2F6Uu+tvmVsnhQR3aicWtngvMWK8S5d9pAiGa VIzZOkZcH1FjyOso8nLvbDqGSH04CWsY19GChZMem60rCchdz7+FVFY3QXLmEU5966m7 MLECD/wrOoSxsvJyt4xvWi3fB+Sz2zLVIYeM0Ym0OvmfigkHqZYBR0divbrF1VIX7DXt He5w== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s4si2983037pfm.223.2018.03.02.19.57.37; Fri, 02 Mar 2018 19:57:51 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964818AbeCCA7X convert rfc822-to-8bit (ORCPT + 99 others); Fri, 2 Mar 2018 19:59:23 -0500 Received: from mga02.intel.com ([134.134.136.20]:41176 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935377AbeCCA7V (ORCPT ); Fri, 2 Mar 2018 19:59:21 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Mar 2018 16:59:20 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,414,1515484800"; d="scan'208";a="32046605" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 02 Mar 2018 16:59:19 -0800 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 2 Mar 2018 16:59:19 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 2 Mar 2018 16:59:19 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.253]) by shsmsx102.ccr.corp.intel.com ([169.254.2.124]) with mapi id 14.03.0319.002; Sat, 3 Mar 2018 08:59:16 +0800 From: "Tian, Kevin" To: Alex Williamson CC: Alexander Duyck , Bjorn Helgaas , "linux-pci@vger.kernel.org" , "Duyck, Alexander H" , "virtio-dev@lists.oasis-open.org" , "kvm@vger.kernel.org" , Netdev , "Daly, Dan" , LKML , Maximilian Heyne , "Wang, Liang-min" , "Rustad, Mark D" , David Woodhouse , "dwmw@amazon.co.uk" , Ilya Lesokhin , Don Dutile , Kirti Wankhede Subject: RE: [PATCH] pci-iov: Add support for unmanaged SR-IOV Thread-Topic: [PATCH] pci-iov: Add support for unmanaged SR-IOV Thread-Index: AQHTsZsUOTRX+fT3dEWaUU3A75Oj+KO8e+lggAA/S4CAAPNaIA== Date: Sat, 3 Mar 2018 00:59:15 +0000 Message-ID: References: <20180227190520.3273.79728.stgit@localhost.localdomain> <20180227144015.228d4f5c@w520.home> <20180228155949.00fde8ae@w520.home> <20180301132224.1ca06949@w520.home> <20180302111411.47a58371@t450s.home> In-Reply-To: <20180302111411.47a58371@t450s.home> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDlkZmYzZDQtNzA3Mi00MDA0LThhZWYtZDQzZTE4ZmMzMTE0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IkxBUHpreDFxVVlYNVwvWE9YenNRN3hnaXpDMXg5TktXMTBjQXlycXdlRnVjPSJ9 dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > From: Alex Williamson [mailto:alex.williamson@redhat.com] > Sent: Saturday, March 3, 2018 2:14 AM > > On Fri, 2 Mar 2018 06:54:17 +0000 > "Tian, Kevin" wrote: > > > > From: Alex Williamson > > > Sent: Friday, March 2, 2018 4:22 AM > > > > > > > > I am pretty sure that you are describing is true of some, but not for > > > > all. I think the Amazon solutions and the virtio solution are doing > > > > hard partitioning of the part. I will leave it to those guys to speak > > > > for themselves since I don't know anything about the hardware design > > > > of those parts. > > > > > > I think we'd need device specific knowledge and enablement to be able > > > to take advantage of any hardware partitioning, otherwise we need to > > > assume the pf is privileged, as implemented in other sriov devices. > > > > > > I'm also trying to imagine whether there's a solution via the new > > > vfio/mdev interface, where the mdev vendor driver would bind to the > pf > > > and effectively present itself as the mdev device. The vendor driver > > > could provide sriov capabilities and bear the burden of ensuring that > > > the pf is used cooperatively. The only existing mdev vendor drivers are > > > vGPUs and rely on on-device DMA translation and isolation, such as > > > through GTTs, but there have been some thoughts on providing IOMMU > > > based > > > isolation of mdev/sriov mixed devices (assuming DMA is even required > > > for userspace management of the pf in this use case). [Cc Kirti] > > > Thanks, > > > > > > > Hope not distracting this thread, but above sounds like an interesting > > idea. Actually we ever brainstormed similar thought for another > > potential usage - supporting VF live migration. We are already working > > on an generic extension to allow state save/restore of mdev instance. > > If vendor driver could further wrap pf as a mdev instance, it could > > leverage the same framework for a clean state migration on VF. based > > on mmap callback the vendor driver can easily switch back-and-forth > > between pass through and trap/emulation of the VF resources. Of > > course doing so alone doesn't address all the demands of VF live > > migration (e.g. dirty page tracking still requires other techniques), > > but it does pave a way toward a general framework to support VF > > live migration. > > > > If above is feasible, finally we could use one mdev framework to > > manage both mdev and pf/vf assignment, while providing added > > values which are difficult to achieve today. :-) > > mdev drivers may be the first to support migration, but I wonder if a > full mdev implementation is necessary for it. Once the vfio api is > define, device specific extensions to vfio-pci might be able to > implement migration more directly. Thanks, > > Alex yes technically a full mdev implementation is not necessary. If device specific extensions will be placed within vfio module, it's obviously straightforward. What I thought earlier was in case vfio wants to stay device-agnostic then we probably want device specific extensions in vendor driver which is loaded but in a dummy mode which simply do basic PCI initialization as vfio-pci and then wrap vf as mdev (since vfio-pci is not the vf driver in this scenario). It's especially useful for vendor drivers which aim to support both mdev and sr-iov by sharing common state mgmt. knowledge, but looks an overkill to other vendor drivers. Possibly finally we'll allow both - simple device extensions in vfio-pci and complex device extensions in vendor drivers through vfio-mdev. Thanks Kevin