Messages in this thread | | | From | John Stultz <> | Date | Tue, 14 Feb 2023 11:34:15 -0800 | Subject | Re: [RFC PATCH V2 2/9] perf: Extend ABI to support post-processing monotonic raw conversion |
| |
On Tue, Feb 14, 2023 at 7:56 AM Peter Zijlstra <peterz@infradead.org> wrote: > > On Mon, Feb 13, 2023 at 02:22:39PM -0800, John Stultz wrote: > > The interpoloation is pretty easy to do: > > > > do { > > start= readtsc(); > > clock_gett(CLOCK_MONOTONIC_RAW, &ts); > > end = readtsc(); > > delta = end-start; > > } while (delta > THRESHOLD) // make sure the reads were not preempted > > mid = start + (delta +(delta/2))/2; //round-closest > > > > and be able to get you a fairly close matching of TSC to > > CLOCK_MONOTONIC_RAW value. > > > > Once you have that mapping you can take a few samples and establish > > the linear function. > > Right, this is how we do the TSC calibration in the first place, and if > NTP can achieve high correctness over a network, then surely we can do > better locally. > > That is, this scheme should work for all CLOCKs, not only MONOTONIC_RAW.
Well, CLOCK_MONOTONIC_RAW is at least a fixed function, we don't change its frequency. Whereas other clocks will likely be adjusted over their lifetime, so deriving the frequency has to be continually re-calculated, so they aren't ideal for this sort of interpolation.
thanks -john
| |