From: James Clark <james.clark@linaro.org>
To: Ian Rogers <irogers@google.com>
Cc: linux-perf-users@vger.kernel.org,
John Garry <john.g.garry@oracle.com>,
Will Deacon <will@kernel.org>, Mike Leach <mike.leach@linaro.org>,
Leo Yan <leo.yan@linux.dev>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
"Liang, Kan" <kan.liang@linux.intel.com>,
Yang Jihong <yangjihong1@huawei.com>,
Ze Gao <zegao2021@gmail.com>,
Dominique Martinet <asmadeus@codewreck.org>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/7] perf stat: Initialize instead of overwriting clock event
Date: Tue, 13 Aug 2024 15:56:06 +0100 [thread overview]
Message-ID: <9c0ab8c6-fdb1-49b2-a030-b74e779b6e48@linaro.org> (raw)
In-Reply-To: <CAP-5=fXYSLH9QcvdgV0D8Z-FoVxO25F_SN0BUdge4G_eCDDjZg@mail.gmail.com>
On 13/08/2024 3:43 pm, Ian Rogers wrote:
> On Tue, Aug 13, 2024 at 7:38 AM James Clark <james.clark@linaro.org> wrote:
>>
>>
>>
>> On 13/08/2024 3:28 pm, Ian Rogers wrote:
>>> On Tue, Aug 13, 2024 at 6:24 AM James Clark <james.clark@linaro.org> wrote:
>>>>
>>>> This overwrite relies on the clock event remaining at index 0 and is
>>>> quite a way down from where the array is initialized, making it easy to
>>>> miss. Just initialize it with the correct clock event to begin with.
>>>>
>>>> Signed-off-by: James Clark <james.clark@linaro.org>
>>>> ---
>>>> tools/perf/builtin-stat.c | 7 +++----
>>>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
>>>> index 1f92445f7480..a65f58f8783f 100644
>>>> --- a/tools/perf/builtin-stat.c
>>>> +++ b/tools/perf/builtin-stat.c
>>>> @@ -1817,7 +1817,9 @@ static int add_default_attributes(void)
>>>> {
>>>> struct perf_event_attr default_attrs0[] = {
>>>>
>>>> - { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK },
>>>> + { .type = PERF_TYPE_SOFTWARE, .config = target__has_cpu(&target) ?
>>>> + PERF_COUNT_SW_CPU_CLOCK :
>>>> + PERF_COUNT_SW_TASK_CLOCK },
>>>
>>> Hand crafting perf_event_attr when we have an event name to
>>> perf_event_atttr parser doesn't make sense. Doing things this way
>>> means we need to duplicate logic between event parsing and these
>>> default configurations. The default configurations are also using
>>> legacy events which of course are broken on Apple ARM M? (albeit for
>>> hardware events, here it is software). Event and metric parsing has to
>>> worry about things like grouping topdown events. All-in-all let's have
>>> one way to do things, event parsing, otherwise this code is going to
>>> end up reinventing all the workarounds the event parsing has to have.
>>> Lots of struct perf_event_attr also contribute to binary size.
>>>
>>> If you are worried about a cycles event being opened on arm_dsu PMUs,
>>> there is this patch:
>>> https://lore.kernel.org/lkml/20240525152927.665498-1-irogers@google.com/
>>>
>>> Thanks,
>>> Ian
>>
>> Hi Ian,
>>
>> Is this comment related to this patch specifically or is it more of a
>> general comment?
>>
>> This patch doesn't really make any actual changes other than move one
>> line of code from one place to another.
>
> James, this code is removed here:
> https://lore.kernel.org/lkml/20240510053705.2462258-4-irogers@google.com/
>
> Thanks,
> Ian
Oh I see yeah. We can still work on that change, merging this one
doesn't necessarily have to block that one, it just makes this one a bit
redundant when the other one gets done.
If I remember correctly in one of the last related discussions we
thought that opening the cycles event as a sampling event should be a
softer warning?
Actually it seems like the DSU cycles event is a non-issue specifically
for perf stat because it will open successfully anyway? It was just in
perf record where it was the issue?
next prev parent reply other threads:[~2024-08-13 14:56 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-13 13:23 [PATCH 0/7] perf stat: Make default perf stat command work on Arm big.LITTLE James Clark
2024-08-13 13:23 ` [PATCH 1/7] perf stat: Initialize instead of overwriting clock event James Clark
2024-08-13 14:28 ` Ian Rogers
2024-08-13 14:38 ` James Clark
2024-08-13 14:43 ` Ian Rogers
2024-08-13 14:56 ` James Clark [this message]
2024-08-13 13:23 ` [PATCH 2/7] perf stat: Remove unused default_null_attrs James Clark
2024-08-13 13:23 ` [PATCH 3/7] perf evsel: Use the same arch_evsel__hw_name() on arm64 as x86 James Clark
2024-08-13 13:23 ` [PATCH 4/7] perf evsel: Remove duplicated __evsel__hw_name() code James Clark
2024-08-13 13:23 ` [PATCH 5/7] perf evlist: Use hybrid default attrs whenever extended type is supported James Clark
2024-08-13 13:33 ` James Clark
2024-08-13 13:23 ` [PATCH 6/7] perf test: Make stat test work on DT devices James Clark
2024-08-13 13:23 ` [PATCH 7/7] perf test: Add a test for default perf stat command James Clark
2024-08-13 14:35 ` [PATCH 0/7] perf stat: Make default perf stat command work on Arm big.LITTLE Ian Rogers
2024-08-13 14:45 ` James Clark
2024-08-13 15:10 ` James Clark
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=9c0ab8c6-fdb1-49b2-a030-b74e779b6e48@linaro.org \
--to=james.clark@linaro.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=asmadeus@codewreck.org \
--cc=irogers@google.com \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=leo.yan@linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mike.leach@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=will@kernel.org \
--cc=yangjihong1@huawei.com \
--cc=zegao2021@gmail.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;
as well as URLs for NNTP newsgroup(s).