On 02/23/2016 06:01 PM, Paolo Bonzini wrote: > ----- Original Message ----- >> From: "Jike Song" <jike.s...@intel.com> >> To: "Xiao Guangrong" <guangrong.x...@linux.intel.com> >> Cc: "Paolo Bonzini" <pbonz...@redhat.com>, g...@kernel.org, >> mtosa...@redhat.com, k...@vger.kernel.org, >> linux-kernel@vger.kernel.org, "kai huang" <kai.hu...@linux.intel.com>, >> "Andrea Arcangeli" <aarca...@redhat.com>, >> "Kevin Tian" <kevin.t...@intel.com> >> Sent: Tuesday, February 23, 2016 4:02:25 AM >> Subject: Re: [PATCH v3 00/11] KVM: x86: track guest page access >> >> +Kevin >> >> On 02/22/2016 06:05 PM, Xiao Guangrong wrote: >>> >>> On 02/19/2016 08:00 PM, Paolo Bonzini wrote: >>>> >>>> I still have a doubt: how are you going to handle invalidation of GPU >>>> shadow page tables if a device (emulated in QEMU or even vhost) does DMA >>>> to the PPGTT? >>> >>> I think Jike is the better one to answer this question, Jike, could you >>> please clarify it? :) >>> >> >> Sure :) >> >> Actually in guest PPGTT is manipulated by CPU rather than GPU. The >> PPGTT page table itself are plain memory, composed & modified by the >> GPU driver, i.e. by CPU in Non-Root mode. >> >> Given that, we write-protected guest PPGTT, when VM writes PPGTT, EPT >> violation rather than DMA fault happens. >
I may still misunderstand you, so apologize in advance .. > I am not talking of DMA faults; I am talking of a guest that reads > from disk into the PPGTT. into PPGTT the page table itself? as said by Kevin in another mail, this is NOT SUPPORTED. > This is emulated DMA, and your approach of > tracking guest page access from KVM means that you are not handling > this. Is this right? Right, our tacking mechanism cares only CPU write, not Device write. However, there is *NO* DMA emulation, just similar to passthrough. The device(IGD) is only cable of r/w memory according the shadowed PPGTT, which is managed by VGPU device-model, guaranteed only memory that owned by this vgpu can be mapped. All we need is to track CPU writes from guest. > If so, what happens if the guest does this > kind of operation (for example because it is not using the PPGTT > anymore)? KVMGT should not be confused the next time it works on > that PPGTT page. As explained above, the device-model won't allow such things to happen. > > Paolo > -- Thanks, Jike