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

[Xen-devel] Re: s_time going backwards on same processor?



The code should be using spin_lock_irqsave/spin_unlock_irqrestore.

As it is it's incorrect and could cause odd behaviour. I don't know whether
that would extend to seeing time goes backwards as often as Dan reports, but
obviously the test has to be re-run.

 -- Keir

On 26/7/08 03:23, "Tian, Kevin" <kevin.tian@xxxxxxxxx> wrote:

> In a quick glimpse, your measure_stime_skew has interrupt
> enabled absolutely at exit, instead of restoring previous
> setting. Would it be a trouble-maker? I have no latest code
> at hand, but at least for what I can check:
> 
> in local_time_calibration:
> 
>     local_irq_disable();
>     curr_master_stime = read_platform_stime();
>     curr_local_stime  = get_s_time();
>     rdtscll(curr_tsc);
>     local_irq_enable();
> 
> with your patch, interrupt is enabled after get_s_time, which
> then may have curr_tsc read out from a different time point...
> 
> Thanks,
> Kevin
> 
>> From: Dan Magenheimer [mailto:dan.magenheimer@xxxxxxxxxx]
>> Sent: 2008年7月26日 9:47
>> 
>> OK, I am definitely recording stime going backwards
>> observed with the attached patch.  I have recorded dozens
>> over a few hours.  It appears to have no
>> obvious pattern between reports, but one thing
>> is consistent: In all cases, t->tsc_scale.shift
>> is -1.  I'll try to run some more tests over the
>> weekend (e.g. with different clocksources... this
>> is with clocksource=hpet), but thought I'd report
>> what I have seen.  I'm running on a dual-core single
>> socket ("Conroe").
>> 
>> Dan
>> 
>> P.S. If you try the patch, ensure you set
>> the boot parameter "measurestime".
>> 
>>> -----Original Message-----
>>> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
>>> Sent: Wednesday, July 23, 2008 1:06 AM
>>> To: dan.magenheimer@xxxxxxxxxx; Xen-Devel (E-mail)
>>> Cc: Dave Winchell
>>> Subject: Re: s_time going backwards on same processor?
>>> 
>>> 
>>> On 22/7/08 22:58, "Dan Magenheimer"
>>> <dan.magenheimer@xxxxxxxxxx> wrote:
>>> 
>>>> I *do* know that get_s_time() on different processors
>>>> can have this behavior and I know it is possible for
>>>> hvm_get_guest_time() to go backwards (timer_mode=0),
>>>> but I thought s_time was monotonically non-decreasing
>>>> on any given processor and that read_platform_stime()
>>>> is also monotonically non-decreasing.
>>>> 
>>>> Does dom0 maybe have direct hardware access to the hardware
>>>> platform timer that xen system time is dependent on?
>>> 
>>> No matter what happens to the underlying platform timer, it should be
>>> impossible for Xen system time to go backwards on any given
>>> processor. The
>>> calibration function never sets the TSC and system timestamps
>>> for the next
>>> time record any earlier than current TSC value and current
>>> computed system
>>> time value. Hence it should be impossible for system time to
>>> be computed as
>>> earlier than that time record.
>>> 
>>>  -- Keir
>>> 
>>> 
>>> 
>> 



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


 


Rackspace

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