diff options
author | Bandan Das <bsd@redhat.com> | 2017-05-05 15:25:13 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2017-05-09 11:54:16 +0200 |
commit | bab4165e2f031905bd0a2bb8b6ad65c5c8cfa870 (patch) | |
tree | 266fc7f10baa2e14d42f28ca23ad5f50cad16d7b /arch/x86/kvm/mmu.c | |
parent | c7c2c709b60ed2d7e6e6871496f0e963cfad121f (diff) | |
download | lwn-bab4165e2f031905bd0a2bb8b6ad65c5c8cfa870.tar.gz lwn-bab4165e2f031905bd0a2bb8b6ad65c5c8cfa870.zip |
kvm: x86: Add a hook for arch specific dirty logging emulation
When KVM updates accessed/dirty bits, this hook can be used
to invoke an arch specific function that implements/emulates
dirty logging such as PML.
Signed-off-by: Bandan Das <bsd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r-- | arch/x86/kvm/mmu.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 558676538fca..5d3376f67794 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -1498,6 +1498,21 @@ void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm, kvm_mmu_write_protect_pt_masked(kvm, slot, gfn_offset, mask); } +/** + * kvm_arch_write_log_dirty - emulate dirty page logging + * @vcpu: Guest mode vcpu + * + * Emulate arch specific page modification logging for the + * nested hypervisor + */ +int kvm_arch_write_log_dirty(struct kvm_vcpu *vcpu) +{ + if (kvm_x86_ops->write_log_dirty) + return kvm_x86_ops->write_log_dirty(vcpu); + + return 0; +} + bool kvm_mmu_slot_gfn_write_protect(struct kvm *kvm, struct kvm_memory_slot *slot, u64 gfn) { |