linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ravi Bangoria <ravi.bangoria@amd.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Jiri Olsa <olsajiri@gmail.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Ian Rogers <irogers@google.com>, Joe Mario <jmario@redhat.com>,
	Leo Yan <leo.yan@linaro.org>, Ali Saidi <alisaidi@amazon.com>,
	Andi Kleen <ak@linux.intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>, X86 ML <x86@kernel.org>,
	linux-perf-users <linux-perf-users@vger.kernel.org>,
	Linux Kernel Mailing List <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, ravi.bangoria@amd.com
Subject: Re: [PATCH v2 00/14] perf mem/c2c: Add support for AMD
Date: Fri, 22 Jul 2022 07:51:27 +0530	[thread overview]
Message-ID: <ef9034a6-c4b2-ff82-a56c-bd7df2d10884@amd.com> (raw)
In-Reply-To: <CA+JHD91X9_dMV-sXho_L9k326-Eneor4ZeOtw_WgWNtHbKzWxg@mail.gmail.com>

On 21-Jul-22 10:54 PM, Arnaldo Carvalho de Melo wrote:
> Ping.
> 
> On Mon, Jul 18, 2022, 12:34 PM Arnaldo Carvalho de Melo <
> arnaldo.melo@gmail.com> wrote:
> 
>> Em Tue, Jul 12, 2022 at 01:35:25PM +0200, Jiri Olsa escreveu:
>>> On Thu, Jun 16, 2022 at 05:06:23PM +0530, Ravi Bangoria wrote:
>>>> Perf mem and c2c tools are wrappers around perf record with mem load/
>>>> store events. IBS tagged load/store sample provides most of the
>>>> information needed for these tools. Enable support for these tools on
>>>> AMD Zen processors based on IBS Op pmu.
>>>>
>>>> There are some limitations though: Only load/store instructions provide
>>>> mem/c2c information. However, IBS does not provide a way to choose a
>>>> particular type of instruction to tag. This results in many non-LS
>>>> instructions being tagged which appear as N/A. IBS, being an uncore pmu
>>>> from kernel point of view[1], does not support per process monitoring.
>>>> Thus, perf mem/c2c on AMD are currently supported in per-cpu mode only.
>>>>
>>>> Example:
>>>>   $ sudo ./perf mem record -- -c 10000
>>>>   ^C[ perf record: Woken up 227 times to write data ]
>>>>   [ perf record: Captured and wrote 58.760 MB perf.data (836978
>> samples) ]
>>>>
>>>>   $ sudo ./perf mem report -F mem,sample,snoop
>>>>   Samples: 836K of event 'ibs_op//', Event count (approx.): 8418762
>>>>   Memory access                  Samples  Snoop
>>>>   N/A                             700620  N/A
>>>>   L1 hit                          126675  N/A
>>>>   L2 hit                             424  N/A
>>>>   L3 hit                             664  HitM
>>>>   L3 hit                              10  N/A
>>>>   Local RAM hit                        2  N/A
>>>>   Remote RAM (1 hop) hit            8558  N/A
>>>>   Remote Cache (1 hop) hit             3  N/A
>>>>   Remote Cache (1 hop) hit             2  HitM
>>>>   Remote Cache (2 hops) hit            10  HitM
>>>>   Remote Cache (2 hops) hit             6  N/A
>>>>   Uncached hit                         4  N/A
>>>>
>>>> Prepared on amd/perf/core (9886142c7a22) + IBS Zen4 enhancement
>> patches[2]
>>>>
>>>> [1]:
>> https://lore.kernel.org/lkml/20220113134743.1292-1-ravi.bangoria@amd.com
>>>> [2]:
>> https://lore.kernel.org/lkml/20220604044519.594-1-ravi.bangoria@amd.com
>>>>
>>>> v1:
>> https://lore.kernel.org/lkml/20220525093938.4101-1-ravi.bangoria@amd.com
>>>> v1->v2:
>>>>  - Instead of defining macros to extract IBS register bits, use
>> existing
>>>>    bitfield definitions. Zen4 has introduced additional set of bits in
>>>>    IBS registers which this series also exploits and thus this series
>>>>    now depends on IBS Zen4 enhancement patchset.
>>>>  - Add support for PERF_SAMPLE_WEIGHT_STRUCT. While opening a new
>> event,
>>>>    perf tool starts with a set of attributes and goes on reverting some
>>>>    attributes in a predefined order until it succeeds or run out or all
>>>>    attempts. Here, 1st attempt includes WEIGHT_STRUCT and exclude_guest
>>>>    which always fails because IBS does not support guest filtering. The
>>>>    problem however is, perf reverts WEIGHT_STRUCT but keeps trying with
>>>>    exclude_guest. Thus, although, this series enables WEIGHT_STRUCT
>>>>    support from kernel, using it from the perf tool need more changes.
>>>>    I'll try to address this bug later.
>>>>  - Introduce __PERF_SAMPLE_CALLCHAIN_EARLY to hint generic perf driver
>>>>    that physical address is set by arch pmu driver and should not be
>>>>    overwritten.
>>>>
>>>>
>>>> Ravi Bangoria (14):
>>>>   perf/mem: Introduce PERF_MEM_LVLNUM_{EXTN_MEM|IO}
>>>>   perf/x86/amd: Add IBS OP_DATA2 DataSrc bit definitions
>>>>   perf/x86/amd: Support PERF_SAMPLE_DATA_SRC
>>>>   perf/x86/amd: Support PERF_SAMPLE_{WEIGHT|WEIGHT_STRUCT}
>>>>   perf/x86/amd: Support PERF_SAMPLE_ADDR
>>>>   perf/x86/amd: Support PERF_SAMPLE_PHY_ADDR
>>>>   perf tool: Sync include/uapi/linux/perf_event.h header
>>>>   perf tool: Sync arch/x86/include/asm/amd-ibs.h header
>>>>   perf mem: Add support for printing PERF_MEM_LVLNUM_{EXTN_MEM|IO}
>>>>   perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events
>>>>   perf mem/c2c: Add load store event mappings for AMD
>>>>   perf mem/c2c: Avoid printing empty lines for unsupported events
>>>>   perf mem: Use more generic term for LFB
>>>>   perf script: Add missing fields in usage hint
>>>
>>> tools part looks good to me
>>>
>>> Acked-by: Jiri Olsa <jolsa@kernel.org>
>>
>> What about the kernel bits? PeterZ? Is this in some tip branch?

