[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAH0uvog6oxyuQT4TOhGtbK6n0NhFc-JCDZmrK7JztPd4mE7cYA@mail.gmail.com>
Date: Fri, 15 Nov 2024 10:36:45 -0800
From: Howard Chu <howardchu95@...il.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>
Cc: Benjamin Peterson <benjamin@...flow.com>, Namhyung Kim <namhyung@...nel.org>,
Ingo Molnar <mingo@...nel.org>, Thomas Gleixner <tglx@...utronix.de>, Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>, Adrian Hunter <adrian.hunter@...el.com>,
Kan Liang <kan.liang@...ux.intel.com>, Clark Williams <williams@...hat.com>,
linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
Arnaldo Carvalho de Melo <acme@...hat.com>, Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Ingo Molnar <mingo@...hat.com>, Mark Rutland <mark.rutland@....com>,
Peter Zijlstra <peterz@...radead.org>
Subject: Re: [PATCH 2/2] perf test shell trace_exit_race: Use --no-comm to
avoid cases where COMM isn't resolved
perf $ ./perf test "perf trace exit race" -v
110: perf trace exit race : Ok
Tested-by: Howard Chu <howardchu95@...il.com>
Thanks,
Howard
On Fri, Nov 15, 2024 at 7:36 AM Arnaldo Carvalho de Melo
<acme@...nel.org> wrote:
>
> From: Arnaldo Carvalho de Melo <acme@...hat.com>
>
> The purpose of this test is to test for races in the exit of 'perf
> trace' missing the last events, it was failing when the COMM wasn't
> resolved either because we missed some PERF_RECORD_COMM or somehow
> raced on getting it from procfs.
>
> Add --no-comm to the 'perf trace' command line so that we get a
> consistent, pid only output, which allows the test to achieve its goal.
>
> This is the output from
> 'perf trace --no-comm -e syscalls:sys_enter_exit_group':
>
> 0.000 21953 syscalls:sys_enter_exit_group()
> 0.000 21955 syscalls:sys_enter_exit_group()
> 0.000 21957 syscalls:sys_enter_exit_group()
> 0.000 21959 syscalls:sys_enter_exit_group()
> 0.000 21961 syscalls:sys_enter_exit_group()
> 0.000 21963 syscalls:sys_enter_exit_group()
> 0.000 21965 syscalls:sys_enter_exit_group()
> 0.000 21967 syscalls:sys_enter_exit_group()
> 0.000 21969 syscalls:sys_enter_exit_group()
> 0.000 21971 syscalls:sys_enter_exit_group()
>
> Now it passes:
>
> root@...ber:~# perf test "trace exit race"
> 110: perf trace exit race : Ok
> root@...ber:~#
> root@...ber:~# perf test -v "trace exit race"
> 110: perf trace exit race : Ok
> root@...ber:~#
>
> If we artificially make it run just 9 times instead of the 10 it runs,
> i.e. by manually doing:
>
> trace_shutdown_race() {
> for _ in $(seq 9); do
>
> that 9 is $iter, 10 in the patch, we get:
>
> root@...ber:~# vim ~acme/libexec/perf-core/tests/shell/trace_exit_race.sh
> root@...ber:~# perf test -v "trace exit race"
> --- start ---
> test child forked, pid 24629
> Missing output, expected 10 but only got 9
> ---- end(-1) ----
> 110: perf trace exit race : FAILED!
> root@...ber:~#
>
> I.e. 9 'perf trace' calls produced the expected output, the inverse grep
> didn't show anything, so the patch provided by Howard for the previous
> patch kicks in and shows a more informative message.
>
> Cc: Adrian Hunter <adrian.hunter@...el.com>
> Cc: Alexander Shishkin <alexander.shishkin@...ux.intel.com>
> Cc: Benjamin Peterson <benjamin@...flow.com>
> Cc: Howard Chu <howardchu95@...il.com>
> Cc: Ian Rogers <irogers@...gle.com>
> Cc: Ingo Molnar <mingo@...hat.com>
> Cc: Jiri Olsa <jolsa@...nel.org>
> Cc: Kan Liang <kan.liang@...ux.intel.com>
> Cc: Mark Rutland <mark.rutland@....com>
> Cc: Namhyung Kim <namhyung@...nel.org>
> Cc: Peter Zijlstra <peterz@...radead.org>
> Link: https://lore.kernel.org/lkml/ZzdknoHqrJbojb6P@x1
> Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
> ---
> tools/perf/tests/shell/trace_exit_race.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/tests/shell/trace_exit_race.sh b/tools/perf/tests/shell/trace_exit_race.sh
> index 8ea24f4256bc8f5e..fbb0adc33a889516 100755
> --- a/tools/perf/tests/shell/trace_exit_race.sh
> +++ b/tools/perf/tests/shell/trace_exit_race.sh
> @@ -16,11 +16,11 @@ if [ "$1" = "-v" ]; then
> fi
>
> iter=10
> -regexp=" +[0-9]+\.[0-9]+ +true/[0-9]+ syscalls:sys_enter_exit_group\(\)$"
> +regexp=" +[0-9]+\.[0-9]+ [0-9]+ syscalls:sys_enter_exit_group\(\)$"
>
> trace_shutdown_race() {
> for _ in $(seq $iter); do
> - perf trace -e syscalls:sys_enter_exit_group true 2>>$file
> + perf trace --no-comm -e syscalls:sys_enter_exit_group true 2>>$file
> done
> result="$(grep -c -E "$regexp" $file)"
> [ $result = $iter ]
> --
> 2.47.0
>
Powered by blists - more mailing lists