Re: [PATCH] perf test: Fix probe testsuite with a new error message

From: Arnaldo Carvalho de Melo
Date: Thu Oct 10 2024 - 08:48:56 EST


On Wed, Oct 09, 2024 at 10:16:20PM -0700, Namhyung Kim wrote:
> On my system, it's constantly failing because of new error message from
> perf probe. It should update the regex pattern to match the message -
> "A function DIE doesn't have decl_line. Maybe broken DWARF?".
>
> $ sudo head -n 2 /sys/kernel/debug/kprobes/blacklist | cut -f2
> warn_thunk_thunk
> asm_exc_divide_error
>
> $ sudo perf probe warn_thunk_thunk
> A function DIE doesn't have decl_line. Maybe broken DWARF?
> A function DIE doesn't have decl_line. Maybe broken DWARF?
> Probe point 'warn_thunk_thunk' not found.
> Error: Failed to add events.
>
> $ sudo perf probe asm_exc_overflow
> Failed to find scope of probe point.
> Error: Failed to add events.

We discussed this in the past, I came up with a similar patch, Veronika
rightly pointed out that this may point to a real problem, Masami said
that since these are for DWARF from assembly those are known issues, I
suggested Veronika checked if the CU where the function came from was
generated from Assembly (there are DWARF tags that have that info), IIRC
she said she would try to do it.

I'll try to find out the threads and see what happened.

- Arnaldo

> Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> Cc: Michael Petlan <mpetlan@xxxxxxxxxx>
> Cc: Veronika Molnarova <vmolnaro@xxxxxxxxxx>
> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> ---
> tools/perf/tests/shell/base_probe/test_adding_blacklisted.sh | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/tests/shell/base_probe/test_adding_blacklisted.sh b/tools/perf/tests/shell/base_probe/test_adding_blacklisted.sh
> index b5dc10b2a73810b3..01e5e09053c37e46 100755
> --- a/tools/perf/tests/shell/base_probe/test_adding_blacklisted.sh
> +++ b/tools/perf/tests/shell/base_probe/test_adding_blacklisted.sh
> @@ -42,7 +42,8 @@ REGEX_ERROR_MESSAGE="Error: Failed to add events."
> REGEX_INVALID_ARGUMENT="Failed to write event: Invalid argument"
> REGEX_SYMBOL_FAIL="Failed to find symbol at $RE_ADDRESS"
> REGEX_OUT_SECTION="$BLACKFUNC is out of \.\w+, skip it"
> -../common/check_all_lines_matched.pl "$REGEX_SKIP_MESSAGE" "$REGEX_NOT_FOUND_MESSAGE" "$REGEX_ERROR_MESSAGE" "$REGEX_SCOPE_FAIL" "$REGEX_INVALID_ARGUMENT" "$REGEX_SYMBOL_FAIL" "$REGEX_OUT_SECTION" < $LOGS_DIR/adding_blacklisted.err
> +REGEX_BROKEN_DWARF="A function DIE doesn\'t have decl_line\. Maybe broken DWARF\?"
> +../common/check_all_lines_matched.pl "$REGEX_SKIP_MESSAGE" "$REGEX_NOT_FOUND_MESSAGE" "$REGEX_ERROR_MESSAGE" "$REGEX_SCOPE_FAIL" "$REGEX_INVALID_ARGUMENT" "$REGEX_SYMBOL_FAIL" "$REGEX_OUT_SECTION" "$REGEX_BROKEN_DWARF" < $LOGS_DIR/adding_blacklisted.err
> CHECK_EXIT_CODE=$?
>
> print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "adding blacklisted function $BLACKFUNC"
> --
> 2.47.0.rc0.187.ge670bccf7e-goog