Peter, Would you able to pick this up for next merge window? Please
note that, one dependency patch needs to be applied first from "IBS
Zen4 enhancement" series:

[PATCH v6 6/8] perf/x86/ibs: Add new IBS register bits into header
https://lore.kernel.org/lkml/20220604044519.594-7-ravi.bangoria@amd.com

Please let me know if you face any issues.

Thanks,
Ravi

  parent reply	other threads:[~2022-07-22  2:21 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-16 11:36 [PATCH v2 00/14] perf mem/c2c: Add support for AMD Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 01/14] perf/mem: Introduce PERF_MEM_LVLNUM_{EXTN_MEM|IO} Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 02/14] perf/x86/amd: Add IBS OP_DATA2 DataSrc bit definitions Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 03/14] perf/x86/amd: Support PERF_SAMPLE_DATA_SRC Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 04/14] perf/x86/amd: Support PERF_SAMPLE_{WEIGHT|WEIGHT_STRUCT} Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 05/14] perf/x86/amd: Support PERF_SAMPLE_ADDR Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 06/14] perf/x86/amd: Support PERF_SAMPLE_PHY_ADDR Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 07/14] perf tool: Sync include/uapi/linux/perf_event.h header Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 08/14] perf tool: Sync arch/x86/include/asm/amd-ibs.h header Ravi Bangoria
2022-06-16 11:36 ` [PATCH v2 09/14] perf mem: Add support for printing PERF_MEM_LVLNUM_{EXTN_MEM|IO} Ravi Bangoria
2022-06-16 11:52 ` [PATCH v2 10/14] perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events Ravi Bangoria
2022-06-16 11:52   ` [PATCH v2 11/14] perf mem/c2c: Add load store event mappings for AMD Ravi Bangoria
2022-06-16 11:52   ` [PATCH v2 12/14] perf mem/c2c: Avoid printing empty lines for unsupported events Ravi Bangoria
2022-06-16 11:52   ` [PATCH v2 13/14] perf mem: Use more generic term for LFB Ravi Bangoria
2022-06-16 11:52   ` [PATCH v2 14/14] perf script: Add missing fields in usage hint Ravi Bangoria
2022-07-12  9:00 ` [PATCH v2 00/14] perf mem/c2c: Add support for AMD Ravi Bangoria
2022-07-12 11:35 ` Jiri Olsa
2022-07-18 15:34   ` Arnaldo Carvalho de Melo
     [not found]     ` <CA+JHD91X9_dMV-sXho_L9k326-Eneor4ZeOtw_WgWNtHbKzWxg@mail.gmail.com>
2022-07-22  2:21       ` Ravi Bangoria [this message]
2022-08-10 13:26         ` Arnaldo Carvalho de Melo
2022-08-25 11:16         ` 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=ef9034a6-c4b2-ff82-a56c-bd7df2d10884@amd.com \
    --to=ravi.bangoria@amd.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=alisaidi@amazon.com \
    --cc=ananth.narayan@amd.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=irogers@google.com \
    --cc=jmario@redhat.com \
    --cc=kan.liang@linux.intel.com \
    --cc=kim.phillips@amd.com \
    --cc=leo.yan@linaro.org \
    --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=olsajiri@gmail.com \
    --cc=peterz@infradead.org \
    --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).