All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gaurav Jain <gjain@fb.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Don Zickus <dzickus@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
	Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arun Sharma <asharma@fb.com>
Subject: Re: [PATCH] perf tools: Synthesize anon MMAP records on the heap
Date: Wed, 15 Jan 2014 06:44:39 +0000	[thread overview]
Message-ID: <CEFB97C1.2CC71%gjain@fb.com> (raw)
In-Reply-To: <87a9exajbg.fsf@sejong.aot.lge.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="euc-kr", Size: 2851 bytes --]

Hi Namhyung,


On 1/15/14, 12:46 AM, "Namhyung Kim" <namhyung@kernel.org> wrote:

>I'd like to take my ack back - it seems I missed some points.

No worries, looks like the patch wasn¡¯t well thought out.

>On Tue, 14 Jan 2014 20:48:23 +0000, Gaurav Jain wrote:
>> On 1/13/14, 11:54 AM, "Don Zickus" <dzickus@redhat.com> wrote:
>>
>>>On Sat, Jan 11, 2014 at 08:32:14PM -0800, Gaurav Jain wrote:
>>>> Anon records usually do not have the 'execname' entry. However if they
>>>>are on
>>>> the heap, the execname shows up as '[heap]'. The fix considers any
>>>>executable
>>>> entries in the map that do not have a name or are on the heap as anon
>>>>records
>>>> and sets the name to '//anon'.
>>>> 
>>>> This fixes JIT profiling for records on the heap.
>>>
>>>I guess I don't understand the need for this fix.  It seems breaking out
>>>//anon vs. [heap] would be useful.  Your patch is saying otherwise.  Can
>>>give a description of the problem you are trying to solve?
>>
>> Thank you for looking at the patch.
>>
>> We generate a perf map file which includes certain JIT©öed functions that
>> show up as [heap] entries. As a result, I included the executable heap
>> entries as anon pages so that it would be handled in
>> util/map.c:map__new(). The alternative would be to handle heap entries
>>in
>> map__new() directly, however I wasn©öt sure if this would break something
>> as it seems that heap and stack entries are expected to fail all
>> map__find_* functions. Thus I considered executable heap entries as
>> //anon, but perhaps there is a better way.
>
>Hmm.. so the point is that an executable heap mapping should have
>/tmp/perf-XXX.map as a file name, right?  If so, does something like
>below work well for you?

Just gave it a try and it fixed the issue perfectly! Thanks for the help.
This looks like a much better solution than treating the heap mapping as
an anon record.

Gaurav

>diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
>index 9b9bd719aa19..d52387fe83f1 100644
>--- a/tools/perf/util/map.c
>+++ b/tools/perf/util/map.c
>@@ -69,7 +69,7 @@ struct map *map__new(struct list_head *dsos__list, u64
>start, u64 len,
> 		map->ino = ino;
> 		map->ino_generation = ino_gen;
> 
>-		if (anon) {
>+		if (anon || (no_dso && type == MAP__FUNCTION)) {
> 			snprintf(newfilename, sizeof(newfilename), "/tmp/perf-%d.map", pid);
> 			filename = newfilename;
> 		}
>@@ -93,7 +93,7 @@ struct map *map__new(struct list_head *dsos__list, u64
>start, u64 len,
> 			 * functions still return NULL, and we avoid the
> 			 * unnecessary map__load warning.
> 			 */
>-			if (no_dso)
>+			if (no_dso && type != MAP__FUNCTION)
> 				dso__set_loaded(dso, map->type);
> 		}
> 	}

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

  reply	other threads:[~2014-01-15  6:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-12  4:32 [PATCH] perf tools: Synthesize anon MMAP records on the heap Gaurav Jain
2014-01-13  8:59 ` Namhyung Kim
2014-01-13 16:54 ` Don Zickus
2014-01-14 20:48   ` Gaurav Jain
2014-01-15  5:46     ` Namhyung Kim
2014-01-15  6:44       ` Gaurav Jain [this message]
2014-01-16  1:01         ` Namhyung Kim
2014-01-16  2:40           ` Gaurav Jain
2014-01-15 14:27     ` Don Zickus
2014-01-16  1:03       ` Namhyung Kim

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=CEFB97C1.2CC71%gjain@fb.com \
    --to=gjain@fb.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=asharma@fb.com \
    --cc=dzickus@redhat.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.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 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.