From: James Clark <james.clark@arm.com>
To: Namhyung Kim <namhyung@kernel.org>,
Ian Rogers <irogers@google.com>,
German Gomez <german.gomez@arm.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Jiri Olsa <jolsa@kernel.org>, Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Adrian Hunter <adrian.hunter@intel.com>,
linux-perf-users@vger.kernel.org, Leo Yan <leo.yan@linaro.org>,
Zhengjun Xing <zhengjun.xing@linux.intel.com>,
Athira Jajeev <atrajeev@linux.vnet.ibm.com>
Subject: Re: [PATCH 05/12] perf test: Add 'leafloop' test workload
Date: Fri, 18 Nov 2022 11:32:43 +0000 [thread overview]
Message-ID: <13f1a15c-b14f-b4cd-a523-2ec6df168224@arm.com> (raw)
In-Reply-To: <CAM9d7cioaqjPgp+-UyUwzg7J3OQRC8DNMP0T1h5ro=yNgr128w@mail.gmail.com>
On 17/11/2022 18:11, Namhyung Kim wrote:
> Hi,
>
> On Thu, Nov 17, 2022 at 9:42 AM Ian Rogers <irogers@google.com> wrote:
>>
>> On Thu, Nov 17, 2022 at 9:24 AM Arnaldo Carvalho de Melo
>> <acme@kernel.org> wrote:
>>>
>>> Em Thu, Nov 17, 2022 at 09:16:58AM -0800, Ian Rogers escreveu:
>>>> On Thu, Nov 17, 2022 at 8:15 AM Arnaldo Carvalho de Melo
>>>> <acme@kernel.org> wrote:
>>>>>
>>>>> Em Thu, Nov 17, 2022 at 01:06:16PM -0300, Arnaldo Carvalho de Melo escreveu:
>>>>>> Em Wed, Nov 16, 2022 at 03:38:47PM -0800, Namhyung Kim escreveu:
>>>>>>> The leafloop workload is to run an infinite loop in the test_leaf
>>>>>>> function. This is needed for the ARM fp callgraph test to verify if it
>>>>>>> gets the correct callchains.
>>>>>>>
>>>>>>> $ perf test -w leafloop
>>>>>>
>>>>>> On fedora:36
>>>>>>
>>>>>> In file included from /usr/include/bits/libc-header-start.h:33,
>>>>>> from /usr/include/stdlib.h:26,
>>>>>> from tests/workloads/leafloop.c:2:
>>>>>> /usr/include/features.h:412:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
>>>>>> 412 | # warning _FORTIFY_SOURCE requires compiling with optimization (-O)
>>>>>> | ^~~~~~~
>>>>>> cc1: all warnings being treated as errors
>>>>>> make[5]: *** [/home/acme/git/perf/tools/build/Makefile.build:96: /tmp/build/perf/tests/workloads/leafloop.o] Error 1
>>>>>> make[5]: *** Waiting for unfinished jobs....
>>>>>>
>>>>>> I'll try removing the _FORTIFY_SOURCE
>>>>>
>>>>> Works after I added this to datasym.c, leafloop.c and brstack.c:
>>>>
>>>> Is there a reason we are compiling without -O ? Perhaps we can filter
>>>
>>> I assumed so as Namhyung added it, perhaps he is just carrying it from
>>> the pre-existing shell tests?
>
> Exactly :)
>
>>>
>>> I wonder its to have a predictable binary output that the test expects
>>> when doing things like hardware tracing? As it come from the coresight
>>> tests, IIRC.
>
> I think it just checks frame-pointer based callstacks on ARM to have the
> precise results for leaves and their parents.
>
>
>>
>> Would the following in the Build be better:
>>
>> ```
>> # Undefine _FORTIFY_SOURCE as it doesn't work with -O0
>> CFLAGS_leafloop.o = -g -O0 -fno-inline -fno-omit-frame-pointer
>> -U_FORTIFY_SOURCE
>> ```
>>
>> We could also use make's `filter-out`. If we are disabling inlining
>> then there is also `-fno-optimize-sibling-calls` otherwise we can
>> still lose stack frames.
>
> I wonder if it's enough to use -O0 as it's enabled from -O2.
> Maybe we can get rid of -fno-inline as well.
>
> German, did you have any concerns for those options?
>
Is it possible to go with the -U_FORTIFY_SOURCE option? From looking at
the disassembly, changing -O and the other -f options makes quite a bit
of difference.
It's fairly important to that test because it's testing that the
combination of both frame pointer unwinding and dwarf unwinding result
in the complete stack.
If we change the options I'd have to go back and double check with
different compiler versions that it's still doing the right thing. For
example if a frame pointer is included for the last frame, then the
dwarf bit doesn't get tested.
> Thanks,
> Namhyung
next prev parent reply other threads:[~2022-11-18 11:34 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-16 23:38 [PATCHSET 00/12] perf test: Add test workloads (v3) Namhyung Kim
2022-11-16 23:38 ` [PATCH 01/12] perf test: Add -w/--workload option Namhyung Kim
2022-11-16 23:38 ` [PATCH 02/12] perf test: Replace pipe test workload with noploop Namhyung Kim
2022-11-16 23:38 ` [PATCH 03/12] perf test: Add 'thloop' test workload Namhyung Kim
2022-11-16 23:38 ` [PATCH 04/12] perf test: Replace record test workload with thloop Namhyung Kim
2022-11-16 23:38 ` [PATCH 05/12] perf test: Add 'leafloop' test workload Namhyung Kim
2022-11-17 16:06 ` Arnaldo Carvalho de Melo
2022-11-17 16:15 ` Arnaldo Carvalho de Melo
2022-11-17 17:16 ` Ian Rogers
2022-11-17 17:24 ` Arnaldo Carvalho de Melo
2022-11-17 17:41 ` Ian Rogers
2022-11-17 18:11 ` Namhyung Kim
2022-11-18 11:32 ` James Clark [this message]
2022-11-18 14:58 ` Arnaldo Carvalho de Melo
2022-11-16 23:38 ` [PATCH 06/12] perf test: Replace arm callgraph fp test workload with leafloop Namhyung Kim
2022-11-16 23:38 ` [PATCH 07/12] perf test: Add 'sqrtloop' test workload Namhyung Kim
2022-11-16 23:38 ` [PATCH 08/12] perf test: Replace arm spe fork test workload with sqrtloop Namhyung Kim
2022-11-20 15:39 ` Arnaldo Carvalho de Melo
2022-11-16 23:38 ` [PATCH 09/12] perf test: Add 'brstack' test workload Namhyung Kim
2022-11-16 23:38 ` [PATCH 10/12] perf test: Replace brstack " Namhyung Kim
2022-11-16 23:38 ` [PATCH 11/12] perf test: Add 'datasym' " Namhyung Kim
2022-11-16 23:38 ` [PATCH 12/12] perf test: Replace data symbol test workload with datasym Namhyung Kim
-- strict thread matches above, loose matches on Subject: below --
2022-11-10 18:19 [PATCHSET 00/12] perf test: Add test workloads (v2) Namhyung Kim
2022-11-10 18:19 ` [PATCH 05/12] perf test: Add 'leafloop' test workload Namhyung Kim
2022-11-09 17:46 [PATCHSET 00/12] perf test: Add test workloads (v1) Namhyung Kim
2022-11-09 17:46 ` [PATCH 05/12] perf test: Add 'leafloop' test workload Namhyung Kim
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=13f1a15c-b14f-b4cd-a523-2ec6df168224@arm.com \
--to=james.clark@arm.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=german.gomez@arm.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=zhengjun.xing@linux.intel.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).