linux/arch/x86/kvm
Rik van Riel 6316e1c8c6 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>
2010-03-01 12:36:08 -03:00
..
emulate.c KVM: Move cr0/cr4/efer related helpers to x86.h 2010-03-01 12:36:04 -03:00
i8254.c KVM: convert slots_lock to a mutex 2010-03-01 12:35:45 -03:00
i8254.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
i8259.c KVM: convert slots_lock to a mutex 2010-03-01 12:35:45 -03:00
irq.c KVM: Remove irq_pending bitmap 2009-06-10 11:48:57 +03:00
irq.h KVM: x86: disallow multiple KVM_CREATE_IRQCHIP 2009-12-03 09:32:23 +02:00
Kconfig KVM: Add KVM_MMIO kconfig item 2010-03-01 12:35:41 -03:00
kvm_cache_regs.h KVM: Optimize kvm_read_cr[04]_bits() 2010-03-01 12:36:05 -03:00
kvm_timer.h KVM: Use pointer to vcpu instead of vcpu_id in timer code. 2009-09-10 08:32:52 +03:00
lapic.c KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
lapic.h KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
Makefile KVM: Move assigned device code to own file 2009-12-03 09:32:09 +02:00
mmu.c KVM: VMX: emulate accessed bit for EPT 2010-03-01 12:36:08 -03:00
mmu.h KVM: Move cr0/cr4/efer related helpers to x86.h 2010-03-01 12:36:04 -03:00
mmutrace.h KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
paging_tmpl.h KVM: rename is_writeble_pte() to is_writable_pte() 2010-03-01 12:36:00 -03:00
svm.c KVM: Trace failed msr reads and writes 2010-03-01 12:36:06 -03:00
timer.c KVM: Drop useless atomic test from timer function 2009-09-10 08:32:57 +03:00
trace.h KVM: Trace failed msr reads and writes 2010-03-01 12:36:06 -03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: Remove redundant test in vmx_set_efer() 2010-03-01 12:36:07 -03:00
x86.c KVM: fix kvm_fix_hypercall() to return X86EMUL_* 2010-03-01 12:36:07 -03:00
x86.h KVM: Rename vcpu->shadow_efer to efer 2010-03-01 12:36:04 -03:00