[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4AD7E440.2030503@goop.org>
Date: Thu, 15 Oct 2009 20:10:56 -0700
From: Jeremy Fitzhardinge <jeremy@...p.org>
To: john stultz <johnstul@...ibm.com>
CC: Dan Magenheimer <dan.magenheimer@...cle.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Xen-devel <xen-devel@...ts.xensource.com>,
kurt.hackel@...cle.com, arch/x86 maintainers <x86@...nel.org>,
Glauber de Oliveira Costa <gcosta@...hat.com>,
Avi Kivity <avi@...hat.com>, chris.mason@...cle.com
Subject: Re: [Xen-devel] [PATCH 05/12] xen/pvclock: add monotonicity check
On 10/15/09 18:32, john stultz wrote:
>>> No, cycle_last isn't updated on every read, only on timer ticks. This
>>> test doesn't seem to be intended to make sure that every
>>> clocksource_read is globally monotonic, but just to avoid
>>> some boundary
>>> conditions in the timer interrupt. I just copied it directly from
>>> read_tsc().
>>>
>> I understand but you are now essentially emulating a
>> reliable platform timer with a potentially unreliable
>> (but still high resolution) per-CPU timer AND probably
>> delivering that result to userland.
>>
>> Read_tsc should only be used if either CONSTANT_TSC
>> or TSC_RELIABLE is true, so read_tsc is guaranteed
>> to be monotonically-strictly-increasing by hardware
>> (and enforced for CONSTANT_TSC by check_tsc_warp
>> at boot).
>>
> Ideally, yes, only perfect TSCs should be used.
>
> But in reality, its a big performance win for folks who can get away
> with just slightly offset TSCs.
>
What monotonicity guarantees do we make to usermode, for both syscall
and vsyscall gettimeofday and clock_gettime?
Though its not clear to me how usermode would even notice very small
amounts of cross-thread/cpu non-monotonicity anyway. It would need make
sure that it samples the time and stores it to some globally visible
place atomically (with locks, compare-and-swap, etc), which is going to
be pretty expensive. And if its going to all that effort it may as well
do its own monotonicity checking/adjustments if its all that important.
(I can think of plenty of ways of doing it incorrectly, where you'd get
apparent non-monotonicity regardless of the quality of the time source.)
J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists