2018-02-11 19:20:45

by Martin Vuille

[permalink] [raw]
Subject: [PATCH] perf annotate: Don't prepend symfs path to build_id_filename

build_id_filename already contains symfs path if applicable, so
don't prepend it a second time.

Signed-off-by: Martin Vuille <[email protected]>
---
tools/perf/util/annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 28b233c3dcbe..425b7f0760ec 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1381,7 +1381,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil

build_id_filename = dso__build_id_filename(dso, NULL, 0, false);
if (build_id_filename) {
- __symbol__join_symfs(filename, filename_size, build_id_filename);
+ scnprintf(filename, filename_size, "%s", build_id_filename);
free(build_id_filename);
} else {
if (dso->has_build_id)
--
2.13.6



2018-03-09 19:08:30

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: Don't prepend symfs path to build_id_filename

Em Sun, Feb 11, 2018 at 02:19:37PM -0500, Martin Vuille escreveu:
> build_id_filename already contains symfs path if applicable, so
> don't prepend it a second time.

Where is the analysis that shows that that is the case? I looked here at
the implementation for dso__build_id_filename() and couldn't find where
was it that the symfs would be appended, can you clarify?

- Arnaldo

> Signed-off-by: Martin Vuille <[email protected]>
> ---
> tools/perf/util/annotate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 28b233c3dcbe..425b7f0760ec 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -1381,7 +1381,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
>
> build_id_filename = dso__build_id_filename(dso, NULL, 0, false);
> if (build_id_filename) {
> - __symbol__join_symfs(filename, filename_size, build_id_filename);
> + scnprintf(filename, filename_size, "%s", build_id_filename);
> free(build_id_filename);
> } else {
> if (dso->has_build_id)
> --
> 2.13.6

2018-03-09 19:27:40

by Martin Vuille

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: Don't prepend symfs path to build_id_filename

dso__build_id_filename calls build_id_cache__linkname

build_id_cache__linkname uses buildid_dir

symbol__config_symfs includes the symfs directory in buildid_dir

So it's not necessary to prepend it again.


Should've included those notes in the original submission.

Will do better next time.

MV


On 03/09/18 14:07, Arnaldo Carvalho de Melo wrote:
> Em Sun, Feb 11, 2018 at 02:19:37PM -0500, Martin Vuille escreveu:
>> build_id_filename already contains symfs path if applicable, so
>> don't prepend it a second time.
> Where is the analysis that shows that that is the case? I looked here at
> the implementation for dso__build_id_filename() and couldn't find where
> was it that the symfs would be appended, can you clarify?
>
> - Arnaldo
>
>> Signed-off-by: Martin Vuille <[email protected]>
>> ---
>> tools/perf/util/annotate.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
>> index 28b233c3dcbe..425b7f0760ec 100644
>> --- a/tools/perf/util/annotate.c
>> +++ b/tools/perf/util/annotate.c
>> @@ -1381,7 +1381,7 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
>>
>> build_id_filename = dso__build_id_filename(dso, NULL, 0, false);
>> if (build_id_filename) {
>> - __symbol__join_symfs(filename, filename_size, build_id_filename);
>> + scnprintf(filename, filename_size, "%s", build_id_filename);
>> free(build_id_filename);
>> } else {
>> if (dso->has_build_id)
>> --
>> 2.13.6


2018-03-13 15:27:20

by Martin Vuille

[permalink] [raw]
Subject: Re: [PATCH] perf annotate: Don't prepend symfs path to build_id_filename

On 03/09/18 14:07, Arnaldo Carvalho de Melo wrote:
> Em Sun, Feb 11, 2018 at 02:19:37PM -0500, Martin Vuille escreveu:
>> build_id_filename already contains symfs path if applicable, so
>> don't prepend it a second time.
> Where is the analysis that shows that that is the case? I looked here at
> the implementation for dso__build_id_filename() and couldn't find where
> was it that the symfs would be appended, can you clarify?
>
> - Arnaldo
>
Patch resubmitted with additional details in commit message:

https://patchwork.kernel.org/patch/10279077/

Regards,
MV