All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Kan Liang <kan.liang@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
	Peter Zijlstra <peterz@infradead.org>,
	rrichter@amd.com, Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>, James Clark <james.clark@arm.com>,
	Leo Yan <leo.yan@linaro.org>, Andi Kleen <ak@linux.intel.com>,
	Stephane Eranian <eranian@google.com>,
	like.xu.linux@gmail.com, x86@kernel.org,
	linux-perf-users <linux-perf-users@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Sandipan Das <sandipan.das@amd.com>,
	ananth.narayan@amd.com, Kim Phillips <kim.phillips@amd.com>,
	santosh.shukla@amd.com
Subject: Re: [PATCH v6 0/8] perf/amd: Zen4 IBS extensions support (tool changes)
Date: Mon, 6 Jun 2022 16:46:57 -0700	[thread overview]
Message-ID: <CAM9d7ci9Th4Aye51G+X5F12BiDXTnffZdj-A+HGRfUX_nWuQdw@mail.gmail.com> (raw)
In-Reply-To: <20220604044519.594-1-ravi.bangoria@amd.com>

Hi Ravi,

On Fri, Jun 3, 2022 at 9:46 PM Ravi Bangoria <ravi.bangoria@amd.com> wrote:
>
> Kernel side of changes have already been applied to linus/master
> (except amd-ibs.h header). This series contains perf tool changes.
>
> v5: https://lore.kernel.org/lkml/20220601032608.1034-1-ravi.bangoria@amd.com
> v5->v6:
>  - Use macros instead of magic numbers for IBS l3missonly bits
>  - Use asprintf() instead of allocating memory and copying data manually
>  - Add Reviewed-by Kan Liang (patch 2-5).
>
> Patches prepared 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

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung


>
>  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              |  52 +++++
>  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                      | 189 ++++++++++--------
>  tools/perf/util/header.h                      |   2 +-
>  tools/perf/util/pmu.c                         |  15 +-
>  tools/perf/util/pmu.h                         |   2 +
>  14 files changed, 329 insertions(+), 127 deletions(-)
>
> --
> 2.31.1
>

  parent reply	other threads:[~2022-06-06 23:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-04  4:45 [PATCH v6 0/8] perf/amd: Zen4 IBS extensions support (tool changes) Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 1/8] perf record ibs: Warn about sampling period skew Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 2/8] perf tool: Parse pmu caps sysfs only once Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 3/8] perf headers: Pass "cpu" pmu name while printing caps Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 4/8] perf headers: Store pmu caps in an array of strings Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 5/8] perf headers: Record non-cpu pmu capabilities Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 6/8] perf/x86/ibs: Add new IBS register bits into header Ravi Bangoria
2022-07-27 12:09   ` [tip: perf/core] " tip-bot2 for Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 7/8] perf tool ibs: Sync amd ibs header file Ravi Bangoria
2022-06-04  4:45 ` [PATCH v6 8/8] perf script ibs: Support new IBS bits in raw trace dump Ravi Bangoria
2022-06-06 23:46 ` Namhyung Kim [this message]
2022-06-24 16:19   ` [PATCH v6 0/8] perf/amd: Zen4 IBS extensions support (tool changes) Arnaldo Carvalho de Melo
2022-06-27  4:20     ` 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=CAM9d7ci9Th4Aye51G+X5F12BiDXTnffZdj-A+HGRfUX_nWuQdw@mail.gmail.com \
    --to=namhyung@kernel.org \
    --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=kan.liang@linux.intel.com \
    --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=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 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.