Messages in this thread | | | From | John Stultz <> | Date | Tue, 14 Feb 2023 12:11:16 -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:00 AM Liang, Kan <kan.liang@linux.intel.com> wrote: > On 2023-02-14 9:51 a.m., Liang, Kan wrote: > > If I understand correctly, the idea is to let the user space tool run > > the above interpoloation algorithm several times to 'guess' the atomic > > mapping. Using the mapping information to covert the TSC from the PEBS > > record. Is my understanding correct? > > > > If so, to be honest, I doubt we can get the accuracy we want. > > > > I implemented a simple test to evaluate the error.
Very cool!
> I collected TSC -> CLOCK_MONOTONIC_RAW mapping using the above algorithm > at the start and end of perf cmd. > MONO_RAW TSC > start 89553516545645 223619715214239 > end 89562251233830 223641517000376 > > Here is what I get via mult/shift conversion from this patch. > MONO_RAW TSC > PEBS 89555942691466 223625770878571 > > Then I use the time information from start and end to create a linear > function and 'guess' the MONO_RAW of PEBS from the TSC. I get > 89555942692721. > There is a 1255 ns difference. > I tried several different PEBS records. The error is ~1000ns. > I think it should be an observable error.
Interesting. That's a good bit higher than I'd expect as I'd expect a clock_gettime() call to take ~ double digit nanoseconds range on average, so the error should be within that.
Can you share your logic?
thanks -john
| |