All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: Adrian Hunter <adrian.hunter@intel.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ingo Molnar <mingo@kernel.org>
Cc: Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	David Ahern <dsahern@gmail.com>, Jiri Olsa <jolsa@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Wang Nan <wangnan0@huawei.com>
Subject: Re: [PATCH 11/11] perf tools: Stop fallbacking to kallsyms for vdso symbols lookup
Date: Fri, 26 Oct 2018 16:19:52 -0700	[thread overview]
Message-ID: <87a7n070tj.fsf@intel.com> (raw)
In-Reply-To: <4c682937-3cee-6974-0970-68610e13ad37@intel.com>

Hi,

Adrian Hunter <adrian.hunter@intel.com> writes:

> On 18/10/18 1:55 AM, Arnaldo Carvalho de Melo wrote:
>> From: Arnaldo Carvalho de Melo <acme@redhat.com>
>> 
>> David reports that:
>> 
>> <quote>
>> Perf has this hack where it uses the kernel symbol map as a backup when
>> a symbol can't be found in the user's symbol table(s).
>
> I don't think this is a complete fix because it exposes new problems.

This commit broke function name resolution for 'perf record -g' for me.

What I mean is, with this commit applied:

$ ./tools/perf/perf record -g -- sleep 1

$ ./tools/perf/perf report

'perf report' doesn't seem to be able to show the function names of the
trace.

If I revert this commit, function names are resolved fine.


> This code caters for branches from kernel space to user space and vice
> versa. That is, since there is only one cpumode so it is certain to be
> wrong for either 'ip' or 'addr' when they are not both in the kernel
> or both in userspace.
>
>> 
>> 
>> Cc: Adrian Hunter <adrian.hunter@intel.com>
>> Cc: David Ahern <dsahern@gmail.com>
>> Cc: Jiri Olsa <jolsa@kernel.org>
>> Cc: Namhyung Kim <namhyung@kernel.org>
>> Cc: Wang Nan <wangnan0@huawei.com>
>> Link: https://lkml.kernel.org/n/tip-cs7skq9pp0kjypiju6o7trse@git.kernel.org
>> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>> ---
>>  tools/perf/util/event.c | 21 ++-------------------
>>  1 file changed, 2 insertions(+), 19 deletions(-)
>> 
>> diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
>> index 0988eb3b844b..bc646185f8d9 100644
>> --- a/tools/perf/util/event.c
>> +++ b/tools/perf/util/event.c
>> @@ -1561,26 +1561,9 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr,
>>  
>>  		return NULL;
>>  	}
>> -try_again:
>> +
>>  	al->map = map_groups__find(mg, al->addr);
>> -	if (al->map == NULL) {
>> -		/*
>> -		 * If this is outside of all known maps, and is a negative
>> -		 * address, try to look it up in the kernel dso, as it might be
>> -		 * a vsyscall or vdso (which executes in user-mode).
>> -		 *
>> -		 * XXX This is nasty, we should have a symbol list in the
>> -		 * "[vdso]" dso, but for now lets use the old trick of looking
>> -		 * in the whole kernel symbol list.
>> -		 */
>> -		if (cpumode == PERF_RECORD_MISC_USER && machine &&
>> -		    mg != &machine->kmaps &&
>> -		    machine__kernel_ip(machine, al->addr)) {
>> -			mg = &machine->kmaps;
>> -			load_map = true;
>> -			goto try_again;
>> -		}
>> -	} else {
>> +	if (al->map != NULL) {
>>  		/*
>>  		 * Kernel maps might be changed when loading symbols so loading
>>  		 * must be done prior to using kernel maps.
>> 


--
Vinicius

  reply	other threads:[~2018-10-26 23:19 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-17 22:54 [GIT PULL 00/11] perf/urgent fixes Arnaldo Carvalho de Melo
2018-10-17 22:54 ` Arnaldo Carvalho de Melo
2018-10-17 22:54 ` Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 01/11] tools arch uapi: Sync the x86 kvm.h copy Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 02/11] tools headers uapi: Sync " Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 03/11] Revert "perf tools: Fix PMU term format max value calculation" Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 04/11] perf vendor events intel: Fix wrong filter_band* values for uncore events Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 05/11] perf evsel: Store ids for events with their own cpus perf_event__synthesize_event_update_cpus Arnaldo Carvalho de Melo
2018-10-17 22:54   ` Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 06/11] perf tools: Fix use of alternatives to find JDIR Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 07/11] perf tools: Fix tracing_path_mount proper path Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 08/11] perf cpu_map: Align cpu map synthesized events properly Arnaldo Carvalho de Melo
2018-10-17 22:54 ` [PATCH 09/11] perf report: Don't crash on invalid inline debug information Arnaldo Carvalho de Melo
2018-10-17 22:55 ` [PATCH 10/11] perf tools: Pass build flags to traceevent build Arnaldo Carvalho de Melo
2018-10-17 22:55 ` [PATCH 11/11] perf tools: Stop fallbacking to kallsyms for vdso symbols lookup Arnaldo Carvalho de Melo
2018-10-18  6:20   ` Adrian Hunter
2018-10-26 23:19     ` Vinicius Costa Gomes [this message]
2018-10-27 11:05       ` Jiri Olsa
2018-10-27 20:09         ` Vinicius Costa Gomes
2018-10-28 21:10           ` Jiri Olsa
2018-10-18  5:44 ` [GIT PULL 00/11] perf/urgent fixes Ingo Molnar
2018-10-18  5:44   ` Ingo Molnar
2018-10-18  5:44   ` Ingo Molnar

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=87a7n070tj.fsf@intel.com \
    --to=vinicius.gomes@intel.com \
    --cc=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=wangnan0@huawei.com \
    --cc=williams@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.