From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Ravi Bangoria <ravi.bangoria@amd.com>, acme@kernel.org
Cc: jolsa@kernel.org, irogers@google.com, peterz@infradead.org,
rrichter@amd.com, mingo@redhat.com, mark.rutland@arm.com,
namhyung@kernel.org, tglx@linutronix.de, bp@alien8.de,
james.clark@arm.com, leo.yan@linaro.org, ak@linux.intel.com,
eranian@google.com, like.xu.linux@gmail.com, x86@kernel.org,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
sandipan.das@amd.com, ananth.narayan@amd.com,
kim.phillips@amd.com, santosh.shukla@amd.com
Subject: Re: [PATCH v5 0/8] perf/amd: Zen4 IBS extensions support (tool changes)
Date: Wed, 1 Jun 2022 10:04:59 -0400 [thread overview]
Message-ID: <e49505ea-5af2-41d3-23dc-8c01e20f91ee@linux.intel.com> (raw)
In-Reply-To: <20220601032608.1034-1-ravi.bangoria@amd.com>
On 5/31/2022 11:26 PM, Ravi Bangoria wrote:
> Kernel side of changes have already been applied to linus/master
> (except amd-ibs.h header). This series contains perf tool changes.
>
> Kan, I don't have any machine with heterogeneou cpus. It would be
> helpful if you can check HEADER_PMU_CAPS on Intel ADL machine.
>
I tried the patch 2-5 on a hybrid machine. I didn't see any regression
with perf report --header-only option.
Without the patch 2-5,
# perf report --header-only | grep capabilities
# cpu_core pmu capabilities: branches=32, max_precise=3,
pmu_name=alderlake_hybrid
# cpu_atom pmu capabilities: branches=32, max_precise=3,
pmu_name=alderlake_hybrid
With the patch 2-5,
# ./perf report --header-only | grep capabilities
# cpu_core pmu capabilities: branches=32, max_precise=3,
pmu_name=alderlake_hybrid
# cpu_atom pmu capabilities: branches=32, max_precise=3,
pmu_name=alderlake_hybrid
Thanks,
Kan
> v4: https://lore.kernel.org/lkml/20220523033945.1612-1-ravi.bangoria@amd.com
> v4->v5:
> - Replace HEADER_HYBRID_CPU_PMU_CAPS with HEADER_PMU_CAPS instead of
> adding new header HEADER_PMU_CAPS. Special care is taken by writing
> hybrid cpu pmu caps first in the header to make sure old perf tool
> does not break.
> - Store HEADER_CPU_PMU_CAPS capabilities in an array instead of single
> string separated by NULL.
> - Include "cpu" pmu while searching for capabilities in perf_env.
> - Rebase on acme/perf/core (9dde6cadb92b5)
>
> Original cover letter:
>
> IBS support has been enhanced with two new features in upcoming uarch:
> 1. DataSrc extension and 2. L3 Miss Filtering capability. Both are
> indicated by CPUID_Fn8000001B_EAX bit 11.
>
> DataSrc extension provides additional data source details for tagged
> load/store operations. Add support for these new bits in perf report/
> script raw-dump.
>
> IBS L3 miss filtering works by tagging an instruction on IBS counter
> overflow and generating an NMI if the tagged instruction causes an L3
> miss. Samples without an L3 miss are discarded and counter is reset
> with random value (between 1-15 for fetch pmu and 1-127 for op pmu).
> This helps in reducing sampling overhead when user is interested only
> in such samples. One of the use case of such filtered samples is to
> feed data to page-migration daemon in tiered memory systems.
>
> Add support for L3 miss filtering in IBS driver via new pmu attribute
> "l3missonly". Example usage:
>
> # perf record -a -e ibs_op/l3missonly=1/ --raw-samples sleep 5
> # perf report -D
>
> Some important points to keep in mind while using L3 miss filtering:
> 1. Hw internally reset sampling period when tagged instruction does
> not cause L3 miss. But there is no way to reconstruct aggregated
> sampling period when this happens.
> 2. L3 miss is not the actual event being counted. Rather, IBS will
> count fetch, cycles or uOps depending on the configuration. Thus
> sampling period have no direct connection to L3 misses.
>
> 1st causes sampling period skew. Thus, I've added warning message at
> perf record:
>
> # perf record -c 10000 -C 0 -e ibs_op/l3missonly=1/
> WARNING: Hw internally resets sampling period when L3 Miss Filtering is enabled
> and tagged operation does not cause L3 Miss. This causes sampling period skew.
>
> User can configure smaller sampling period to get more samples while
> using l3missonly.
>
>
> Ravi Bangoria (8):
> perf record ibs: Warn about sampling period skew
> perf tool: Parse pmu caps sysfs only once
> perf headers: Pass "cpu" pmu name while printing caps
> perf headers: Store pmu caps in an array of strings
> perf headers: Record non-cpu pmu capabilities
> perf/x86/ibs: Add new IBS register bits into header
> perf tool ibs: Sync amd ibs header file
> perf script ibs: Support new IBS bits in raw trace dump
>
> arch/x86/include/asm/amd-ibs.h | 16 +-
> tools/arch/x86/include/asm/amd-ibs.h | 16 +-
> .../Documentation/perf.data-file-format.txt | 10 +-
> tools/perf/arch/x86/util/evsel.c | 49 +++++
> tools/perf/builtin-inject.c | 2 +-
> tools/perf/util/amd-sample-raw.c | 68 +++++-
> tools/perf/util/env.c | 62 +++++-
> tools/perf/util/env.h | 14 +-
> tools/perf/util/evsel.c | 7 +
> tools/perf/util/evsel.h | 1 +
> tools/perf/util/header.c | 196 ++++++++++--------
> tools/perf/util/header.h | 2 +-
> tools/perf/util/pmu.c | 15 +-
> tools/perf/util/pmu.h | 2 +
> 14 files changed, 333 insertions(+), 127 deletions(-)
>
next prev parent reply other threads:[~2022-06-01 14:18 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-01 3:26 [PATCH v5 0/8] perf/amd: Zen4 IBS extensions support (tool changes) Ravi Bangoria
2022-06-01 3:26 ` [PATCH v5 1/8] perf record ibs: Warn about sampling period skew Ravi Bangoria
2022-06-02 20:30 ` Namhyung Kim
2022-06-03 5:12 ` Ravi Bangoria
2022-06-03 5:28 ` Ravi Bangoria
2022-06-03 19:25 ` Arnaldo Carvalho de Melo
2022-06-01 3:26 ` [PATCH v5 2/8] perf tool: Parse pmu caps sysfs only once Ravi Bangoria
2022-06-01 13:35 ` Liang, Kan
2022-06-01 13:51 ` Ravi Bangoria
2022-06-01 13:55 ` Liang, Kan
2022-06-01 3:26 ` [PATCH v5 3/8] perf headers: Pass "cpu" pmu name while printing caps Ravi Bangoria
2022-06-01 13:35 ` Liang, Kan
2022-06-01 3:26 ` [PATCH v5 4/8] perf headers: Store pmu caps in an array of strings Ravi Bangoria
2022-06-01 13:36 ` Liang, Kan
2022-06-02 21:37 ` Namhyung Kim
2022-06-03 5:20 ` Ravi Bangoria
2022-06-01 3:26 ` [PATCH v5 5/8] perf headers: Record non-cpu pmu capabilities Ravi Bangoria
2022-06-01 13:37 ` Liang, Kan
2022-06-01 13:58 ` Liang, Kan
2022-06-01 3:26 ` [PATCH v5 6/8] perf/x86/ibs: Add new IBS register bits into header Ravi Bangoria
2022-06-02 21:48 ` Namhyung Kim
2022-06-03 5:24 ` Ravi Bangoria
2022-06-01 3:26 ` [PATCH v5 7/8] perf tool ibs: Sync amd ibs header file Ravi Bangoria
2022-06-01 3:26 ` [PATCH v5 8/8] perf script ibs: Support new IBS bits in raw trace dump Ravi Bangoria
2022-06-01 14:04 ` Liang, Kan [this message]
2022-06-01 14:10 ` [PATCH v5 0/8] perf/amd: Zen4 IBS extensions support (tool changes) Ravi Bangoria
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=e49505ea-5af2-41d3-23dc-8c01e20f91ee@linux.intel.com \
--to=kan.liang@linux.intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=ananth.narayan@amd.com \
--cc=bp@alien8.de \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=jolsa@kernel.org \
--cc=kim.phillips@amd.com \
--cc=leo.yan@linaro.org \
--cc=like.xu.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@amd.com \
--cc=rrichter@amd.com \
--cc=sandipan.das@amd.com \
--cc=santosh.shukla@amd.com \
--cc=tglx@linutronix.de \
--cc=x86@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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).