Commit b7e60c5a authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Paolo Bonzini

KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR

Initialize kvmclock base, on kvmclock system MSR write time,
so that the guest sees kvmclock counting from zero.

This matches baremetal behaviour when kvmclock in guest
sets sched clock stable.
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
[Remove unnecessary comment. - Paolo]
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 0ad83caa
...@@ -1700,6 +1700,8 @@ static int kvm_guest_time_update(struct kvm_vcpu *v) ...@@ -1700,6 +1700,8 @@ static int kvm_guest_time_update(struct kvm_vcpu *v)
vcpu->pvclock_set_guest_stopped_request = false; vcpu->pvclock_set_guest_stopped_request = false;
} }
pvclock_flags |= PVCLOCK_COUNTS_FROM_ZERO;
/* If the host uses TSC clocksource, then it is stable */ /* If the host uses TSC clocksource, then it is stable */
if (use_master_clock) if (use_master_clock)
pvclock_flags |= PVCLOCK_TSC_STABLE_BIT; pvclock_flags |= PVCLOCK_TSC_STABLE_BIT;
...@@ -2282,6 +2284,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) ...@@ -2282,6 +2284,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
&vcpu->requests); &vcpu->requests);
ka->boot_vcpu_runs_old_kvmclock = tmp; ka->boot_vcpu_runs_old_kvmclock = tmp;
ka->kvmclock_offset = -get_kernel_ns();
} }
vcpu->arch.time = data; vcpu->arch.time = data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment