WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] time-xen : Reset monotonic time when sync up tim

To: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] time-xen : Reset monotonic time when sync up time from dom0 to domU
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Wed, 13 Oct 2010 09:48:03 -0700
Cc: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <keir@xxxxxxx>, Shunli Yi <syi@xxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>, Saipu Liu <saliu@xxxxxxxxxxxx>, Hang Du <hdu@xxxxxxxxxxxx>
Delivery-date: Wed, 13 Oct 2010 09:48:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20101013161657.GJ4007@xxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <9C56B6AEEB2D60488B29B880DF7E53BE03C1B2C6B6@xxxxxxxxxxxxxxxxxxxxx> <4CB4672E020000780001C752@xxxxxxxxxxxxxxxxxx> <0b6cc1b3-f838-482e-89dc-6f19cc8c47cc@default> <20101013161657.GJ4007@xxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100921 Fedora/3.1.4-1.fc13 Lightning/1.0b3pre Thunderbird/3.1.4
 On 10/13/2010 09:16 AM, Tim Deegan wrote:
> At 16:56 +0100 on 13 Oct (1286988987), Dan Magenheimer wrote:
>> I wonder if the "bug" here is that "dependent wall clock" is
>> an incredibly poor replacement for NTP (or a Windows Time Server)
>> and a hack and really shouldn't even exist?
> I've seen Windows Time server do some pretty odd things, but leaving
> that aside - the problem with dependent wallclock is that it distributes
> only the wallclock time and not the drift parameters, so you get 
> sawtoothing.
>
> Running NTP in guests has its own problems, particularly around live
> migration, where NTP can lose stability quite badly.

There seems to be some work on replacements for NTP which converge
quicker and are shinier and better.

I've thought that having some kind of lightweight dom0<->domU sync
protocol would be a better replacement for dependent time than NTP
(unless full NTP is required).

> There was a paper about this at OSDI last week:
> http://www.usenix.org/events/osdi10/tech/full_papers/Broomhead.pdf

Ooh, look, RADclock, just what I was thinking about.

    J

> Tim.
>
>>  I suppose one could
>> argue that it makes some sense in a XCP environment, and maybe
>> in a server environment where a single physical server is extremely
>> isolated, but does it ever make sense in a real world server
>> environment?
>>
>> In other words, I'm arguing that the correct "fix" here is:
>> Don't use dependent wallclock.
>>
>>> -----Original Message-----
>>> From: Jan Beulich [mailto:JBeulich@xxxxxxxxxx]
>>> Sent: Wednesday, October 13, 2010 6:38 AM
>>> To: Hang Du
>>> Cc: Saipu Liu; Shunli Yi; xen-devel@xxxxxxxxxxxxxxxxxxx
>>> Subject: RE: [Xen-devel] [PATCH] time-xen : Reset monotonic time when
>>> sync up time from dom0 to domU
>>>
>>>>>> On 13.10.10 at 05:24, "Du, Hang" <hdu@xxxxxxxxxxxx> wrote:
>>>> Sorry for my brief description in previous mail and missing
>>>> is_initial_xendomain check. The kernel I submit this patch is
>>>> linux-2.6.18-xen-3.4.2, I submit the patch again with in_initial-
>>> xendomain
>>>> check.
>>> Actually, I didn't expect you to blindly insert that check, but rather
>>> either explain why only DomU-s need the changed behavior (as your
>>> original description suggested), or refine the description of the
>>> problem you're trying to solve.
>>>
>>>> In this patch, we support the backward time changing sync to all
>>> domUs which
>>>> configured to use "dependent wall clock".
>>>> Currently, without the backward time syncing, when we change the time
>>>> backward in Dom0, the time in DomU would be froze.
>>>> And this cause some commands hang and don't executed until the time
>>> catch up
>>>> with the domU time.
>>>> For example:
>>>> "rpm -q kernel-xen"
>>>> "sleep 1"
>>>> Monotonic time should be reset when sync up time from dom0 to domU to
>>>> support domU backward time syncing.
>>> I can see your point, however ...
>>>
>>>> diff -urN a/arch/i386/kernel/time-xen.c   b/arch/i386/kernel/time-
>>> xen.c
>>>> --- a/arch/i386/kernel/time-xen.c   2010-10-11 10:41:06.000000000
>>> +0800
>>>> +++ b/arch/i386/kernel/time-xen.c   2010-10-11 10:43:32.000000000
>>> +0800
>>>> @@ -715,6 +715,8 @@
>>>>     }
>>>>
>>>>     if (shadow_tv_version != HYPERVISOR_shared_info->wc_version) {
>>>> +        if (!is_initial_xendomain() && !independent_wallclock)
>>>> +            monotonic_reset();
>>>>         update_wallclock();
>>> ... you definitely need to call monotonic_reset() *after* the
>>> update_wallclock() (or else another vCPU, preempted in
>>> do_gettimeofday() between the end of the xtime read loop
>>> and the acquiring of the monotonic lock, would be able to
>>> overwrite monotonic.tv with values obtained before the wall
>>> clock update - similar to the secondary problem addressed by
>>> c/s 1021).
>>>
>>> Further, blindly running a reset here doesn't seem nice in
>>> the (general) case of the time getting updated forwards.
>>>
>>>>         schedule_clock_was_set_work = 1;
>>>>     }
>>> You'll also want to address Dan's concerns, and you will want to
>>> get your patch formatted so that it would actually apply (read:
>>> no tab -> space conversion) if you expect it to be committed
>>> by Keir at some point.
>>>
>>> Jan
>>>
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>>> http://lists.xensource.com/xen-devel
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>