Re: [PATCH 3/4] KVM: Switch to srcu-less get_dirty_log()

From: Takuya Yoshikawa
Date: Fri Mar 16 2012 - 03:49:22 EST


On Fri, 16 Mar 2012 15:30:45 +0800
Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx> wrote:

> >> There is a example:
> >>
> >> CPU A CPU B
> >> guest page is written by write-emulation
> >>
> >> hold mmu-lock and see dirty-bitmap
> >> is not be changed, then migration is
> >> completed.
> >
> > We do not allow this break.
> >
>
>
> Hmm? what can avoid this? Could you please point it out?

Stopping the guest before actualy migrating the guest means VCPU threads
must be back in the userspace at the moment, no?

So when the final GET_DIRTY_LOG is being executed, thread A cannot be
in KVM.

> The problem is the guest page is written before dirty-bitmap is set,
> we may log the dirty page in this window like above case...

Exactly, but the next GET_DIRTY_LOG call can take that because, as I
wrote above, at this time the GET_DIRTY_LOG must not be the final one.

Makes sense?

Takuya
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/