From mboxrd@z Thu Jan 1 00:00:00 1970 From: Luiz Capitulino Subject: Re: kvm: odd time values since "kvmclock: set scheduler clock stable" Date: Wed, 13 May 2015 08:58:24 -0400 Message-ID: <20150513085824.7bd2d788@redhat.com> References: <55528A04.2060404@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: KVM General , LKML , mtosatti@redhat.com, Paolo Bonzini To: Sasha Levin Return-path: In-Reply-To: <55528A04.2060404@oracle.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Tue, 12 May 2015 19:17:24 -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: 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 > 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: > [] dump_stack+0x4f/0x7b > [] warn_slowpath_common+0x85/0xc0 > [] warn_slowpath_fmt+0x46/0x50 > [] can_stop_full_tick+0xb9/0x290 > [] tick_nohz_irq_exit+0x8d/0xb0 > [] irq_exit+0xc5/0x130 > [] smp_apic_timer_interrupt+0x4a/0x60 > [] apic_timer_interrupt+0x6e/0x80 > [] ? _raw_spin_unlock_irqrestore+0x31/0x60 > [] __wake_up+0x48/0x60 > [] n_tty_receive_buf_common+0x49c/0xba0 > [] ? tty_ldisc_ref+0x1f/0x70 > [] n_tty_receive_buf2+0x14/0x20 > [] flush_to_ldisc+0xe0/0x120 > [] process_one_work+0x1d5/0x540 > [] ? process_one_work+0x151/0x540 > [] worker_thread+0x121/0x470 > [] ? process_one_work+0x540/0x540 > [] kthread+0xef/0x110 > [] ? __kthread_parkme+0xa0/0xa0 > [] ret_from_fork+0x42/0x70 > [] ? __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 > Signed-off-by: Luiz Capitulino > Signed-off-by: Paolo Bonzini > > > Thanks, > Sasha >