From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56111) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c3poh-000712-5v for qemu-devel@nongnu.org; Mon, 07 Nov 2016 14:42:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c3poc-0001ZJ-9o for qemu-devel@nongnu.org; Mon, 07 Nov 2016 14:42:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35574) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c3poc-0001Z1-4J for qemu-devel@nongnu.org; Mon, 07 Nov 2016 14:42:46 -0500 Date: Mon, 7 Nov 2016 17:41:01 -0200 From: Marcelo Tosatti Message-ID: <20161107194058.GB28327@amt.cnet> References: <20161104094322.GA16930@amt.cnet> <20161104165933.GA3027@amt.cnet> <20161107154610.GG2054@work-vm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161107154610.GG2054@work-vm> Subject: Re: [Qemu-devel] [QEMU PATCH v2] kvmclock: advance clock by time window between vm_stop and pre_save List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: kvm@vger.kernel.org, qemu-devel , Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= , Juan Quintela , Eduardo Habkost On Mon, Nov 07, 2016 at 03:46:11PM +0000, Dr. David Alan Gilbert wrote: > * Marcelo Tosatti (mtosatti@redhat.com) wrote: > > This patch, relative to pre-copy migration codepath, > > measures the time between vm_stop() and pre_save(), > > which includes copying the remaining RAM to destination, > > and advances the clock by that amount. > > > > In a VM with 5 seconds downtime, this reduces the guest > > clock difference on destination from 5s to 0.2s. > > > > Tested with Linux and Windows 2012 R2 guests with -cpu XXX,+hv-time. > > One thing that bothers me is that it's only this clock that's > getting corrected; doesn't it cause things to get upset when > one clock moves and the others dont? If you are correlating the clocks, then yes. Older Linux guests get upset (marking the TSC clocksource unstable because the watchdog checks TSC vs kvmclock), but there is a workaround for it in newer guests (kvmclock interface to notify watchdog to not complain). Note marking TSC clocksource unstable on older guests is harmless because kvmclock is the standard clocksource. For Windows guests, i don't know that Windows correlates between different clocks. That is, there is relative control as to which software reads kvmclock or Windows TIMER MSR, so i don't see the need to advance every clock exposed. > Shouldn't the pause delay be recorded somewhere architecturally > independent and then be a thing that kvm-clock happens to use and > other clocks might as well? In theory, yes. In practice, i don't see the need for this...