On Thu, Jul 01, 2010 at 09:55:17PM +0800, Xiao Guangrong wrote:
> Support prefetch ptes when intercept guest #PF, avoid to #PF by later
> access
> 
> If we meet any failure in the prefetch path, we will exit it and
> not try other ptes to avoid become heavy path
> 
> Note: this speculative will mark page become dirty but it not really
> accessed, the same issue is in other speculative paths like invlpg,
> pte write, fortunately, it just affect host memory management. After
> Avi's patchset named "[PATCH v2 1/4] KVM: MMU: Introduce drop_spte()"
> merged, we will easily fix it. Will do it in the future.
> 
> Signed-off-by: Xiao Guangrong <[email protected]>
> ---
>  arch/x86/kvm/mmu.c         |   79 
> ++++++++++++++++++++++++++++++++++++++++++++
>  arch/x86/kvm/paging_tmpl.h |   76 ++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 155 insertions(+), 0 deletions(-)
> 

> +     if (pte_prefetch_topup_memory_cache(vcpu))
> +             return;
> +
> +     for (j = 0; i < max; i++, j++) {
> +             pt_element_t gpte;
> +             unsigned pte_access;
> +             u64 *spte = sp->spt + i;
> +             gfn_t gfn;
> +             pfn_t pfn;
> +
> +             if (spte == sptep)
> +                     continue;
> +
> +             if (*spte != shadow_trap_nonpresent_pte)
> +                     continue;
> +
> +             gpte = gptep[j];
> +
> +             if (is_rsvd_bits_set(vcpu, gpte, PT_PAGE_TABLE_LEVEL))
> +                     break;

BTW, doesnt sync_page also lack reserved bit checking? (unrelated to
this patch).

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to