Re: [PATCH v3 00/11] KVM: x86: track guest page access
From: Paolo Bonzini
Date: Tue Feb 23 2016 - 05:02:19 EST
----- Original Message -----
> From: "Jike Song" <jike.song@xxxxxxxxx>
> To: "Xiao Guangrong" <guangrong.xiao@xxxxxxxxxxxxxxx>
> Cc: "Paolo Bonzini" <pbonzini@xxxxxxxxxx>, gleb@xxxxxxxxxx, mtosatti@xxxxxxxxxx, kvm@xxxxxxxxxxxxxxx,
> linux-kernel@xxxxxxxxxxxxxxx, "kai huang" <kai.huang@xxxxxxxxxxxxxxx>, "Andrea Arcangeli" <aarcange@xxxxxxxxxx>,
> "Kevin Tian" <kevin.tian@xxxxxxxxx>
> 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 am not talking of DMA faults; I am talking of a guest that reads
from disk into the PPGTT. This is emulated DMA, and your approach of
tracking guest page access from KVM means that you are not handling
this. Is this right? 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.
Paolo