Re: [PATCH] perf auxtrace: Fix address filter duplicate symbol selection

From: Arnaldo Carvalho de Melo
Date: Wed Jan 11 2023 - 08:16:53 EST


Em Tue, Jan 10, 2023 at 08:56:59PM +0200, Adrian Hunter escreveu:
> After:
>
> $ perf record -e intel_pt//u --filter 'filter func #2 @ ./test' -- ./test
> First func
> Second func
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.016 MB perf.data ]
> $ perf script --itrace=b -Ftime,flags,ip,sym,addr --ns
> 1231062.526977619: tr strt 0 [unknown] => 558495708179 func
> 1231062.526977619: tr end call 558495708188 func => 558495708050 _init
> 1231062.526979286: tr strt 0 [unknown] => 55849570818d func
> 1231062.526979286: tr end return 55849570818f func => 55849570819d other
>
> Reported-by: Dmitry Dolgov <9erthalion6@xxxxxxxxx>
> Fixes: 1b36c03e3569 ("perf record: Add support for using symbols in address filters")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

Thanks, applied.

Dmitry, can I have your Tested-by? Checking the original thread...

- Arnaldo

> ---
> tools/perf/util/auxtrace.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
> index 265d20cc126b..c2e323cd7d49 100644
> --- a/tools/perf/util/auxtrace.c
> +++ b/tools/perf/util/auxtrace.c
> @@ -2611,7 +2611,7 @@ static int find_dso_sym(struct dso *dso, const char *sym_name, u64 *start,
> *size = sym->start - *start;
> if (idx > 0) {
> if (*size)
> - return 1;
> + return 0;
> } else if (dso_sym_match(sym, sym_name, &cnt, idx)) {
> print_duplicate_syms(dso, sym_name);
> return -EINVAL;
> --
> 2.34.1