public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Ian Rogers <irogers@google.com>
Cc: peterz@infradead.org, mingo@kernel.org, acme@kernel.org,
	namhyung@kernel.org, adrian.hunter@intel.com,
	alexander.shishkin@linux.intel.com, linux-kernel@vger.kernel.org,
	ak@linux.intel.com, eranian@google.com
Subject: Re: [PATCH V2 00/13] Support Lunar Lake and Arrow Lake core PMU
Date: Wed, 26 Jun 2024 09:11:42 -0400	[thread overview]
Message-ID: <2a4a8ef5-a292-42a8-80fa-a2e8373ab375@linux.intel.com> (raw)
In-Reply-To: <CAP-5=fXvmDSPVOWhcNzSZ7icBh6PhdgpbopFCZgzZWYk_kGadA@mail.gmail.com>



On 2024-06-26 1:20 a.m., Ian Rogers wrote:
> On Tue, Jun 25, 2024 at 11:22 AM <kan.liang@linux.intel.com> wrote:
>>
>> From: Kan Liang <kan.liang@linux.intel.com>
>>
>> Changes since V1:
>> - Add x86/intel_pmu_max_num_pebs/counters/counters_fixed()
>> - Rename model-specific pebs_latency_data functions
>> - Rename V6 counter MSRs
>>
>> From the core PMU' perspective, the Lunar Lake and Arrow Lake are the
>> same, which are similar to the previous generation Meteor Lake. Both are
>> hybrid platforms, with e-core and p-core.
>>
>> The key differences include:
>> - The e-core supports 3 new fixed counters
>> - The p-core supports an updated PEBS Data Source format
>> - More GP counters (Updated event constraint table)
>> - New Architectural performance monitoring V6
>>   (New Perfmon MSRs aliasing, umask2, eq).
>> - New PEBS format V6 (Counters Snapshotting group)
>> - New RDPMC metrics clear mode
>>
>> The details for the above new features can be found in the Intel
>> Architecture Instruction Set Extensions and Future Features (052).
>> https://cdrdv2.intel.com/v1/dl/getContent/671368
>>
>> The counters may not be continuous anymore. Patch 1-2 converts the max
>> number of counters to a mask of counters. The change is a generic change
>> which impacts all X86 platforms.
>>
>> Patch 3-4 supports all the legacy features on LNL and ARL.
>>
>> Patch 5-7 supports the new Architectural performance monitoring V6.
>>
>> Patch 8-11 supports the new PEBS format V6.
>>
>> Patch 12 supports the new RDPMC metrics clear mode.
>>
>> Kan Liang (13):
>>   perf/x86/intel: Support the PEBS event mask
>>   perf/x86: Support counter mask
>>   perf/x86: Add Lunar Lake and Arrow Lake support
>>   perf/x86/intel: Rename model-specific pebs_latency_data functions
>>   perf/x86/intel: Support new data source for Lunar Lake
>>   perf/x86: Add config_mask to represent EVENTSEL bitmask
>>   perf/x86/intel: Support PERFEVTSEL extension
>>   perf/x86/intel: Support Perfmon MSRs aliasing
>>   perf/x86: Extend event update interface
>>   perf: Extend perf_output_read
>>   perf/x86/intel: Move PEBS event update after the sample output
>>   perf/x86/intel: Support PEBS counters snapshotting
>>   perf/x86/intel: Support RDPMC metrics clear mode
> 
> Fwiw and beside the nit:
> 
> Reviewed-by: Ian Rogers <irogers@google.com>

Thanks!

> 
> It seems some of the behaviors could have tests upon them, would it be
> possible to add them skipping the test on older and non-Intel
> architectures?

I think only the two features (Architectural performance monitoring V6
and the RDPMC metrics clear mode) add new formats, which impacts the ABI.

The perf tool has a "Sysfs PMU tests" case to verify the event format.
It creates a fake sysfs mount to verify all the possible format
definitions, rather than the real format on a given machine.

I think the test case make sense, since it's impossible to test all the
formats. As long as all the possible combinations of the format
definition are supported, the perf tool should be good.

