Messages in this thread | | | Date | Tue, 8 Sep 2015 17:34:56 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH] perf report: Fix invalid memory accessing |
| |
On Tue, Sep 08, 2015 at 12:18:13PM -0300, Arnaldo Carvalho de Melo wrote: > Em Tue, Sep 08, 2015 at 09:37:47AM +0200, Jiri Olsa escreveu: > > On Mon, Sep 07, 2015 at 09:27:26PM +0800, Wangnan (F) wrote: > > > > SNIP > > > > > > > > I found the problem. > > > > > > perf relies on build_cpu_topology() to fetch CPU_TOPOLOGY from sysfs. It > > > depend on > > > the existance of > > > > > > /sys/devices/system/cpu/cpu%d/topology/core_siblings_list > > > > > > However, CPU can be canceled by hotcpu subsystem. After that the directory > > > of > > > /sys/devices/system/cpu/cpu%d/topology is gone, which causes perf's > > > write_cpu_topology() --> uild_cpu_topology() to fail, result in the above > > > perf.data. > > > > > > So I think my patch is required. > > > > no question there.. I just meant it should be placed in > > perf_event__preprocess_sample function with the rest of > > the 'al' initialization, like in the patch below? > > > > it does not compile, because there're many places calling > > it and it'd need changing all callers to pass env, which > > seems to require more changes.. > > Humm, I think that we can have a pointer to the current perf_env, be it > from the current machine, or from the machine environment in the > perf.data file in struct machine, that way we don't need to change that > function prototype, I'm prototyping this now, will post a patch.
I was thinking of that.. but the perf_env is actualyl related to the perf.data not to the current machine.. I think it should be part of the session or perf_header
jirka
| |