All of lore.kernel.org
 help / color / mirror / Atom feed
* kvm: odd time values since "kvmclock: set scheduler clock stable"
@ 2015-05-12 23:17 Sasha Levin
  2015-05-13 12:58 ` Luiz Capitulino
  2015-05-18 22:39 ` Marcelo Tosatti
  0 siblings, 2 replies; 13+ messages in thread
From: Sasha Levin @ 2015-05-12 23:17 UTC (permalink / raw)
  To: KVM General, LKML; +Cc: mtosatti, Paolo Bonzini, lcapitulino

Hi all,

I'm seeing odd jump in time values during boot of a KVM guest:

[...]
[    0.000000] tsc: Detected 2260.998 MHz processor
[3376355.247558] Calibrating delay loop (skipped) preset value..
[...]

I've bisected it to:


commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4
Author: Luiz Capitulino <lcapitulino@redhat.com>
Date:   Thu Apr 23 17:12:42 2015 -0400

    kvmclock: set scheduler clock stable

    If you try to enable NOHZ_FULL on a guest today, you'll get
    the following error when the guest tries to deactivate the
    scheduler tick:

     WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
     NO_HZ FULL will not work with unstable sched clock
     CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
     Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
     Workqueue: events flush_to_ldisc
      ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
      ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
      0000000000000000 0000000000000003 0000000000000001 0000000000000001
     Call Trace:
      <IRQ>  [<ffffffff814e6ba0>] dump_stack+0x4f/0x7b
      [<ffffffff8104d095>] warn_slowpath_common+0x85/0xc0
      [<ffffffff8104d146>] warn_slowpath_fmt+0x46/0x50
      [<ffffffff810bd2a9>] can_stop_full_tick+0xb9/0x290
      [<ffffffff810bd9ed>] tick_nohz_irq_exit+0x8d/0xb0
      [<ffffffff810511c5>] irq_exit+0xc5/0x130
      [<ffffffff814f180a>] smp_apic_timer_interrupt+0x4a/0x60
      [<ffffffff814eff5e>] apic_timer_interrupt+0x6e/0x80
      <EOI>  [<ffffffff814ee5d1>] ? _raw_spin_unlock_irqrestore+0x31/0x60
      [<ffffffff8108bbc8>] __wake_up+0x48/0x60
      [<ffffffff8134836c>] n_tty_receive_buf_common+0x49c/0xba0
      [<ffffffff8134a6bf>] ? tty_ldisc_ref+0x1f/0x70
      [<ffffffff81348a84>] n_tty_receive_buf2+0x14/0x20
      [<ffffffff8134b390>] flush_to_ldisc+0xe0/0x120
      [<ffffffff81064d05>] process_one_work+0x1d5/0x540
      [<ffffffff81064c81>] ? process_one_work+0x151/0x540
      [<ffffffff81065191>] worker_thread+0x121/0x470
      [<ffffffff81065070>] ? process_one_work+0x540/0x540
      [<ffffffff8106b4df>] kthread+0xef/0x110
      [<ffffffff8106b3f0>] ? __kthread_parkme+0xa0/0xa0
      [<ffffffff814ef4f2>] ret_from_fork+0x42/0x70
      [<ffffffff8106b3f0>] ? __kthread_parkme+0xa0/0xa0
     ---[ end trace 06e3507544a38866 ]---

    However, it turns out that kvmclock does provide a stable
    sched_clock callback. So, let the scheduler know this which
    in turn makes NOHZ_FULL work in the guest.

    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


Thanks,
Sasha

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-12 23:17 kvm: odd time values since "kvmclock: set scheduler clock stable" Sasha Levin
@ 2015-05-13 12:58 ` Luiz Capitulino
  2015-05-13 15:38   ` Sasha Levin
  2015-05-13 17:16   ` Paolo Bonzini
  2015-05-18 22:39 ` Marcelo Tosatti
  1 sibling, 2 replies; 13+ messages in thread
From: Luiz Capitulino @ 2015-05-13 12:58 UTC (permalink / raw)
  To: Sasha Levin; +Cc: KVM General, LKML, mtosatti, Paolo Bonzini

On Tue, 12 May 2015 19:17:24 -0400
Sasha Levin <sasha.levin@oracle.com> wrote:

> Hi all,
> 
> I'm seeing odd jump in time values during boot of a KVM guest:
> 
> [...]
> [    0.000000] tsc: Detected 2260.998 MHz processor
> [3376355.247558] Calibrating delay loop (skipped) preset value..
> [...]
> 
> I've bisected it to:

Thanks for bisecting. You just boot a guest to reproduce this? How
many vCPUs does the guest have?

Paolo, I think it's better to drop this patch for now.

> 
> 
> commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4
> Author: Luiz Capitulino <lcapitulino@redhat.com>
> Date:   Thu Apr 23 17:12:42 2015 -0400
> 
>     kvmclock: set scheduler clock stable
> 
>     If you try to enable NOHZ_FULL on a guest today, you'll get
>     the following error when the guest tries to deactivate the
>     scheduler tick:
> 
>      WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
>      NO_HZ FULL will not work with unstable sched clock
>      CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
>      Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
>      Workqueue: events flush_to_ldisc
>       ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
>       ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
>       0000000000000000 0000000000000003 0000000000000001 0000000000000001
>      Call Trace:
>       <IRQ>  [<ffffffff814e6ba0>] dump_stack+0x4f/0x7b
>       [<ffffffff8104d095>] warn_slowpath_common+0x85/0xc0
>       [<ffffffff8104d146>] warn_slowpath_fmt+0x46/0x50
>       [<ffffffff810bd2a9>] can_stop_full_tick+0xb9/0x290
>       [<ffffffff810bd9ed>] tick_nohz_irq_exit+0x8d/0xb0
>       [<ffffffff810511c5>] irq_exit+0xc5/0x130
>       [<ffffffff814f180a>] smp_apic_timer_interrupt+0x4a/0x60
>       [<ffffffff814eff5e>] apic_timer_interrupt+0x6e/0x80
>       <EOI>  [<ffffffff814ee5d1>] ? _raw_spin_unlock_irqrestore+0x31/0x60
>       [<ffffffff8108bbc8>] __wake_up+0x48/0x60
>       [<ffffffff8134836c>] n_tty_receive_buf_common+0x49c/0xba0
>       [<ffffffff8134a6bf>] ? tty_ldisc_ref+0x1f/0x70
>       [<ffffffff81348a84>] n_tty_receive_buf2+0x14/0x20
>       [<ffffffff8134b390>] flush_to_ldisc+0xe0/0x120
>       [<ffffffff81064d05>] process_one_work+0x1d5/0x540
>       [<ffffffff81064c81>] ? process_one_work+0x151/0x540
>       [<ffffffff81065191>] worker_thread+0x121/0x470
>       [<ffffffff81065070>] ? process_one_work+0x540/0x540
>       [<ffffffff8106b4df>] kthread+0xef/0x110
>       [<ffffffff8106b3f0>] ? __kthread_parkme+0xa0/0xa0
>       [<ffffffff814ef4f2>] ret_from_fork+0x42/0x70
>       [<ffffffff8106b3f0>] ? __kthread_parkme+0xa0/0xa0
>      ---[ end trace 06e3507544a38866 ]---
> 
>     However, it turns out that kvmclock does provide a stable
>     sched_clock callback. So, let the scheduler know this which
>     in turn makes NOHZ_FULL work in the guest.
> 
>     Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
>     Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
>     Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> 
> 
> Thanks,
> Sasha
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-13 12:58 ` Luiz Capitulino
@ 2015-05-13 15:38   ` Sasha Levin
  2015-05-13 17:16   ` Paolo Bonzini
  1 sibling, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2015-05-13 15:38 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: KVM General, LKML, mtosatti, Paolo Bonzini

On 05/13/2015 08:58 AM, Luiz Capitulino wrote:
> On Tue, 12 May 2015 19:17:24 -0400
> Sasha Levin <sasha.levin@oracle.com> wrote:
> 
>> > Hi all,
>> > 
>> > I'm seeing odd jump in time values during boot of a KVM guest:
>> > 
>> > [...]
>> > [    0.000000] tsc: Detected 2260.998 MHz processor
>> > [3376355.247558] Calibrating delay loop (skipped) preset value..
>> > [...]
>> > 
>> > I've bisected it to:
> Thanks for bisecting. You just boot a guest to reproduce this? How
> many vCPUs does the guest have?
> 
> Paolo, I think it's better to drop this patch for now.
> 

Yup, just booting a 32 VCPU guest - it happens very early during boot.


Thanks,
Sasha

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-13 12:58 ` Luiz Capitulino
  2015-05-13 15:38   ` Sasha Levin
@ 2015-05-13 17:16   ` Paolo Bonzini
  1 sibling, 0 replies; 13+ messages in thread
