• Xiao Guangrong's avatar
    KVM: MMU: fix infinite fault access retry · 7751babd
    Xiao Guangrong authored
    We have two issues in current code:
    - if target gfn is used as its page table, guest will refault then kvm will use
      small page size to map it. We need two #PF to fix its shadow page table
    
    - sometimes, say a exception is triggered during vm-exit caused by #PF
      (see handle_exception() in vmx.c), we remove all the shadow pages shadowed
      by the target gfn before go into page fault path, it will cause infinite
      loop:
      delete shadow pages shadowed by the gfn -> try to use large page size to map
      the gfn -> retry the access ->...
    
    To fix these, we can adjust page size early if the target gfn is used as page
    table
    Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    7751babd
mmu.c 105 KB