diff options
author | Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> | 2013-01-08 07:36:51 +0100 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2013-01-10 18:28:30 +0100 |
commit | 7751babd3c6d365316e7a405f516bdd0bc7cec60 (patch) | |
tree | 378e6855a6faa626f214e9df98adff27203d7f89 /include/trace | |
parent | KVM: MMU: fix Dirty bit missed if CR0.WP = 0 (diff) | |
download | linux-7751babd3c6d365316e7a405f516bdd0bc7cec60.tar.xz linux-7751babd3c6d365316e7a405f516bdd0bc7cec60.zip |
KVM: MMU: fix infinite fault access retry
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: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'include/trace')
0 files changed, 0 insertions, 0 deletions