Message ID | 20230119154308.3815108-1-james.clark@arm.com (mailing list archive) |
---|---|
Headers | show |
Series | perf cs_etm: Basic support for virtual/kernel timestamps | expand |
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@arm.com 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@kernel.org/ > [2]: https://lore.kernel.org/all/20220503123537.1003035-1-german.gomez@arm.com/ > > 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
On 19/01/2023 16:58, Arnaldo Carvalho de Melo wrote: > 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@arm.com > 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. Oops I must have just missed the latest perf/core update. I fixed the conflict and sent a v5, and decided to not make any changes for Suzuki's comments. Thanks James
Em Fri, Jan 20, 2023 at 02:39:30PM +0000, James Clark escreveu: > > > On 19/01/2023 16:58, Arnaldo Carvalho de Melo wrote: > > 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@arm.com > > 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. > > Oops I must have just missed the latest perf/core update. I fixed the > conflict and sent a v5, and decided to not make any changes for Suzuki's > comments. Trying it now