mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: John Garry <john.g.garry@oracle.com>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Ravi Bangoria <ravi.bangoria@amd.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 0/3] perf list: Remove duplicate PMUs
Date: Tue, 11 Jul 2023 16:24:22 +0100	[thread overview]
Message-ID: <cd5814af-8ab0-6ab9-9b3c-b5081e54f199@oracle.com> (raw)
In-Reply-To: <CAP-5=fXrOvkwrbEB0GGv6Xr5JOdrW7dzjOL=MkDdxX2McfnzYA@mail.gmail.com>


>>> ```
>>> $ perf list
>>> ...
>>>     uncore_imc_free_running_0/data_read/               [Kernel PMU event]
>>>     uncore_imc_free_running_0/data_total/              [Kernel PMU event]
>>>     uncore_imc_free_running_0/data_write/              [Kernel PMU event]
>>>     uncore_imc_free_running_1/data_read/               [Kernel PMU event]
>>>     uncore_imc_free_running_1/data_total/              [Kernel PMU event]
>>>     uncore_imc_free_running_1/data_write/              [Kernel PMU event]
>>> ```
>>>
>>> After:
>>> ```
>>> $ perf list
>>> ...
>>>     uncore_imc_free_running/data_read/                 [Kernel PMU event]
>>>     uncore_imc_free_running/data_total/                [Kernel PMU event]
>>>     uncore_imc_free_running/data_write/                [Kernel PMU event]
>> So with this change can we run something like:
>>
>> perf stat -e uncore_imc_free_running/data_read/
>>
>> ?
> It is a long standing behavior of the event parser that we match the
> numeric suffixes, so:

I guess that I missed this as I assume that it would not handle more 
complex names, like hisi_sccl1_ddr3, which I was then interested in.

> 
> ```
> $ sudo perf stat -e uncore_imc_free_running/data_read/ -a sleep 1
> 
> Performance counter stats for 'system wide':
> 
>           6,969.93 MiB  uncore_imc_free_running/data_read/
> 
>        1.001163027 seconds time elapsed
> ```
> 
> The "uncore_" at the beginning is also optional, I kind of wish the
> "free_running" was too. The code doing this is:
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/parse-events.y?h=perf-tools-next*n316__;Iw!!ACWV5N9M2RV99hQ!JduVayRc--qLXHsoXWTlMUsO4NBUoBnKQHqP2sx7VuwZiZzfVXaQZNBZuzO2Ie-twWQ1xu7nycBNFJ13LGk$  
> adding a * after the PMU name in:
> asprintf(&pattern, "%s*", $1)
> Then using fnmatch here:
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/pmu.c?h=perf-tools-next*n1707__;Iw!!ACWV5N9M2RV99hQ!JduVayRc--qLXHsoXWTlMUsO4NBUoBnKQHqP2sx7VuwZiZzfVXaQZNBZuzO2Ie-twWQ1xu7nycBNa2_VzYE$  
> 
>> If so, does that match all PMUs whose name beings with
>> "uncore_imc_free_running" (and give aggregate result for those PMUs)?
> Yep. As we're matching with a filename '*' glob then it will actually
> potentially grab a bunch more. I think this should likely be made a
> lot more precise.
> 
> The merging of the counters happens throughout the code, but it is set up here:
> https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/util/stat.c?h=perf-tools-next*n559__;Iw!!ACWV5N9M2RV99hQ!JduVayRc--qLXHsoXWTlMUsO4NBUoBnKQHqP2sx7VuwZiZzfVXaQZNBZuzO2Ie-twWQ1xu7nycBNiVEZvEE$  
> 
> I didn't write this behavior, it has pre-existed my contributions. I'm
> hoping to change the perf list behavior as we're seeing large server
> systems with getting on toward 100 PMUs, the events are replicated for
> each one and the perf list and testing behaviors are somewhat
> exploding in size.

Sure, that is why I was advised PMU kernel drivers event names to be 
unique per PMU, so that we can add an event alias in a JSON and then 
kernel events are matched and removed from perf list.

I suppose that your changes are an alternative to the problem of 
mushrooming kernel event list.

Thanks,
John

  reply	other threads:[~2023-07-11 15:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-11  5:58 Ian Rogers
2023-07-11  5:58 ` [PATCH v1 1/3] perf pmus: Sort pmus by name then suffix Ian Rogers
2023-07-11  5:58 ` [PATCH v1 2/3] perf pmus: Add scan that ignores duplicates, use for perf list Ian Rogers
2023-07-11  5:58 ` [PATCH v1 3/3] perf pmus: Don't print PMU suffix in list Ian Rogers
2023-07-11  8:26 ` [PATCH v1 0/3] perf list: Remove duplicate PMUs John Garry
2023-07-11 15:10   ` Ian Rogers
2023-07-11 15:24     ` John Garry [this message]
2023-08-01 17:39       ` Ian Rogers
2023-08-02 11:15         ` John Garry

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=cd5814af-8ab0-6ab9-9b3c-b5081e54f199@oracle.com \
    --to=john.g.garry@oracle.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.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 \
    /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

all inboxes | Powered by JetHome®