[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 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. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |