[RFC/RFT PATCH 0/3] arm64: KVM: work around incoherency with uncached guest mappings
From: Andrew Jones <hidden>
Date: 2015-03-02 17:05:19
Also in:
kvm, kvmarm
From: Andrew Jones <hidden>
Date: 2015-03-02 17:05:19
Also in:
kvm, kvmarm
On Mon, Mar 02, 2015 at 05:55:44PM +0100, Laszlo Ersek wrote:
On 03/02/15 17:47, Paolo Bonzini wrote:quoted
Also, we may want to invalidate the cache for dirty pages before returning the dirty bitmap, and probably should do that directly in KVM_GET_DIRTY_LOG."I agree." If KVM_GET_DIRTY_LOG is supposed to be atomic fetch and clear (from userspace's aspect), then the cache invalidation should be an atomic part of it too (from the same aspect). (Sorry if I just said something incredibly stupid.)
With the path I'm headed down, all cache maintenance operations will be done before exiting to userspace (and after returning). I was actually already letting a feature creep into this PoC by setting KVM_MEM_LOG_DIRTY_PAGES when we see KVM_MEM_INCOHERENT has been set, and the region isn't readonly. The dirty log would then be used by KVM internally to know exactly which pages need to be invalidated before the exit. drew