Messages in this thread | | | Date | Wed, 07 Oct 2009 14:51:52 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [Xen-devel] Re: [PATCH 3/5] x86/pvclock: add vsyscall implementation |
| |
On 10/07/09 14:37, Avi Kivity wrote: > If the guest does a RMW on the version, but the host does not (copying > it from somewhere else), then the guest RMW can be lost. > > Looking at the code, that's what kvm does: > > vcpu->hv_clock.version += 2; > > shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0); > > memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock, > sizeof(vcpu->hv_clock)); > > so a guest-side ++version can be lost.
I see, yes. The Xen code explicitly reads back the guest version and increments that (I realize now that's what you meant by guest-private version). If you were to have a second version number it would have to be separated as well to avoid being overwritten by the hypervisor.
J
| |