mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Stephane Eranian <eranian@google.com>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org,
	mingo@elte.hu, ak@linux.intel.com, acme@redhat.com,
	namhyung.kim@lge.com
Subject: Re: [PATCH v5 11/18] perf tools: add mem access sampling core support
Date: Wed, 9 Jan 2013 17:55:39 +0100	[thread overview]
Message-ID: <20130109165539.GB1045@krava.brq.redhat.com> (raw)
In-Reply-To: <1357583277-4553-12-git-send-email-eranian@google.com>

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..


jirka
---
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 49ca66b..615aecf 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -266,11 +266,15 @@ static void ip__resolve_ams(struct machine *self, struct thread *thread,
 		if (al.sym)
 			goto found;
 	}
+
 found:
 	ams->addr = ip;
 	ams->al_addr = al.addr;
 	ams->sym = al.sym;
 	ams->map = al.map;
+
+	if (ams->map)
+		ams->map->referenced = true;
 }
 
 static void ip__resolve_data(struct machine *self, struct thread *thread,
@@ -288,6 +292,9 @@ static void ip__resolve_data(struct machine *self, struct thread *thread,
 	ams->al_addr = al.addr;
 	ams->sym = al.sym;
 	ams->map = al.map;
+
+	if (ams->map)
+		ams->map->referenced = true;
 }
 
 struct mem_info *machine__resolve_mem(struct machine *self,

  reply	other threads:[~2013-01-09 16:56 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-07 18:27 [PATCH v5 00/18] perf: add memory access sampling support Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 01/18] perf, x86: Support CPU specific sysfs events Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 02/18] perf/x86: improve sysfs event mapping with event string Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 03/18] perf/x86: add flags to event constraints Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 04/18] perf, core: Add a concept of a weightened sample Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 05/18] perf: add minimal support for PERF_SAMPLE_WEIGHT Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 06/18] perf: add support for PERF_SAMPLE_ADDR in dump_sampple() Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 07/18] perf: add generic memory sampling interface Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 08/18] perf/x86: add memory profiling via PEBS Load Latency Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 09/18] perf/x86: export PEBS load latency threshold register to sysfs Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 10/18] perf/x86: add support for PEBS Precise Store Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 11/18] perf tools: add mem access sampling core support Stephane Eranian
2013-01-09 16:55   ` Jiri Olsa [this message]
2013-01-10 21:53     ` Stephane Eranian
2013-01-11 13:31       ` Jiri Olsa
2013-01-11 14:08         ` Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 12/18] perf report: add support for mem access profiling Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 13/18] perf record: " Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 14/18] perf tools: add new mem command for memory " Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 15/18] perf: add PERF_RECORD_MISC_MMAP_DATA to RECORD_MMAP Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 16/18] perf tools: detect data vs. text mappings Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 17/18] perf tools: Ignore ABS symbols when loading data maps Stephane Eranian
2013-01-07 18:27 ` [PATCH v5 18/18] perf tools: Fix output of symbol_daddr offset Stephane Eranian

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=20130109165539.GB1045@krava.brq.redhat.com \
    --to=jolsa@redhat.com \
    --cc=acme@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=eranian@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=namhyung.kim@lge.com \
    --cc=peterz@infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®