From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: What's kvmclock's custom sched_clock for? Date: Thu, 7 Jan 2016 08:59:32 -0200 Message-ID: <20160107105932.GB6741@amt.cnet> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Radim Krcmar , kvm list To: Andy Lutomirski Return-path: Received: from mx1.redhat.com ([209.132.183.28]:47985 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751905AbcAGLDY (ORCPT ); Thu, 7 Jan 2016 06:03:24 -0500 Content-Disposition: inline In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On Thu, Jan 07, 2016 at 12:41:34AM -0800, Andy Lutomirski wrote: > On Wed, Jan 6, 2016 at 11:18 PM, Andy Lutomirski wrote: > > AFAICT KVM reliably passes a monotonic TSC through to guests, even if > > the host suspends. That's all that sched_clock needs, I think. > > > > So why does kvmclock have a custom sched_clock? > > > > On a related note, KVM doesn't pass the "invariant TSC" feature > > through to guests on my machine even though "invtsc" is set in QEMU > > and the kernel host code appears to support it. What gives? > > I think I solved part of the puzzle. KVM doesn't like to advertise > invtsc by default because that breaks migration. (Oddly, the end > result seems wrong -- with migration, the TSC doesn't stop, but it's > not constant, and X86_FEATURE_CONSTANT_TSC is nonetheless set, but > whatever.) So the scheduler clock doesn't get marked stable. Can you break down this sentence? QEMU commit 68bfd0ad4a1dcc4c328d5db85dc746b49c1ec07e target-i386: block migration and savevm if invariant tsc is exposed Invariant TSC documentation mentions that "invariant TSC will run at a constant rate in all ACPI P-, C-. and T-states". This is not the case if migration to a host with different TSC frequency is allowed, or if savevm is performed. So block migration/savevm. > Is that it? > > This still doesn't explain why even explicitly trying to set invtsc > doesn't seem to work. > > --Andy