KVM: VMX: emulate accessed bit for EPT
authorRik van Riel <riel@redhat.com>
Wed, 3 Feb 2010 21:11:03 +0000 (16:11 -0500)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 1 Mar 2010 15:36:08 +0000 (12:36 -0300)
commit6316e1c8c6af6ccb55ff8564231710660608f46c
treeeda5c9c5be2f2f11d820899515a4923d22467e8c
parent8f0b1ab6fb045a1324d9435ba00c2940783b0041
KVM: VMX: emulate accessed bit for EPT

Currently KVM pretends that pages with EPT mappings never got
accessed.  This has some side effects in the VM, like swapping
out actively used guest pages and needlessly breaking up actively
used hugepages.

We can avoid those very costly side effects by emulating the
accessed bit for EPT PTEs, which should only be slightly costly
because pages pass through page_referenced infrequently.

TLB flushing is taken care of by kvm_mmu_notifier_clear_flush_young().

This seems to help prevent KVM guests from being swapped out when
they should not on my system.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/mmu.c