Re: [PATCH RFC 04/15] KVM: Implement ring-based dirty memory tracking

From: Jason Wang
Date: Thu Dec 05 2019 - 08:13:25 EST



On 2019/12/5 äå8:08, Peter Xu wrote:
On Thu, Dec 05, 2019 at 02:51:15PM +0800, Jason Wang wrote:
On 2019/12/5 äå3:52, Peter Xu wrote:
On Wed, Dec 04, 2019 at 12:04:53PM +0100, Paolo Bonzini wrote:
On 04/12/19 11:38, Jason Wang wrote:
+ÂÂÂ entry = &ring->dirty_gfns[ring->dirty_index & (ring->size - 1)];
+ÂÂÂ entry->slot = slot;
+ÂÂÂ entry->offset = offset;
Haven't gone through the whole series, sorry if it was a silly question
but I wonder things like this will suffer from similar issue on
virtually tagged archs as mentioned in [1].
There is no new infrastructure to track the dirty pages---it's just a
different way to pass them to userspace.

Is this better to allocate the ring from userspace and set to KVM
instead? Then we can use copy_to/from_user() friends (a little bit slow
on recent CPUs).
Yeah, I don't think that would be better than mmap.
Yeah I agree, because I didn't see how copy_to/from_user() helped to
do icache/dcache flushings...

It looks to me one advantage is that exact the same VA is used by both
userspace and kernel so there will be no alias.
Hmm.. but what if the page is mapped more than once in user? Thanks,


Then it's the responsibility of userspace program to do the flush I think.

Thanks