From: Paolo Bonzini @ 2015-05-13 17:16 UTC (permalink / raw)
  To: Luiz Capitulino, Sasha Levin; +Cc: KVM General, LKML, mtosatti



On 13/05/2015 14:58, Luiz Capitulino wrote:
> On Tue, 12 May 2015 19:17:24 -0400
> Sasha Levin <sasha.levin@oracle.com> wrote:
> 
>> Hi all,
>>
>> I'm seeing odd jump in time values during boot of a KVM guest:
>>
>> [...]
>> [    0.000000] tsc: Detected 2260.998 MHz processor
>> [3376355.247558] Calibrating delay loop (skipped) preset value..
>> [...]
>>
>> I've bisected it to:
> 
> Thanks for bisecting. You just boot a guest to reproduce this? How
> many vCPUs does the guest have?
> 
> Paolo, I think it's better to drop this patch for now.

Ok, reverted.

Paolo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-12 23:17 kvm: odd time values since "kvmclock: set scheduler clock stable" Sasha Levin
  2015-05-13 12:58 ` Luiz Capitulino
@ 2015-05-18 22:39 ` Marcelo Tosatti
  2015-05-18 23:45   ` Sasha Levin
  1 sibling, 1 reply; 13+ messages in thread
From: Marcelo Tosatti @ 2015-05-18 22:39 UTC (permalink / raw)
  To: Sasha Levin; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
> Hi all,
> 
> I'm seeing odd jump in time values during boot of a KVM guest:
> 
> [...]
> [    0.000000] tsc: Detected 2260.998 MHz processor
> [3376355.247558] Calibrating delay loop (skipped) preset value..
> [...]
> 
> I've bisected it to:

Paolo, Sasha,

Although this might seem undesirable, there is no requirement 
for sched_clock to initialize at 0:

"
 *
 * There is no strict promise about the base, although it tends to start
 * at 0 on boot (but people really shouldn't rely on that).
 *
"

Sasha, are you seeing any problem other than the apparent time jump?



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-18 22:39 ` Marcelo Tosatti
@ 2015-05-18 23:45   ` Sasha Levin
  2015-05-19  0:13     ` Marcelo Tosatti
  0 siblings, 1 reply; 13+ messages in thread
