On Mon, Feb 27, 2017 at 01:50:29PM +0100, Paolo Bonzini wrote:
> 
> 
> On 27/02/2017 13:43, Peter Zijlstra wrote:
> > On Mon, Feb 27, 2017 at 08:30:11PM +0800, Wanpeng Li wrote:
> > 
> >>> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> >>> index 2a5cafd..542710b 100644
> >>> --- a/arch/x86/kernel/kvmclock.c
> >>> +++ b/arch/x86/kernel/kvmclock.c
> >>> @@ -107,12 +107,12 @@ static inline void kvm_sched_clock_init(bool stable)
> >>>  {
> >>>         if (!stable) {
> >>>                 pv_time_ops.sched_clock = kvm_clock_read;
> >>> +               clear_sched_clock_stable();
> >>>                 return;
> >>>         }
> >>>
> >>>         kvm_sched_clock_offset = kvm_clock_read();
> >>>         pv_time_ops.sched_clock = kvm_sched_clock_read;
> >>> -       set_sched_clock_stable();
> >>
> >> This results in sched clock always unstable for kvm guest since there
> >> is no invariant tsc cpuid bit exposed for kvm guest currently. 
> > 
> > What the heck is KVM_FEATURE_CLOCKSOURCE_STABLE_BIT /
> > PVCLOCK_TSC_STABLE_BIT about then?
> 
> It checks that all the bugs in the host have been ironed out, and that
> the host itself supports invtsc.

But what does it mean if that is not so? That is, will kvm_clock_read()
still be stable even if !stable?

Reply via email to