From: Al Grant <Al.Grant@arm.com> To: "leo.yan@linaro.org" <leo.yan@linaro.org>, Arnaldo Carvalho de Melo <acme@kernel.org>, John Garry <john.garry@huawei.com>, Will Deacon <will@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, James Clark <James.Clark@arm.com>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Mark Rutland <Mark.Rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>, Adrian Hunter <adrian.hunter@intel.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: "leo.yan@linaro.org" <leo.yan@linaro.org> Subject: RE: [PATCH v2 0/7] perf arm-spe: Enable timestamp Date: Tue, 6 Apr 2021 09:38:32 +0000 [thread overview] Message-ID: <AM6PR08MB335124DC0080EA95A817D71786769@AM6PR08MB3351.eurprd08.prod.outlook.com> (raw) In-Reply-To: <20210403072346.30430-1-leo.yan@linaro.org> > -----Original Message----- > From: Leo Yan <leo.yan@linaro.org> > Sent: 03 April 2021 08:24 > To: Arnaldo Carvalho de Melo <acme@kernel.org>; John Garry > <john.garry@huawei.com>; Will Deacon <will@kernel.org>; Mathieu Poirier > <mathieu.poirier@linaro.org>; James Clark <James.Clark@arm.com>; Al Grant > <Al.Grant@arm.com>; Peter Zijlstra <peterz@infradead.org>; Ingo Molnar > <mingo@redhat.com>; Mark Rutland <Mark.Rutland@arm.com>; Alexander > Shishkin <alexander.shishkin@linux.intel.com>; Jiri Olsa <jolsa@redhat.com>; > Namhyung Kim <namhyung@kernel.org>; Adrian Hunter > <adrian.hunter@intel.com>; linux-arm-kernel@lists.infradead.org; linux- > kernel@vger.kernel.org > Cc: leo.yan@linaro.org > Subject: [PATCH v2 0/7] perf arm-spe: Enable timestamp > > As we know, the timestamp is important for AUX trace; it's mainly used to > correlate between perf events and AUX trace, allows to generate events with > time ordered manner. There have several good examples of enabling timestamp > for AUX trace (like Intel-pt, Intel-bts, etc). > > Since the conversion between TSC and kernel timestamp has been supported on > Arm64, TSC is a naming convention from x86, but perf now has reused it to > support Arm arch timer counter. > > This patch set is to enable timestamp for Arm SPE trace. It reads out TSC > parameters from mmap page and stores into auxtrace info structure; Why not synthesize a PERF_RECORD_TIME_CONV - isn't that specifically to capture the TSC parameters from the mmap page? If a generic mechanism exists it would be better to use it, otherwise we'll have to do this again for future trace formats. perf_read_tsc_conversion and perf_event__synth_time_conv are currently in arch/x86/util/tsc.c, but nothing in them is x86-specific and they could be moved somewhere more generic. Al > the TSC > parameters are used for conversion between timer counter and kernel time and > which is applied for Arm SPE samples. > > This patch set can be clearly applied on perf/core branch with: > > commit 6859bc0e78c6 ("perf stat: Improve readability of shadow stats") > > Ths patch series has been tested on Hisilicon D06 platform. > > After: > > # perf script -F comm,time,cpu,pid,dso,ip,sym > > perf 2408 [032] 168.680297: ffffbd1253690a3c perf_event_exec > ([kernel.kallsyms]) > perf 2408 [032] 168.680297: ffffbd1253690a3c perf_event_exec > ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680317: ffffbd1253683f50 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680317: ffffbd1253683f50 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680319: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680319: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680367: ffffbd12539b03ec > __arch_clear_user ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > > Changes from v1: > * Rebased patch series on the latest perf/core branch; > * Fixed the patch for dumping TSC parameters to support both the > older and new auxtrace info format. > > > Leo Yan (7): > perf arm-spe: Remove unused enum value ARM_SPE_PER_CPU_MMAPS > perf arm-spe: Store TSC parameters in auxtrace info > perf arm-spe: Dump TSC parameters > perf arm-spe: Convert event kernel time to counter value > perf arm-spe: Assign kernel time to synthesized event > perf arm-spe: Bail out if the trace is later than perf event > perf arm-spe: Don't wait for PERF_RECORD_EXIT event > > tools/perf/arch/arm64/util/arm-spe.c | 23 +++++++ > tools/perf/util/arm-spe.c | 89 +++++++++++++++++++++++----- > tools/perf/util/arm-spe.h | 7 ++- > 3 files changed, 103 insertions(+), 16 deletions(-) > > -- > 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Al Grant <Al.Grant@arm.com> To: "leo.yan@linaro.org" <leo.yan@linaro.org>, Arnaldo Carvalho de Melo <acme@kernel.org>, John Garry <john.garry@huawei.com>, Will Deacon <will@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, James Clark <James.Clark@arm.com>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Mark Rutland <Mark.Rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>, Adrian Hunter <adrian.hunter@intel.com>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: "leo.yan@linaro.org" <leo.yan@linaro.org> Subject: RE: [PATCH v2 0/7] perf arm-spe: Enable timestamp Date: Tue, 6 Apr 2021 09:38:32 +0000 [thread overview] Message-ID: <AM6PR08MB335124DC0080EA95A817D71786769@AM6PR08MB3351.eurprd08.prod.outlook.com> (raw) In-Reply-To: <20210403072346.30430-1-leo.yan@linaro.org> > -----Original Message----- > From: Leo Yan <leo.yan@linaro.org> > Sent: 03 April 2021 08:24 > To: Arnaldo Carvalho de Melo <acme@kernel.org>; John Garry > <john.garry@huawei.com>; Will Deacon <will@kernel.org>; Mathieu Poirier > <mathieu.poirier@linaro.org>; James Clark <James.Clark@arm.com>; Al Grant > <Al.Grant@arm.com>; Peter Zijlstra <peterz@infradead.org>; Ingo Molnar > <mingo@redhat.com>; Mark Rutland <Mark.Rutland@arm.com>; Alexander > Shishkin <alexander.shishkin@linux.intel.com>; Jiri Olsa <jolsa@redhat.com>; > Namhyung Kim <namhyung@kernel.org>; Adrian Hunter > <adrian.hunter@intel.com>; linux-arm-kernel@lists.infradead.org; linux- > kernel@vger.kernel.org > Cc: leo.yan@linaro.org > Subject: [PATCH v2 0/7] perf arm-spe: Enable timestamp > > As we know, the timestamp is important for AUX trace; it's mainly used to > correlate between perf events and AUX trace, allows to generate events with > time ordered manner. There have several good examples of enabling timestamp > for AUX trace (like Intel-pt, Intel-bts, etc). > > Since the conversion between TSC and kernel timestamp has been supported on > Arm64, TSC is a naming convention from x86, but perf now has reused it to > support Arm arch timer counter. > > This patch set is to enable timestamp for Arm SPE trace. It reads out TSC > parameters from mmap page and stores into auxtrace info structure; Why not synthesize a PERF_RECORD_TIME_CONV - isn't that specifically to capture the TSC parameters from the mmap page? If a generic mechanism exists it would be better to use it, otherwise we'll have to do this again for future trace formats. perf_read_tsc_conversion and perf_event__synth_time_conv are currently in arch/x86/util/tsc.c, but nothing in them is x86-specific and they could be moved somewhere more generic. Al > the TSC > parameters are used for conversion between timer counter and kernel time and > which is applied for Arm SPE samples. > > This patch set can be clearly applied on perf/core branch with: > > commit 6859bc0e78c6 ("perf stat: Improve readability of shadow stats") > > Ths patch series has been tested on Hisilicon D06 platform. > > After: > > # perf script -F comm,time,cpu,pid,dso,ip,sym > > perf 2408 [032] 168.680297: ffffbd1253690a3c perf_event_exec > ([kernel.kallsyms]) > perf 2408 [032] 168.680297: ffffbd1253690a3c perf_event_exec > ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680317: ffffbd1253683f50 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680317: ffffbd1253683f50 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680319: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680319: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680367: ffffbd12539b03ec > __arch_clear_user ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680375: ffffbd1253721440 > kmem_cache_alloc ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > false_sharing.e 2408 [032] 168.680376: ffffbd1253683f70 > perf_iterate_ctx.constprop.0 ([kernel.kallsyms]) > > Changes from v1: > * Rebased patch series on the latest perf/core branch; > * Fixed the patch for dumping TSC parameters to support both the > older and new auxtrace info format. > > > Leo Yan (7): > perf arm-spe: Remove unused enum value ARM_SPE_PER_CPU_MMAPS > perf arm-spe: Store TSC parameters in auxtrace info > perf arm-spe: Dump TSC parameters > perf arm-spe: Convert event kernel time to counter value > perf arm-spe: Assign kernel time to synthesized event > perf arm-spe: Bail out if the trace is later than perf event > perf arm-spe: Don't wait for PERF_RECORD_EXIT event > > tools/perf/arch/arm64/util/arm-spe.c | 23 +++++++ > tools/perf/util/arm-spe.c | 89 +++++++++++++++++++++++----- > tools/perf/util/arm-spe.h | 7 ++- > 3 files changed, 103 insertions(+), 16 deletions(-) > > -- > 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-04-06 9:38 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-03 7:23 [PATCH v2 0/7] perf arm-spe: Enable timestamp Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 1/7] perf arm-spe: Remove unused enum value ARM_SPE_PER_CPU_MMAPS Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 2/7] perf arm-spe: Store TSC parameters in auxtrace info Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 3/7] perf arm-spe: Dump TSC parameters Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 4/7] perf arm-spe: Convert event kernel time to counter value Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 5/7] perf arm-spe: Assign kernel time to synthesized event Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 6/7] perf arm-spe: Bail out if the trace is later than perf event Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-03 7:23 ` [PATCH v2 7/7] perf arm-spe: Don't wait for PERF_RECORD_EXIT event Leo Yan 2021-04-03 7:23 ` Leo Yan 2021-04-06 9:38 ` Al Grant [this message] 2021-04-06 9:38 ` [PATCH v2 0/7] perf arm-spe: Enable timestamp Al Grant 2021-04-07 13:15 ` Leo Yan 2021-04-07 13:15 ` Leo Yan 2021-04-07 13:28 ` Adrian Hunter 2021-04-07 13:28 ` Adrian Hunter 2021-04-07 13:40 ` Leo Yan 2021-04-07 13:40 ` Leo Yan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=AM6PR08MB335124DC0080EA95A817D71786769@AM6PR08MB3351.eurprd08.prod.outlook.com \ --to=al.grant@arm.com \ --cc=James.Clark@arm.com \ --cc=Mark.Rutland@arm.com \ --cc=acme@kernel.org \ --cc=adrian.hunter@intel.com \ --cc=alexander.shishkin@linux.intel.com \ --cc=john.garry@huawei.com \ --cc=jolsa@redhat.com \ --cc=leo.yan@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mathieu.poirier@linaro.org \ --cc=mingo@redhat.com \ --cc=namhyung@kernel.org \ --cc=peterz@infradead.org \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.