From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [RFC PATCH v3 3/3] VFIO Type1 IOMMU change: to support with iommu and without iommu Date: Mon, 16 May 2016 14:57:40 +0800 Message-ID: <57396F64.2070101@intel.com> References: <20160512194924.GA24334@nvidia.com> <573572AD.2010407@intel.com> <20160513064357.GB30970@nvidia.com> <57358293.7060408@intel.com> <20160513074206.GC5749@nvidia.com> <20160513083107.GC6162@nvidia.com> <57359D20.6020305@intel.com> <20160513155044.GB11236@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: "Tian, Kevin" , Jike Song , Alex Williamson , Kirti Wankhede , "pbonzini@redhat.com" , "kraxel@redhat.com" , "qemu-devel@nongnu.org" , "kvm@vger.kernel.org" , "Ruan, Shuai" , "Lv, Zhiyuan" To: Neo Jia Return-path: Received: from mga14.intel.com ([192.55.52.115]:45199 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751342AbcEPG6g (ORCPT ); Mon, 16 May 2016 02:58:36 -0400 In-Reply-To: <20160513155044.GB11236@nvidia.com> Sender: kvm-owner@vger.kernel.org List-ID: On 05/13/2016 11:50 PM, Neo Jia wrote: > On Fri, May 13, 2016 at 05:23:44PM +0800, Jike Song wrote: >> On 05/13/2016 04:31 PM, Neo Jia wrote: >>> On Fri, May 13, 2016 at 07:45:14AM +0000, Tian, Kevin wrote: >>>> >>>> We use page tracking framework, which is newly added to KVM recently, >>>> to mark RAM pages as read-only so write accesses are intercepted to >>>> device model. >>> >>> Yes, I am aware of that patchset from Guangrong. So far the interface are all >>> requiring struct *kvm, copied from https://lkml.org/lkml/2015/11/30/644 >>> >>> - kvm_page_track_add_page(): add the page to the tracking pool after >>> that later specified access on that page will be tracked >>> >>> - kvm_page_track_remove_page(): remove the page from the tracking pool, >>> the specified access on the page is not tracked after the last user is >>> gone >>> >>> void kvm_page_track_add_page(struct kvm *kvm, gfn_t gfn, >>> enum kvm_page_track_mode mode); >>> void kvm_page_track_remove_page(struct kvm *kvm, gfn_t gfn, >>> enum kvm_page_track_mode mode); >>> >>> Really curious how you are going to have access to the struct kvm *kvm, or you >>> are relying on the userfaultfd to track the write faults only as part of the >>> QEMU userfault thread? >>> >> >> Hi Neo, >> >> For the vGPU used as a device for KVM guest, there will be interfaces >> wrapped or implemented in KVM layer, as a rival thing diverted from >> the interfaces for Xen. That is where the KVM related code supposed to be. > > Hi Jike, > > Is this discussed anywhere on the mailing list already? Sorry if I have missed > such conversation. > Hi Neo, Not exactly, but we can discuss it if necessary :) Intel vGPU device-model, which is a part of i915 driver, has to be able to emulate vGPU for *both* XenGT and KVMGT guests. That means there must be a ridge somewhere, directing to Xen-specific and KVM-specific logic accordingly. -- Thanks, Jike