Re: [PATCH v4 0/8] perf cs_etm: Basic support for virtual/kernel timestamps

From: Arnaldo Carvalho de Melo
Date: Fri Jan 20 2023 - 00:28:59 EST


Em Thu, Jan 19, 2023 at 03:42:59PM +0000, James Clark escreveu:
> Changes since v3:
>
> * Scale time estimates by INSTR_PER_NS, rather than assuming 1
> instruction = 1ns
> * Add a new commit that fixes some issues around timestamps going
> backwards
> * Use nanoseconds inside cs-etm-decoder.c, rather than storing the
> raw time values and converting when a sample is synthesized. This
> simplifies some of the code like estimating the first timestamp.

I would check this myself, but since Suzuki had some review comments and
you may consider a v5, please check this:

Cover: ./v4_20230119_james_clark_perf_cs_etm_basic_support_for_virtual_kernel_timestamps.cover
Link: https://lore.kernel.org/r/20230119154308.3815108-1-james.clark@xxxxxxx
git checkout -b v4_20230119_james_clark_arm_com 69b41ac87e4a664de78a395ff97166f0b2943210
git am ./v4_20230119_james_clark_perf_cs_etm_basic_support_for_virtual_kernel_timestamps.mbx
[acme@quaco perf]$ git am ./v4_20230119_james_clark_perf_cs_etm_basic_support_for_virtual_kernel_timestamps.mbx
Applying: perf: Remove duplication around EVENT_SOURCE_DEVICE_PATH
error: patch failed: tools/perf/util/pmu.c:1993
error: tools/perf/util/pmu.c: patch does not apply
error: patch failed: tools/perf/util/pmu.h:259
error: tools/perf/util/pmu.h: patch does not apply
Patch failed at 0001 perf: Remove duplication around EVENT_SOURCE_DEVICE_PATH
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
[acme@quaco perf]$

Probably a conflict with one of these:

[acme@quaco perf]$ git log --oneline -5 tools/perf/util/pmu.c
acef233b7ca749fd perf pmu: Add #slots literal support for arm64
336b92da1aa4228a perf tool: Move pmus list variable to a new file
49bd97c28b7e7f01 perf tools: Use dedicated non-atomic clear/set bit helpers
e5c6109f4813246a perf list: Reorganize to use callbacks to allow honouring command line options
eb2d4514a5971444 perf pmu: Restructure print_pmu_events() to avoid memory allocations
[acme@quaco perf]$

Update to my perf/core branch or even tmp.perf/core which is newer but
still needs the full set of container build tests.

Thanks,

- Arnaldo

> ===========================
> Changes since v2:
>
> * Remove const to non-const change and copy strings where needed
> instead.
> * Use sizeof() instead of PATH_MAX
> * Append "will not be set accurately." to new error message
> * Remove unneeded stat() call
> * Rebase on perf/core
>
> ==========================
>
> Changes since v1:
>
> * Add 3 refactor commits for sysfs reading around pmu.c as suggested
> by Arnaldo here [1]
> * The dependency on [2] has now reached mainline so is no longer
> blocking
> * Rebase on perf/core
>
> [1]: https://lore.kernel.org/all/YnqVqq5QW%2Fb14oPZ@xxxxxxxxxx/
> [2]: https://lore.kernel.org/all/20220503123537.1003035-1-german.gomez@xxxxxxx/
>
> German Gomez (4):
> perf pmu: Add function to check if a pmu file exists
> perf cs_etm: Keep separate symbols for ETMv4 and ETE parameters
> perf cs_etm: Record ts_source in AUXTRACE_INFO for ETMv4 and ETE
> perf cs_etm: Set the time field in the synthetic samples
>
> James Clark (4):
> perf: Remove duplication around EVENT_SOURCE_DEVICE_PATH
> perf: Use perf_pmu__open_file() and perf_pmu__scan_file()
> perf: Remove remaining duplication of bus/event_source/devices/...
> perf: cs-etm: Ensure that Coresight timestamps don't go backwards
>
> tools/perf/arch/arm/util/auxtrace.c | 5 +-
> tools/perf/arch/arm/util/cs-etm.c | 91 ++++++++-
> tools/perf/arch/x86/util/pmu.c | 12 +-
> tools/perf/util/cputopo.c | 9 +-
> tools/perf/util/cs-etm-base.c | 34 +++-
> .../perf/util/cs-etm-decoder/cs-etm-decoder.c | 68 +++++--
> tools/perf/util/cs-etm.c | 95 +++++++++-
> tools/perf/util/cs-etm.h | 16 +-
> tools/perf/util/pmu-hybrid.c | 27 +--
> tools/perf/util/pmu.c | 177 +++++++-----------
> tools/perf/util/pmu.h | 10 +-
> 11 files changed, 349 insertions(+), 195 deletions(-)
>
>
> base-commit: 69b41ac87e4a664de78a395ff97166f0b2943210
> prerequisite-patch-id: 9722bf86e3e6d16d177ff9a1411992a795a7dcbd
> prerequisite-patch-id: b05dbef439c2ea8465f3321532257b0ca29f21f9
> prerequisite-patch-id: 92680a4781cbcf010fcb007e6ea030f59e9eaefc
> prerequisite-patch-id: 8e3a73a04e4b89b503377b5fac1d89d551159393
> prerequisite-patch-id: 09980d8fedcdaa70b220a7802428109f48448a58
> prerequisite-patch-id: 711843c93d5d6bdf4d73e024949950f4e4de9e1a
> --
> 2.25.1

--

- Arnaldo