KVM: allow userspace to adjust kvmclock offset
authorGlauber Costa <glommer@redhat.com>
Fri, 16 Oct 2009 19:28:36 +0000 (15:28 -0400)
committerAvi Kivity <avi@redhat.com>
Thu, 3 Dec 2009 07:32:19 +0000 (09:32 +0200)
commitafbcf7ab8d1bc8c2d04792f6d9e786e0adeb328d
tree14320a1c768562139a550fd0c576d6d52829d9ec
parentcd5a2685de4a642fd0bd763e8c19711ef08dbe27
KVM: allow userspace to adjust kvmclock offset

When we migrate a kvm guest that uses pvclock between two hosts, we may
suffer a large skew. This is because there can be significant differences
between the monotonic clock of the hosts involved. When a new host with
a much larger monotonic time starts running the guest, the view of time
will be significantly impacted.

Situation is much worse when we do the opposite, and migrate to a host with
a smaller monotonic clock.

This proposed ioctl will allow userspace to inform us what is the monotonic
clock value in the source host, so we can keep the time skew short, and
more importantly, never goes backwards. Userspace may also need to trigger
the current data, since from the first migration onwards, it won't be
reflected by a simple call to clock_gettime() anymore.

[marcelo: future-proof abi with a flags field]
[jan: fix KVM_GET_CLOCK by clearing flags field instead of checking it]

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Documentation/kvm/api.txt
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/x86.c
include/linux/kvm.h