kvm: x86: mmu: Lockless access tracking for Intel CPUs without EPT A bits.
authorJunaid Shahid <junaids@google.com>
Wed, 7 Dec 2016 00:46:16 +0000 (16:46 -0800)
committerRadim Krčmář <rkrcmar@redhat.com>
Mon, 9 Jan 2017 13:46:11 +0000 (14:46 +0100)
commitf160c7b7bb322bf079a5bb4dd34c58f17553f193
treedf8f36cae081baeec8859cc367175d6dcaf36c85
parent37f0e8fe6b10ee2ab52576caa721ee1282de74a6
kvm: x86: mmu: Lockless access tracking for Intel CPUs without EPT A bits.

This change implements lockless access tracking for Intel CPUs without EPT
A bits. This is achieved by marking the PTEs as not-present (but not
completely clearing them) when clear_flush_young() is called after marking
the pages as accessed. When an EPT Violation is generated as a result of
the VM accessing those pages, the PTEs are restored to their original values.

Signed-off-by: Junaid Shahid <junaids@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/include/asm/vmx.h
arch/x86/kvm/mmu.c
arch/x86/kvm/vmx.c
arch/x86/kvm/x86.c