Skip to contentSkip to conversation

KVM: MMU: Drop cr4.pge from shadow page role

PATCH In review Avi Kivity 2 participants 2 messages Apr 19, 2010 – Apr 20, 2010

Subsystems (3)
lore
Share & tools
lore

Avi Kivity

author
#0 lore raw

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.

---
 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
index 3c31c5a..d47d087 100644
@@ -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
index 3851f1f..bc4f7f0 100644
@@ -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
index 58a96e6..d7d58ce 100644
@@ -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
#1 lore raw
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.

ACK