KVM: MMU: Add mmu help functions to support PML
authorKai Huang <kai.huang@linux.intel.com>
Wed, 28 Jan 2015 02:54:24 +0000 (10:54 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 29 Jan 2015 14:31:29 +0000 (15:31 +0100)
commitf4b4b1808690c37c7c703d43789c1988c5e7fdeb
tree1f41b6359a38dc8ed572bf861b2a13787c227630
parent3b0f1d01e501792d8d89ab4371bc9e8cd2a10032
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>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/mmu.c