[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: fix initialization of wallclock time for PVHVM on migration



On Tue, Jun 11, 2013 at 04:45:29PM +0100, Keir Fraser wrote:
> On 11/06/2013 16:05, "Keir Fraser" <keir.xen@xxxxxxxxx> wrote:
> 
> > On 11/06/2013 15:16, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
> > 
> >>> Would it be OK to call
> >>> update_domain_wallclock_time unconditionally on
> >>> hvm_hypercall_page_initialise?
> >> 
> >> The primary question is - why is what we have not enough for you?
> >> In particular I would expect that the call from arch_set_info_guest()
> >> (for vCPU 0) should do what you want. Or wait, this is covering PV
> >> only. So yes, with the description change I would then withdraw my
> >> NACK - apparently no-one really used the shared info wall clock
> >> time in a HVM guest so far (or it going wrong post-resume wasn't
> >> noticed).
> >> 
> >> I would, however, prefer the if() immediately preceding the patch
> >> context to be pulled out past the domain_lock()ed region, convert it
> >> to switch(), and add your code. That was, eventual other post-
> >> processing for the various map spaces has a consistent, easily
> >> extensible home.
> > 
> > I apparently made a fix for this to work on initial boot of a 32-bit PVHVM
> > guest back in September (a change in hvmloader to not zero the wc fields in
> > shared_info). But I agree I now can't see why it works... But it surely does
> > as it was tested to do so by Konrad.
> > 
> > A bit more digging required...
> 
> Hmm I can't find any confirmation that my patch actually *did* work. :( I'm
> sure I remember testing it though!

I do remember that it did work. The issue was :
 Bug 14519356 - SYSTEM TIME DRIFTS DRASTICALLY FOR GUEST WITH UEK2 KERNEL AFTER 
MIGRATION 


 Easily reproduced using save.restore.
@ .
@ [root@localhost ~]# uname -a
@ Linux localhost.localdomain 2.6.39-300.7.0.el6uek.i686 #1 SMP Thu Sep 6
@ 12:47:30 EDT 2012 i686 i686 i386 GNU/Linux
@ [root@localhost ~]# date
@ Tue Sep 11 22:38:19 PDT 2012
@ [root@localhost ~]# uptime
@  09:24:43 up 15590 days, 17:16,  3 users,  load average: 2.75, 1.21, 0.47
@ [root@localhost ~]#
@ [root@localhost ~]# date
@ Mon Apr 14 09:24:51 PDT 1919
@ [root@localhost ~]# 

So the date went back to 1919.

.. and the reason was the the shared page (which is not re-inited by
the kernel) ends up with a large negative delta causing it to go back
in time.

> 
> My suggestion is we do indeed remove the inner if() in latch_shinfo_size().
> Ie. Call update_domain_wallclock_time() even if shinfo size has apparently
> not changed. 
> 
> We only latch shinfo size on hypercall page initialisation and on setup of
> the callback irq. They are start-of-day/resume operations, so removing the
> if() should have no bad side effect that I can see. If nothing else it
> should make this wallclock-field setup more robust.
> 
>  -- Keir
> 
> >  -- Keir
> > 
> > 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.