lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABPqkBTTE=36vjMuXjiPojAYsTQfYzSk7=3Jo2WC4ryh7+gpaQ@mail.gmail.com>
Date:	Thu, 10 Jan 2013 22:53:26 +0100
From:	Stephane Eranian <eranian@...gle.com>
To:	Jiri Olsa <jolsa@...hat.com>
Cc:	LKML <linux-kernel@...r.kernel.org>,
	Peter Zijlstra <peterz@...radead.org>,
	"mingo@...e.hu" <mingo@...e.hu>,
	"ak@...ux.intel.com" <ak@...ux.intel.com>,
	Arnaldo Carvalho de Melo <acme@...hat.com>,
	Namhyung Kim <namhyung.kim@....com>
Subject: Re: [PATCH v5 11/18] perf tools: add mem access sampling core support

On Wed, Jan 9, 2013 at 5:55 PM, Jiri Olsa <jolsa@...hat.com> wrote:
> On Mon, Jan 07, 2013 at 07:27:50PM +0100, Stephane Eranian wrote:
>
> SNIP
>
>>
>> +static void ip__resolve_data(struct machine *self, struct thread *thread,
>> +                          u8 m,
>> +                         struct addr_map_symbol *ams,
>> +                         u64 addr)
>> +{
>> +     struct addr_location al;
>> +
>> +     memset(&al, 0, sizeof(al));
>> +
>> +     thread__find_addr_location(thread, self, m, MAP__VARIABLE, addr, &al,
>> +                                NULL);
>> +     ams->addr = addr;
>> +     ams->al_addr = al.addr;
>> +     ams->sym = al.sym;
>> +     ams->map = al.map;
>> +}
>> +
>> +struct mem_info *machine__resolve_mem(struct machine *self,
>> +                                   struct thread *thr,
>> +                                   struct perf_sample *sample,
>> +                                   u8 cpumode)
>> +{
>> +     struct mem_info *mi;
>> +
>> +     mi = calloc(1, sizeof(struct mem_info));
>> +     if (!mi)
>> +             return NULL;
>> +
>> +     ip__resolve_ams(self, thr, &mi->iaddr, sample->ip);
>> +     ip__resolve_data(self, thr, cpumode, &mi->daddr, sample->addr);
>> +     mi->cost = sample->weight;
>> +     mi->dsrc.val = sample->dsrc;
>> +
>> +     return mi;
>> +}
>> +
>
> The crash I report is due to the some maps could be removed
> via map_groups__fixup_overlappings.
>
> Attached patch makes the code working for me, but we might
> want to have some global unified fix for that, since this
> is not the only place suffering for that.
>
> Like globaly set map->referenced in add_hist_entry or
> hist_entry__new functions..
>
>
Would something like that work for you (untested)?

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 7034500..fc05b9f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -274,6 +274,12 @@ static struct hist_entry *hist_entry__new(struct
hist_entry *template)

                if (he->ms.map)
                        he->ms.map->referenced = true;
+               if (he->mem_info) {
+                       if (he->mem_info->iaddr.map)
+                               he->mem_info->iaddr.map->referenced = true;
+                       if (he->mem_info->daddr.map)
+                               he->mem_info->daddr.map->referenced = true;
+               }
                if (symbol_conf.use_callchain)
                        callchain_init(he->callchain);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