From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Smarduch Subject: Re: [PATCH v13 2/7] KVM: Add generic support for dirty page logging Date: Fri, 07 Nov 2014 10:55:15 -0800 Message-ID: <545D1593.7030604@samsung.com> References: <1415320848-13813-1-git-send-email-m.smarduch@samsung.com> <1415320848-13813-3-git-send-email-m.smarduch@samsung.com> <20141107100721.44c34175.cornelia.huck@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: pbonzini@redhat.com, james.hogan@imgtec.com, christoffer.dall@linaro.org, agraf@suse.de, marc.zyngier@arm.com, borntraeger@de.ibm.com, catalin.marinas@arm.com, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, kvm-ia64@vger.kernel.org, linux-arm-kernel@lists.infradead.org, steve.capper@arm.com, peter.maydell@linaro.org To: Cornelia Huck Return-path: In-reply-to: <20141107100721.44c34175.cornelia.huck@de.ibm.com> Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 11/07/2014 01:07 AM, Cornelia Huck wrote: > On Thu, 06 Nov 2014 16:40:43 -0800 > Mario Smarduch wrote: > >> kvm_get_dirty_log() provides generic handling of dirty bitmap, currently reused >> by several architectures. Building on that we intrdoduce >> kvm_get_dirty_log_protect() adding write protection to mark these pages dirty >> for future write access, before next KVM_GET_DIRTY_LOG ioctl call from user >> space. >> >> Signed-off-by: Mario Smarduch >> --- >> include/linux/kvm_host.h | 9 +++++ >> virt/kvm/kvm_main.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 104 insertions(+) >> > >> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >> index 887df87..f017760 100644 >> --- a/virt/kvm/kvm_main.c >> +++ b/virt/kvm/kvm_main.c >> @@ -981,6 +981,101 @@ out: >> } >> EXPORT_SYMBOL_GPL(kvm_get_dirty_log); >> >> +#if defined(CONFIG_S390) || defined(CONFIG_PPC) || defined(CONFIG_MIPS) || \ >> + defined(CONFIG_IA64) || defined(CONFIG_X86) || defined(CONFIG_ARM) || \ >> + defined(CONFIG_ARM64) > > Does this deserve a config symbol that can be selected by architectures > actually using kvm_get_dirty_log_protect()? I.e., > > #ifndef CONFIG_KVM_ARCH_DIRTY_LOG_PROTECT > > or so? Yes definitely, not sure why I went this way after using Kconfig defines before. > >> +/* >> + * For architectures that don't use kvm_get_dirty_log_protect() for dirty page >> + * logging, calling this function is illegal. Otherwise the function is defined >> + * in arch subtree and this restriction is removed. >> + */ > > What about > > /* > * For architectures that don't use kvm_get_dirty_log_protect() for dirty page > * logging, we must never end up calling this function. Architectures that do > * use it define their own version of this function. > */ > > instead Yeah that reads better, getting the illegal out of there. > >> +void kvm_arch_mmu_write_protect_pt_masked(struct kvm *kvm, >> + struct kvm_memory_slot *slot, >> + gfn_t gfn_offset, >> + unsigned long mask) >> +{ >> + BUG(); >> +} >> +#endif >> + > (...) >