Messages in this thread | | | From | John Stultz <> | Date | Mon, 23 Jan 2023 22:13:45 -0800 | Subject | Re: [PATCH 0/3] Convert TSC to monotonic clock for PEBS |
| |
On Mon, Jan 23, 2023 at 10:27 AM <kan.liang@linux.intel.com> wrote: > > From: Kan Liang <kan.liang@linux.intel.com> > > A Processor Event Based Sampling (PEBS) record includes a field that > provide the time stamp counter value when the counter was overflowed > and the PEBS record was generated. The accurate time stamp can be used > to reconcile user samples. However, the current PEBS codes only can > convert the time stamp to sched_clock, which is not available from user > space. A solution to convert a given TSC to user visible monotonic > clock is required. > > The perf_event subsystem only converts the TSC in a NMI handler. The > converter function must be fast and NMI safe. > > Considered the below two existing functions, but none of them fulfill > the above requirements. > - The ktime_get_mono_fast_ns() is NMI safe, but it can only return the > current clock monotonic rather than a given time's monotonic. > - The get_device_system_crosststamp() can calculate the system time from > a given device time. But it's not fast and NMI safe.
So, apologies if this is a silly question (my brain quickly evicts the details on get_device_system_crosststamp every time I look at it), but rather then introducing a new interface, what would it take to rework the existing get_device_system_crosststamp() logic to be usable for both use cases?
thanks -john
| |