linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Avi Kivity <avi@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	Glauber Costa <glommer@redhat.com>,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
	kurt.hackel@oracle.com, the arch/x86 maintainers <x86@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Glauber de Oliveira Costa <gcosta@redhat.com>,
	Xen-devel <xen-devel@lists.xensource.com>,
	Keir Fraser <keir.fraser@eu.citrix.com>,
	zach.brown@oracle.com, chris.mason@oracle.com,
	Ingo Molnar <mingo@redhat.com>
Subject: RE: [Xen-devel] Re: [PATCH 3/5] x86/pvclock: add vsyscall implementation
Date: Wed, 4 Nov 2009 12:30:11 -0800 (PST)	[thread overview]
Message-ID: <284e5d6c-7b31-4284-bd2d-c1d2ded1bc72@default> (raw)
In-Reply-To: <4AEFBBA2.4040907@redhat.com>

> From: Avi Kivity [mailto:avi@redhat.com]
> Subject: Re: [Xen-devel] Re: [PATCH 3/5] x86/pvclock: add vsyscall
> implementation
> 
> 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.

Maybe I'm misunderstanding something, but enterprise
apps can do this entirely on their own without any
kernel help, correct?  Or are you trying to provide
it across guests, e.g. for clusters or something?

> >> 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.

Actually, I think for many/most profiling applications,
just knowing a discontinuity occurred between two
timestamps is very useful as that one specific measurement
can be discarded.  If a discontinuity is invisible,
one clearly knows that a negative interval is bad,
but if an interval is very small or very large,
one never knows if it is due to a discontinuity or
due to some other reason.

This would argue for a syscall/vsyscall that can
"return" two values: the "time" and a second
"continuity generation" counter.

> >> 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.

Oh, I see.  I missed that very crucial point.

So, just to verify/clarify... There is NO WAY for
a vsyscall to ensure monotonicity (presumably because
the previous reading can't be safely stored?).  So
speed and "correctness" are mutually exclusive?

If true, yes, that's a potentially significant problem\
though an intelligent app can layer monotonicity
on top of the call I suppose.

  reply	other threads:[~2009-11-04 20:31 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-06  0:50 [PATCH RFC] Extending pvclock down to usermode for vsyscall Jeremy Fitzhardinge
2009-10-06  0:50 ` [PATCH 1/5] x86/pvclock: make sure rdtsc doesn't speculate out of region Jeremy Fitzhardinge
2009-10-06  0:50 ` [PATCH 2/5] x86/pvclock: no need to use strong read barriers in pvclock_get_time_values Jeremy Fitzhardinge
2009-10-06  0:50 ` [PATCH 3/5] x86/pvclock: add vsyscall implementation Jeremy Fitzhardinge
2009-10-06  9:04   ` Avi Kivity
2009-10-06 14:19     ` Dan Magenheimer
2009-10-06 15:11       ` Avi Kivity
2009-10-06 18:46     ` [Xen-devel] " Jeremy Fitzhardinge
2009-10-07 10:25       ` Avi Kivity
2009-10-07 19:29         ` Jeremy Fitzhardinge
2009-10-07 20:09           ` Avi Kivity
2009-10-07 21:19             ` Jeremy Fitzhardinge
2009-10-07 21:37               ` Avi Kivity
2009-10-07 21:51                 ` Jeremy Fitzhardinge
2009-10-07 21:53                   ` Avi Kivity
2009-10-07 20:48         ` Dan Magenheimer
2009-10-07 21:08           ` Avi Kivity
2009-10-07 22:36             ` Dan Magenheimer
2009-10-10  0:24         ` Jeremy Fitzhardinge
2009-10-10 18:10           ` Avi Kivity
2009-10-12 18:20             ` Jeremy Fitzhardinge
2009-10-12 18:29               ` Avi Kivity
2009-10-12 19:13                 ` Jeremy Fitzhardinge
2009-10-13  6:39                   ` Avi Kivity
2009-10-13 20:00                     ` Jeremy Fitzhardinge
2009-10-14 12:32                       ` Avi Kivity
2009-10-15 19:17                         ` Jeremy Fitzhardinge
2009-10-27 17:29                         ` Dan Magenheimer
2009-10-27 18:20                           ` Jeremy Fitzhardinge
2009-10-28  5:52                             ` Avi Kivity
2009-10-28  9:29                               ` Glauber Costa
2009-10-28  9:34                                 ` Avi Kivity
2009-10-28 17:47                                   ` Jeremy Fitzhardinge
2009-10-29 12:13                                     ` Avi Kivity
2009-10-29 13:03                                       ` Chris Mason
2009-10-29 14:46                                       ` Dan Magenheimer
2009-10-29 15:07                                         ` Avi Kivity
2009-10-29 15:55                                           ` Dan Magenheimer
2009-10-29 16:15                                             ` Dan Magenheimer
2009-11-01  9:28                                               ` Avi Kivity
2009-11-02 15:28                                                 ` Dan Magenheimer
2009-11-02 15:41                                                   ` Avi Kivity
2009-11-01  9:32                                             ` Avi Kivity
2009-11-02 15:46                                               ` Dan Magenheimer
2009-11-03  5:12                                                 ` Avi Kivity
2009-11-04 20:30                                                   ` Dan Magenheimer [this message]
2009-11-05  6:47                                                     ` Avi Kivity
2009-11-05 14:52                                                       ` Dan Magenheimer
2009-11-05 15:07                                                         ` Keir Fraser
2009-11-04 21:19                                           ` john stultz
2009-11-04 21:28                                             ` Dan Magenheimer
2009-11-05  0:02                                               ` john stultz
2009-11-05  0:45                                                 ` Dan Magenheimer
2009-10-06  0:50 ` [PATCH 4/5] x86/fixmap: add a predicate for usermode fixmaps Jeremy Fitzhardinge
2009-10-06 10:23   ` [Xen-devel] " Jan Beulich
2009-10-06 18:47     ` Jeremy Fitzhardinge
2009-10-06  0:50 ` [PATCH 5/5] xen/time: add pvclock_clocksource_vread support Jeremy Fitzhardinge
2009-10-06 10:28   ` [Xen-devel] " Jan Beulich
2009-10-06 18:48     ` Jeremy Fitzhardinge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=284e5d6c-7b31-4284-bd2d-c1d2ded1bc72@default \
    --to=dan.magenheimer@oracle.com \
    --cc=avi@redhat.com \
    --cc=chris.mason@oracle.com \
    --cc=gcosta@redhat.com \
    --cc=glommer@redhat.com \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=jeremy@goop.org \
    --cc=keir.fraser@eu.citrix.com \
    --cc=kurt.hackel@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=zach.brown@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).