[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/3] x86/time: adjust time recording time_calibration_tsc_rendezvous()
On Mon, Feb 08, 2021 at 11:56:01AM +0100, Jan Beulich wrote: > On 05.02.2021 17:15, Roger Pau Monné wrote: > > On Mon, Feb 01, 2021 at 01:43:04PM +0100, Jan Beulich wrote: > >> The (stime,tsc) tuple is the basis for extrapolation by get_s_time(). > >> Therefore the two better get taken as close to one another as possible. > >> This means two things: First, reading platform time is too early when > >> done on the first iteration. The closest we can get is on the last > >> iteration, immediately before telling other CPUs to write their TSCs > >> (and then also writing CPU0's). While at the first glance it may seem > >> not overly relevant when exactly platform time is read (when assuming > >> that only stime is ever relevant anywhere, and hence the association > >> with the precise TSC values is of lower interest), both CPU frequency > >> changes and the effects of SMT make it unpredictable (between individual > >> rendezvous instances) how long the loop iterations will take. This will > >> in turn lead to higher an error than neccesary in how close to linear > >> stime movement we can get. > >> > >> Second, re-reading the TSC for local recording is increasing the overall > >> error as well, when we already know a more precise value - the one just > >> written. > >> > >> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > > > > Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > Thanks. > > > I've been thinking this all seems doomed when Xen runs in a virtualized > > environment, and should likely be disabled. There's no point on trying > > to sync the TSC over multiple vCPUs as the scheduling delay between > > them will likely skew any calculations. > > We may want to consider to force the equivalent of > "clocksource=tsc" in that case. Otoh a well behaved hypervisor > underneath shouldn't lead to us finding a need to clear > TSC_RELIABLE, at which point this logic wouldn't get engaged > in the first place. I got the impression that on a loaded system guests with a non-trivial amount of vCPUs might be in trouble to be able to schedule them all close enough for the rendezvous to not report a big skew, and thus disable TSC_RELIABLE? Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |