linux/arch/x86/kvm
Kai Huang f4b4b18086 KVM: MMU: Add mmu help functions to support PML
This patch adds new mmu layer functions to clear/set D-bit for memory slot, and
to write protect superpages for memory slot.

In case of PML, CPU logs the dirty GPA automatically to PML buffer when CPU
updates D-bit from 0 to 1, therefore we don't have to write protect 4K pages,
instead, we only need to clear D-bit in order to log that GPA.

For superpages, we still write protect it and let page fault code to handle
dirty page logging, as we still need to split superpage to 4K pages in PML.

As PML is always enabled during guest's lifetime, to eliminate unnecessary PML
GPA logging, we set D-bit manually for the slot with dirty logging disabled.

Signed-off-by: Kai Huang <kai.huang@linux.intel.com>
Reviewed-by: Xiao Guangrong <guangrong.xiao@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-01-29 15:31:29 +01:00
..
assigned-dev.c KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
assigned-dev.h KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
cpuid.c KVM: cpuid: recompute CPUID 0xD.0:EBX,ECX 2014-12-05 13:57:49 +01:00
cpuid.h KVM: x86: Warn if guest virtual address space is not 48-bits 2014-09-24 14:07:48 +02:00
emulate.c KVM: x86: Emulation of call may use incorrect stack size 2015-01-26 12:17:34 +01:00
i8254.c KVM: x86: Improve thread safety in pit 2014-10-24 13:21:14 +02:00
i8254.h KVM: fold kvm_pit_timer into kvm_kpit_state 2012-08-01 00:21:07 -03:00
i8259.c KVM: inject ExtINT interrupt before APIC interrupts 2012-12-13 23:05:21 -02:00
ioapic.c kvm: remove CONFIG_X86 #ifdefs from files formerly shared with ia64 2014-11-21 18:07:26 +01:00
ioapic.h KVM: move APIC types to arch/x86/ 2014-12-18 09:39:51 +01:00
iommu.c kvm: iommu: Add cond_resched to legacy device assignment code 2015-01-27 21:31:12 +01:00
irq_comm.c kvm: remove CONFIG_X86 #ifdefs from files formerly shared with ia64 2014-11-21 18:07:26 +01:00
irq.c KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use 2014-08-05 15:00:24 +02:00
irq.h KVM: switch to symbolic name for irq_states size 2012-07-20 16:12:16 -03:00
Kconfig KVM: x86: switch to kvm_get_dirty_log_protect 2015-01-16 14:40:14 +01:00
kvm_cache_regs.h KVM: MMU: Do not unconditionally read PDPTE from guest memory 2011-09-25 19:18:01 +03:00
lapic.c kvm: x86: Remove kvm_make_request from lapic.c 2015-01-08 22:48:08 +01:00
lapic.h KVM: x86: add option to advance tscdeadline hrtimer expiration 2015-01-08 22:47:30 +01:00
Makefile kvm: x86: move assigned-dev.c and iommu.c to arch/x86/ 2014-11-23 18:33:36 +01:00
mmu_audit.c arch/x86: replace strict_strto calls 2014-08-08 15:57:28 -07:00
mmu.c KVM: MMU: Add mmu help functions to support PML 2015-01-29 15:31:29 +01:00
mmu.h KVM: x86: #PF error-code on R/W operations is wrong 2015-01-09 10:24:11 +01:00
mmutrace.h x86/kvm/tracing: Use helper function trace_seq_buffer_ptr() 2014-11-19 15:25:36 -05:00
paging_tmpl.h KVM: x86: Wrong assertion on paging_tmpl.h 2014-10-24 13:30:37 +02:00
pmu.c KVM: x86: Clarify PMU related features bit manipulation 2014-08-20 13:01:25 +02:00
svm.c KVM: x86: mmu: remove argument to kvm_init_shadow_mmu and kvm_init_shadow_ept_mmu 2015-01-08 22:48:02 +01:00
trace.h KVM: x86: add tracepoint to wait_lapic_expire 2015-01-08 22:48:01 +01:00
tss.h
vmx.c x86: kvm: vmx: Remove some unused functions 2015-01-19 11:09:36 +01:00
x86.c KVM: x86: 32-bit wraparound read/write not emulated correctly 2015-01-26 12:15:18 +01:00
x86.h kvm: x86: Remove kvm_make_request from lapic.c 2015-01-08 22:48:08 +01:00