KVM: MMU: Drop cr4.pge from shadow page role
PATCH 1/1 KVM: MMU: Drop cr4.pge from shadow page role
Since commit bf47a760f66ad, we no longer handle ptes with the global bit set specially, so there is no reason to distinguish between shadow pages created with cr4.gpe set and clear.
Such tracking is expensive when the guest toggles cr4.pge, so drop it.
Signed-off-by Avi Kivity <[email protected]>
--- arch/x86/include/asm/kvm_host.h | 1 - arch/x86/kvm/mmutrace.h | 3 +-- arch/x86/kvm/x86.c | 1 - 3 files changed, 1 insertions(+), 4 deletions(-)
arch/x86/include/asm/kvm_host.h +0 -1
@@ -178,7 +178,6 @@ union kvm_mmu_page_role { unsigned direct:1; unsigned access:3; unsigned invalid:1; - unsigned cr4_pge:1; unsigned nxe:1; }; };
arch/x86/kvm/mmutrace.h +1 -2
@@ -28,7 +28,7 @@ \ role.word = __entry->role; \ \ - trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s %spge" \ + trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s" \ " %snxe root %u %s%c", \ __entry->gfn, role.level, \ role.cr4_pae ? " pae" : "", \
@@ -36,7 +36,6 @@ role.direct ?" direct" :"" , \ access_str[role.access], \ role.invalid ?" invalid" :"" , \ - role.cr4_pge ?"" :"!" , \ role.nxe ?"" :"!" , \ __entry->root_count, \ __entry->unsync ? "unsync" : "sync", 0); \
arch/x86/kvm/x86.c +0 -1
@@ -488,7 +488,6 @@ void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) } kvm_x86_ops->set_cr4 (vcpu, cr4); vcpu->arch.cr4 = cr4; - vcpu->arch.mmu.base_role.cr4_pge = (cr4 &X86_CR4_PGE ) && !tdp_enabled;kvm_mmu_reset_context (vcpu); }EXPORT_SYMBOL_GPL (kvm_set_cr4);
Signature · 1 line
1.6.6.1
Quoted 7 lines · Avi Kivity
Since commit
bf47a760f66ad, we no longer handle ptes with the global bit set specially, so there is no reason to distinguish between shadow pages created with cr4.gpe set and clear.Such tracking is expensive when the guest toggles cr4.pge, so drop it.
Signed-off-by Avi Kivity <[email protected]>
ACK