Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 534e38b4 authored by Sheng Yang's avatar Sheng Yang Committed by Avi Kivity
Browse files

KVM: VMX: Always return old for clear_flush_young() when using EPT



As well as discard fake accessed bit and dirty bit of EPT.

Signed-off-by: default avatarSheng Yang <sheng.yang@intel.com>
Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent e5eab0ce
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -711,6 +711,10 @@ static int kvm_age_rmapp(struct kvm *kvm, unsigned long *rmapp)
	u64 *spte;
	u64 *spte;
	int young = 0;
	int young = 0;


	/* always return old for EPT */
	if (!shadow_accessed_mask)
		return 0;

	spte = rmap_next(kvm, rmapp, NULL);
	spte = rmap_next(kvm, rmapp, NULL);
	while (spte) {
	while (spte) {
		int _young;
		int _young;
+1 −2
Original line number Original line Diff line number Diff line
@@ -3301,8 +3301,7 @@ static int __init vmx_init(void)
		kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
		kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
			VMX_EPT_WRITABLE_MASK |
			VMX_EPT_WRITABLE_MASK |
			VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
			VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
		kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK,
		kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
				VMX_EPT_FAKE_DIRTY_MASK, 0ull,
				VMX_EPT_EXECUTABLE_MASK);
				VMX_EPT_EXECUTABLE_MASK);
		kvm_enable_tdp();
		kvm_enable_tdp();
	} else
	} else
+0 −2
Original line number Original line Diff line number Diff line
@@ -370,8 +370,6 @@ enum vmcs_field {
#define VMX_EPT_READABLE_MASK			0x1ull
#define VMX_EPT_READABLE_MASK			0x1ull
#define VMX_EPT_WRITABLE_MASK			0x2ull
#define VMX_EPT_WRITABLE_MASK			0x2ull
#define VMX_EPT_EXECUTABLE_MASK			0x4ull
#define VMX_EPT_EXECUTABLE_MASK			0x4ull
#define VMX_EPT_FAKE_ACCESSED_MASK		(1ull << 62)
#define VMX_EPT_FAKE_DIRTY_MASK			(1ull << 63)


#define VMX_EPT_IDENTITY_PAGETABLE_ADDR		0xfffbc000ul
#define VMX_EPT_IDENTITY_PAGETABLE_ADDR		0xfffbc000ul