Re: [PATCH V2 00/11] perf intel-pt: Add perf event clocks to better support VM tracing

From: Adrian Hunter
Date: Mon Feb 21 2022 - 01:55:05 EST


On 14/02/2022 13:09, Adrian Hunter wrote:
> Hi
>
> These patches add 2 new perf event clocks based on TSC for use with VMs.
>
> The first patch is a minor fix, the next 2 patches add each of the 2 new
> clocks. The remaining patches add minimal tools support and are based on
> top of the Intel PT Event Trace tools' patches.
>
> The future work, to add the ability to use perf inject to inject perf
> events from a VM guest perf.data file into a VM host perf.data file,
> has yet to be implemented.
>
>
> Changes in V2:
> perf/x86: Fix native_perf_sched_clock_from_tsc() with __sched_clock_offset
> Add __sched_clock_offset unconditionally
>
> perf/x86: Add support for TSC as a perf event clock
> Use an attribute bit 'ns_clockid' to identify non-standard clockids
>
> perf/x86: Add support for TSC in nanoseconds as a perf event clock
> Do not affect use of __sched_clock_offset
> Adjust to use 'ns_clockid'

Any comments on version 2?

>
> perf tools: Add new perf clock IDs
> perf tools: Add API probes for new clock IDs
> perf tools: Add new clock IDs to "perf time to TSC" test
> perf tools: Add perf_read_tsc_conv_for_clockid()
> perf intel-pt: Add support for new clock IDs
> perf intel-pt: Use CLOCK_PERF_HW_CLOCK_NS by default
> perf intel-pt: Add config variables for timing parameters
> perf intel-pt: Add documentation for new clock IDs
> Adjust to use 'ns_clockid'
>
>
> Adrian Hunter (11):
> perf/x86: Fix native_perf_sched_clock_from_tsc() with __sched_clock_offset
> perf/x86: Add support for TSC as a perf event clock
> perf/x86: Add support for TSC in nanoseconds as a perf event clock
> perf tools: Add new perf clock IDs
> perf tools: Add API probes for new clock IDs
> perf tools: Add new clock IDs to "perf time to TSC" test
> perf tools: Add perf_read_tsc_conv_for_clockid()
> perf intel-pt: Add support for new clock IDs
> perf intel-pt: Use CLOCK_PERF_HW_CLOCK_NS by default
> perf intel-pt: Add config variables for timing parameters
> perf intel-pt: Add documentation for new clock IDs
>
> arch/x86/events/core.c | 39 ++++++++++--
> arch/x86/include/asm/perf_event.h | 5 ++
> arch/x86/kernel/tsc.c | 2 +-
> include/uapi/linux/perf_event.h | 18 +++++-
> kernel/events/core.c | 63 +++++++++++++-------
> tools/include/uapi/linux/perf_event.h | 18 +++++-
> tools/perf/Documentation/perf-config.txt | 18 ++++++
> tools/perf/Documentation/perf-intel-pt.txt | 47 +++++++++++++++
> tools/perf/Documentation/perf-record.txt | 9 ++-
> tools/perf/arch/x86/util/intel-pt.c | 95 ++++++++++++++++++++++++++++--
> tools/perf/builtin-record.c | 2 +-
> tools/perf/tests/perf-time-to-tsc.c | 42 ++++++++++---
> tools/perf/util/clockid.c | 14 +++++
> tools/perf/util/evsel.c | 1 +
> tools/perf/util/intel-pt.c | 27 +++++++--
> tools/perf/util/intel-pt.h | 7 ++-
> tools/perf/util/perf_api_probe.c | 24 ++++++++
> tools/perf/util/perf_api_probe.h | 2 +
> tools/perf/util/perf_event_attr_fprintf.c | 1 +
> tools/perf/util/record.h | 2 +
> tools/perf/util/tsc.c | 58 ++++++++++++++++++
> tools/perf/util/tsc.h | 2 +
> 22 files changed, 444 insertions(+), 52 deletions(-)
>
>
> Regards
> Adrian