lkml.org 
[lkml]   [2015]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v1] perf callchain: fix kernel symbol resolution by remembering the cpumode
> 
>
> > Commit 2e77784bb7d8 ("perf callchain: Move cpumode resolve code to
> > add_callchain_ip") promised "No change in behavior.".
> >
> > As this commit breaks callchains on s390x (symbols not getting resolved,
> > observed when profiling the kernel), this statement is wrong. The
> > cpumode must be kept when iterating over all ips, otherwise the default
> > (PERF_RECORD_MISC_USER) will be used by error.
>
> Indeed.
> Besides thread__resolve_callchain_sample, lbr path also need to
> be patched.

Thanks, I'll include that and send another version.

David

>
> @@ -1538,6 +1536,7 @@ static int resolve_lbr_callchain_sample
> (struct thread *thread,
> {
> struct ip_callchain *chain = sample->callchain;
> int chain_nr = min(max_stack, (int)chain->nr);
> + u8 cpumode = PERF_RECORD_MISC_USER;
> int i, j, err;
> u64 ip;
>
> @@ -1584,7 +1583,7 @@ static int resolve_lbr_callchain_sample
> (struct thread *thread,
> ip = lbr_stack->entries[0].to;
> }
>
> - err = add_callchain_ip(thread, parent, root_al, false, ip);
> + err = add_callchain_ip(thread, parent, root_al, &cpumode, ip);
> if (err)
> return (err < 0) ? err : 0;
> }
>
> Thanks,
> Kan
>



\
 
 \ /
  Last update: 2015-03-27 20:21    [W:0.070 / U:0.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site