The umask becomes non-contiguous in V6. There is already a case in the
"Sysfs PMU tests" to cover such format definition.
The current perf test should be good enough to cover the ABI changes.

9: Sysfs PMU tests                                                 :
9.1: Parsing with PMU format directory                             : Ok
9.2: Parsing with PMU event                                        : Ok
9.3: PMU event names                                               : Ok
9.4: PMU name combining                                            : Ok
9.5: PMU name comparison                                           : Ok
Thanks,
Kan
> 
> Thanks,
> Ian
> 
>>  arch/x86/events/amd/core.c           |  26 +-
>>  arch/x86/events/core.c               | 123 +++----
>>  arch/x86/events/intel/core.c         | 471 ++++++++++++++++++++-------
>>  arch/x86/events/intel/ds.c           | 288 +++++++++++++---
>>  arch/x86/events/intel/knc.c          |   2 +-
>>  arch/x86/events/intel/p4.c           |  12 +-
>>  arch/x86/events/intel/p6.c           |   2 +-
>>  arch/x86/events/perf_event.h         | 105 +++++-
>>  arch/x86/events/perf_event_flags.h   |   2 +-
>>  arch/x86/events/zhaoxin/core.c       |  14 +-
>>  arch/x86/include/asm/intel_ds.h      |   1 +
>>  arch/x86/include/asm/msr-index.h     |   6 +
>>  arch/x86/include/asm/perf_event.h    |  27 ++
>>  include/uapi/linux/perf_event.h      |   6 +-
>>  kernel/events/core.c                 |  15 +-
>>  tools/perf/Documentation/topdown.txt |   9 +-
>>  16 files changed, 839 insertions(+), 270 deletions(-)
>>
>> --
>> 2.35.1
>>
> 

  reply	other threads:[~2024-06-26 13:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-25 18:22 [PATCH V2 00/13] Support Lunar Lake and Arrow Lake core PMU kan.liang
2024-06-25 18:22 ` [PATCH V2 01/13] perf/x86/intel: Support the PEBS event mask kan.liang
2024-06-25 18:22 ` [PATCH V2 02/13] perf/x86: Support counter mask kan.liang
2024-06-25 18:22 ` [PATCH V2 03/13] perf/x86: Add Lunar Lake and Arrow Lake support kan.liang
2024-06-25 18:22 ` [PATCH V2 04/13] perf/x86/intel: Rename model-specific pebs_latency_data functions kan.liang
2024-06-25 18:22 ` [PATCH V2 05/13] perf/x86/intel: Support new data source for Lunar Lake kan.liang
2024-06-25 18:22 ` [PATCH V2 06/13] perf/x86: Add config_mask to represent EVENTSEL bitmask kan.liang
2024-06-25 18:22 ` [PATCH V2 07/13] perf/x86/intel: Support PERFEVTSEL extension kan.liang
2024-06-26  1:34   ` Ian Rogers
2024-06-26 13:25     ` Liang, Kan
2024-06-26 17:27       ` Ian Rogers
2024-06-25 18:22 ` [PATCH V2 08/13] perf/x86/intel: Support Perfmon MSRs aliasing kan.liang
2024-06-25 18:22 ` [PATCH V2 09/13] perf/x86: Extend event update interface kan.liang
2024-06-25 18:22 ` [PATCH V2 10/13] perf: Extend perf_output_read kan.liang
2024-06-25 18:22 ` [PATCH V2 11/13] perf/x86/intel: Move PEBS event update after the sample output kan.liang
2024-06-25 18:22 ` [PATCH V2 12/13] perf/x86/intel: Support PEBS counters snapshotting kan.liang
2024-06-25 18:22 ` [PATCH V2 13/13] perf/x86/intel: Support RDPMC metrics clear mode kan.liang
2024-06-26  5:20 ` [PATCH V2 00/13] Support Lunar Lake and Arrow Lake core PMU Ian Rogers
2024-06-26 13:11   ` Liang, Kan [this message]
2024-06-26 17:22     ` Ian Rogers
2024-06-26 18:55       ` Liang, Kan

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=2a4a8ef5-a292-42a8-80fa-a2e8373ab375@linux.intel.com \
    --to=kan.liang@linux.intel.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.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