Messages in this thread | | | From | John Stultz <> | Date | Tue, 14 Feb 2023 11:37:08 -0800 | Subject | Re: [RFC PATCH V2 2/9] perf: Extend ABI to support post-processing monotonic raw conversion |
| |
On Tue, Feb 14, 2023 at 9:46 AM Liang, Kan <kan.liang@linux.intel.com> wrote: > On 2023-02-14 5:43 a.m., Peter Zijlstra 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. > > If I understand correctly, the TSC calibration is done in the kernel. > The kernel keeps updating the mul/shift. We dump the mul/shift into the > perf mmap page for the user tools.
Where is that done in the perf mmap? I wasn't aware.
thanks -john
| |