Re: [Xen-devel] Re: [PATCH 3/5] x86/pvclock: add vsyscall implementation

Avi Kivity
2009-11-03T05:12:36Z

On 11/02/2009 05:46 PM, Dan Magenheimer wrote:
>>> I don't have any public data available for this DB usage,
>>>
>> Sorry, that doesn't explain anything.
>>
> Well for now just consider the DB usage as another use
> of profiling. But one can easily draw scenarios where
> a monotonic timestamp is also used to guarantee transaction
> ordering.
>

In this case we should provide a facility for this. Providing a global
monotonic counter may be easier than providing a monotonic clock. Hence
my question.

>>> Search for "flight recorder". This feature is intended to
>>> be enabled all the time, but with non-vsyscall gettimeofday
>>> the performance impact is unacceptably high, so they are using
>>>
>> For profiling work fast timestamping is of course great, but surely
>> there is no monotonicity requirement?
>>
> Yes and no. Monotonicity is a poor substitute for a more
> generic mechanism that might provide an indication that a
> discontinuity has occurred (forward or backward); if an app
> could get both the timestamp AND some kind of "continuity
> generation counter" (basically a much more sophisticated
> form of TSC_AUX that changes whenever the timestamp is
> coming from a different source), perhaps all problems could be solved.
>

I doubt it. A discontinuity has occured, but what do we know about it?
nothing.

>> I don't think we'll be able to provide monotonicity with vsyscall on
>> tsc-broken hosts, so we'll be limited to correcting the tsc frequency
>> after migration for good-tsc hosts.
>>
> True, though clock_gettime(CLOCK_MONOTONIC) can provide
> the monotonicity where it is required.
>

We have that already. The question is how to implement it in a vsyscall.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.