From: Sasha Levin @ 2015-05-18 23:45 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
> On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
>> Hi all,
>>
>> I'm seeing odd jump in time values during boot of a KVM guest:
>>
>> [...]
>> [    0.000000] tsc: Detected 2260.998 MHz processor
>> [3376355.247558] Calibrating delay loop (skipped) preset value..
>> [...]
>>
>> I've bisected it to:
> 
> Paolo, Sasha,
> 
> Although this might seem undesirable, there is no requirement 
> for sched_clock to initialize at 0:
> 
> "
>  *
>  * There is no strict promise about the base, although it tends to start
>  * at 0 on boot (but people really shouldn't rely on that).
>  *
> "
> 
> Sasha, are you seeing any problem other than the apparent time jump?

Nope, but I've looked at it again and it seems that it jumps to the host's
clock (that is, in the example above the 3376355 value was the host's clock
value).


Thanks,
Sasha


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-18 23:45   ` Sasha Levin
@ 2015-05-19  0:13     ` Marcelo Tosatti
  2015-05-19  2:02       ` Sasha Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Marcelo Tosatti @ 2015-05-19  0:13 UTC (permalink / raw)
  To: Sasha Levin; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

GOn Mon, May 18, 2015 at 07:45:41PM -0400, Sasha Levin wrote:
> On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
> > On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
> >> Hi all,
> >>
> >> I'm seeing odd jump in time values during boot of a KVM guest:
> >>
> >> [...]
> >> [    0.000000] tsc: Detected 2260.998 MHz processor
> >> [3376355.247558] Calibrating delay loop (skipped) preset value..
> >> [...]
> >>
> >> I've bisected it to:
> > 
> > Paolo, Sasha,
> > 
> > Although this might seem undesirable, there is no requirement 
> > for sched_clock to initialize at 0:
> > 
> > "
> >  *
> >  * There is no strict promise about the base, although it tends to start
> >  * at 0 on boot (but people really shouldn't rely on that).
> >  *
> > "
> > 
> > Sasha, are you seeing any problem other than the apparent time jump?
> 
> Nope, but I've looked at it again and it seems that it jumps to the host's
> clock (that is, in the example above the 3376355 value was the host's clock
> value).
> 
> 
> Thanks,
> Sasha

Sasha, thats right. Its the host monotonic clock.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-19  0:13     ` Marcelo Tosatti
@ 2015-05-19  2:02       ` Sasha Levin
  2015-05-19  2:13         ` Sasha Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Sasha Levin @ 2015-05-19  2:02 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

On 05/18/2015 08:13 PM, Marcelo Tosatti wrote:
> GOn Mon, May 18, 2015 at 07:45:41PM -0400, Sasha Levin wrote:
>> > On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
>>> > > On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
>>>> > >> Hi all,
>>>> > >>
>>>> > >> I'm seeing odd jump in time values during boot of a KVM guest:
>>>> > >>
>>>> > >> [...]
>>>> > >> [    0.000000] tsc: Detected 2260.998 MHz processor
>>>> > >> [3376355.247558] Calibrating delay loop (skipped) preset value..
>>>> > >> [...]
>>>> > >>
>>>> > >> I've bisected it to:
>>> > > 
>>> > > Paolo, Sasha,
>>> > > 
>>> > > Although this might seem undesirable, there is no requirement 
>>> > > for sched_clock to initialize at 0:
>>> > > 
>>> > > "
>>> > >  *
>>> > >  * There is no strict promise about the base, although it tends to start
>>> > >  * at 0 on boot (but people really shouldn't rely on that).
>>> > >  *
>>> > > "
>>> > > 
>>> > > Sasha, are you seeing any problem other than the apparent time jump?
>> > 
>> > Nope, but I've looked at it again and it seems that it jumps to the host's
>> > clock (that is, in the example above the 3376355 value was the host's clock
>> > value).
>> > 
>> > 
>> > Thanks,
>> > Sasha
> Sasha, thats right. Its the host monotonic clock.

It's worth figuring out if (what) userspace breaks on that. I know it says that
you shouldn't rely on that, but I'd happily place a bet on at least one userspace
treating it as "seconds since boot" or something similar.


Thanks,
Sasha


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-19  2:02       ` Sasha Levin
@ 2015-05-19  2:13         ` Sasha Levin
  2015-05-22  0:40           ` KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR Marcelo Tosatti
  2015-05-22  0:41           ` kvm: odd time values since "kvmclock: set scheduler clock stable" Marcelo Tosatti
  0 siblings, 2 replies; 13+ messages in thread
From: Sasha Levin @ 2015-05-19  2:13 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

On 05/18/2015 10:02 PM, Sasha Levin wrote:
> On 05/18/2015 08:13 PM, Marcelo Tosatti wrote:
>> GOn Mon, May 18, 2015 at 07:45:41PM -0400, Sasha Levin wrote:
>>>> On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
>>>>>> On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I'm seeing odd jump in time values during boot of a KVM guest:
>>>>>>>>
>>>>>>>> [...]
>>>>>>>> [    0.000000] tsc: Detected 2260.998 MHz processor
>>>>>>>> [3376355.247558] Calibrating delay loop (skipped) preset value..
>>>>>>>> [...]
>>>>>>>>
>>>>>>>> I've bisected it to:
>>>>>>
>>>>>> Paolo, Sasha,
>>>>>>
>>>>>> Although this might seem undesirable, there is no requirement 
>>>>>> for sched_clock to initialize at 0:
>>>>>>
>>>>>> "
>>>>>>  *
>>>>>>  * There is no strict promise about the base, although it tends to start
>>>>>>  * at 0 on boot (but people really shouldn't rely on that).
>>>>>>  *
>>>>>> "
>>>>>>
>>>>>> Sasha, are you seeing any problem other than the apparent time jump?
>>>>
>>>> Nope, but I've looked at it again and it seems that it jumps to the host's
>>>> clock (that is, in the example above the 3376355 value was the host's clock
>>>> value).
>>>>
>>>>
>>>> Thanks,
>>>> Sasha
>> Sasha, thats right. Its the host monotonic clock.
> 
> It's worth figuring out if (what) userspace breaks on that. I know it says that
> you shouldn't rely on that, but I'd happily place a bet on at least one userspace
> treating it as "seconds since boot" or something similar.

Didn't need to go far... In the guest:

# date
Tue May 19 02:11:46 UTC 2015
# echo hi > /dev/kmsg
[3907533.080112] hi
# dmesg -T
[Fri Jul  3 07:33:41 2015] hi



Thanks,
Sasha

^ permalink raw reply	[flat|nested] 13+ messages in thread

* KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR
  2015-05-19  2:13         ` Sasha Levin
@ 2015-05-22  0:40           ` Marcelo Tosatti
  2015-05-22  0:41           ` kvm: odd time values since "kvmclock: set scheduler clock stable" Marcelo Tosatti
  1 sibling, 0 replies; 13+ messages in thread
From: Marcelo Tosatti @ 2015-05-22  0:40 UTC (permalink / raw)
  To: Sasha Levin; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino


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: Marcelo Tosatti <mtosatti@redhat.com>

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index cc2c759..ea40d24 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -2188,6 +2188,8 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 					&vcpu->requests);
 
 			ka->boot_vcpu_runs_old_kvmclock = tmp;
+
+			ka->kvmclock_offset = get_kernel_ns();
 		}
 
 		vcpu->arch.time = data;

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-19  2:13         ` Sasha Levin
  2015-05-22  0:40           ` KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR Marcelo Tosatti
@ 2015-05-22  0:41           ` Marcelo Tosatti
  2015-05-26 13:21             ` Luiz Capitulino
  1 sibling, 1 reply; 13+ messages in thread
From: Marcelo Tosatti @ 2015-05-22  0:41 UTC (permalink / raw)
  To: Sasha Levin; +Cc: KVM General, LKML, Paolo Bonzini, lcapitulino

On Mon, May 18, 2015 at 10:13:03PM -0400, Sasha Levin wrote:
> On 05/18/2015 10:02 PM, Sasha Levin wrote:
> > On 05/18/2015 08:13 PM, Marcelo Tosatti wrote:
> >> GOn Mon, May 18, 2015 at 07:45:41PM -0400, Sasha Levin wrote:
> >>>> On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
> >>>>>> On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
> >>>>>>>> Hi all,
> >>>>>>>>
> >>>>>>>> I'm seeing odd jump in time values during boot of a KVM guest:
> >>>>>>>>
> >>>>>>>> [...]
> >>>>>>>> [    0.000000] tsc: Detected 2260.998 MHz processor
> >>>>>>>> [3376355.247558] Calibrating delay loop (skipped) preset value..
> >>>>>>>> [...]
> >>>>>>>>
> >>>>>>>> I've bisected it to:
> >>>>>>
> >>>>>> Paolo, Sasha,
> >>>>>>
> >>>>>> Although this might seem undesirable, there is no requirement 
> >>>>>> for sched_clock to initialize at 0:
> >>>>>>
> >>>>>> "
> >>>>>>  *
> >>>>>>  * There is no strict promise about the base, although it tends to start
> >>>>>>  * at 0 on boot (but people really shouldn't rely on that).
> >>>>>>  *
> >>>>>> "
> >>>>>>
> >>>>>> Sasha, are you seeing any problem other than the apparent time jump?
> >>>>
> >>>> Nope, but I've looked at it again and it seems that it jumps to the host's
> >>>> clock (that is, in the example above the 3376355 value was the host's clock
> >>>> value).
> >>>>
> >>>>
> >>>> Thanks,
> >>>> Sasha
> >> Sasha, thats right. Its the host monotonic clock.
> > 
> > It's worth figuring out if (what) userspace breaks on that. I know it says that
> > you shouldn't rely on that, but I'd happily place a bet on at least one userspace
> > treating it as "seconds since boot" or something similar.
> 
> Didn't need to go far... In the guest:
> 
> # date
> Tue May 19 02:11:46 UTC 2015
> # echo hi > /dev/kmsg
> [3907533.080112] hi
> # dmesg -T
> [Fri Jul  3 07:33:41 2015] hi

Sasha,

Can you give the suggested patch (hypervisor patch...) a try please?
(with a patched guest, obviously).

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



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-22  0:41           ` kvm: odd time values since "kvmclock: set scheduler clock stable" Marcelo Tosatti
@ 2015-05-26 13:21             ` Luiz Capitulino
  2015-05-26 13:25               ` Sasha Levin
  0 siblings, 1 reply; 13+ messages in thread
From: Luiz Capitulino @ 2015-05-26 13:21 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: Sasha Levin, KVM General, LKML, Paolo Bonzini

On Thu, 21 May 2015 21:41:23 -0300
Marcelo Tosatti <mtosatti@redhat.com> wrote:

> On Mon, May 18, 2015 at 10:13:03PM -0400, Sasha Levin wrote:
> > On 05/18/2015 10:02 PM, Sasha Levin wrote:
> > > On 05/18/2015 08:13 PM, Marcelo Tosatti wrote:
> > >> GOn Mon, May 18, 2015 at 07:45:41PM -0400, Sasha Levin wrote:
> > >>>> On 05/18/2015 06:39 PM, Marcelo Tosatti wrote:
> > >>>>>> On Tue, May 12, 2015 at 07:17:24PM -0400, Sasha Levin wrote:
> > >>>>>>>> Hi all,
> > >>>>>>>>
> > >>>>>>>> I'm seeing odd jump in time values during boot of a KVM guest:
> > >>>>>>>>
> > >>>>>>>> [...]
> > >>>>>>>> [    0.000000] tsc: Detected 2260.998 MHz processor
> > >>>>>>>> [3376355.247558] Calibrating delay loop (skipped) preset value..
> > >>>>>>>> [...]
> > >>>>>>>>
> > >>>>>>>> I've bisected it to:
> > >>>>>>
> > >>>>>> Paolo, Sasha,
> > >>>>>>
> > >>>>>> Although this might seem undesirable, there is no requirement 
> > >>>>>> for sched_clock to initialize at 0:
> > >>>>>>
> > >>>>>> "
> > >>>>>>  *
> > >>>>>>  * There is no strict promise about the base, although it tends to start
> > >>>>>>  * at 0 on boot (but people really shouldn't rely on that).
> > >>>>>>  *
> > >>>>>> "
> > >>>>>>
> > >>>>>> Sasha, are you seeing any problem other than the apparent time jump?
> > >>>>
> > >>>> Nope, but I've looked at it again and it seems that it jumps to the host's
> > >>>> clock (that is, in the example above the 3376355 value was the host's clock
> > >>>> value).
> > >>>>
> > >>>>
> > >>>> Thanks,
> > >>>> Sasha
> > >> Sasha, thats right. Its the host monotonic clock.
> > > 
> > > It's worth figuring out if (what) userspace breaks on that. I know it says that
> > > you shouldn't rely on that, but I'd happily place a bet on at least one userspace
> > > treating it as "seconds since boot" or something similar.
> > 
> > Didn't need to go far... In the guest:
> > 
> > # date
> > Tue May 19 02:11:46 UTC 2015
> > # echo hi > /dev/kmsg
> > [3907533.080112] hi
> > # dmesg -T
> > [Fri Jul  3 07:33:41 2015] hi
> 
> Sasha,
> 
> Can you give the suggested patch (hypervisor patch...) a try please?
> (with a patched guest, obviously).
> 
> KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system
> MSR

I've tried your v2, it works for me. My test-case is very simple though:
I just boot a VM, log in and reboot. This reproduces the issue Sasha
reported 100% of the times for me (don't need multi-vcpu guest either).

Would be nice to hear from Sasha too.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: kvm: odd time values since "kvmclock: set scheduler clock stable"
  2015-05-26 13:21             ` Luiz Capitulino
@ 2015-05-26 13:25               ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2015-05-26 13:25 UTC (permalink / raw)
  To: Luiz Capitulino, Marcelo Tosatti; +Cc: KVM General, LKML, Paolo Bonzini

On 05/26/2015 09:21 AM, Luiz Capitulino wrote:
>> Sasha,
>> > 
>> > Can you give the suggested patch (hypervisor patch...) a try please?
>> > (with a patched guest, obviously).
>> > 
>> > KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system
>> > MSR
> I've tried your v2, it works for me. My test-case is very simple though:
> I just boot a VM, log in and reboot. This reproduces the issue Sasha
> reported 100% of the times for me (don't need multi-vcpu guest either).

Sorry for the delay, we had a long weekend here.

It seems to work fine here, no more jumps when booting.


Thanks,
Sasha

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-05-26 13:32 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-12 23:17 kvm: odd time values since "kvmclock: set scheduler clock stable" Sasha Levin
2015-05-13 12:58 ` Luiz Capitulino
2015-05-13 15:38   ` Sasha Levin
2015-05-13 17:16   ` Paolo Bonzini
2015-05-18 22:39 ` Marcelo Tosatti
2015-05-18 23:45   ` Sasha Levin
2015-05-19  0:13     ` Marcelo Tosatti
2015-05-19  2:02       ` Sasha Levin
2015-05-19  2:13         ` Sasha Levin
2015-05-22  0:40           ` KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR Marcelo Tosatti
2015-05-22  0:41           ` kvm: odd time values since "kvmclock: set scheduler clock stable" Marcelo Tosatti
2015-05-26 13:21             ` Luiz Capitulino
2015-05-26 13:25               ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.