linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Stanislav Fomichev <stfomichev@yandex-team.ru>
Cc: a.p.zijlstra@chello.nl, paulus@samba.org, mingo@redhat.com,
	dsahern@gmail.com, jolsa@redhat.com,
	xiaoguangrong@linux.vnet.ibm.com, yangds.fnst@cn.fujitsu.com,
	adrian.hunter@intel.com, namhyung@kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/7] perf trace: add support for pagefault tracing
Date: Fri, 20 Jun 2014 13:11:32 -0300	[thread overview]
Message-ID: <20140620161132.GJ31524@kernel.org> (raw)
In-Reply-To: <20140620154901.GM15620@stfomichev-desktop.yandex.net>

Em Fri, Jun 20, 2014 at 07:49:01PM +0400, Stanislav Fomichev escreveu:
> > > 1756272.905 ( 0.000 ms): curl/5937 majfault [0x7fa7261978b6] => /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0+0x85288 (d.)
> > 
> > Things like the above may be better expressed using dso@symbol+offset,
> > even more when the symbol is not resolved within a DSO, due to
> > insufficient expressivity in the available symtab, i.e. perhaps the user
> > needs to install a debuginfo package.
> Currently, the format is:
> <header> <min|maj>fault [ip.symbol+ip.offset] => addr.dso+addr.offset (<mmap_type><addr.level>)
> 
> if no symbol found for IP, we have:
> <header> <min|maj>fault [ip.addr] => addr.dso+addr.offset (<mmap_type><addr.level>)
> 
> mmap_type is d - for data, x - for executable vmas.
> 
> I think we may try to print [ip.dso+ip.offset] if we can't resolve ip symbol,
> but I don't want dso@symbol+offset because if we have symbol, dso is
> probably (?) redundant (ok, at least for me).

Well, I don't think it is :-)

dso->short_name should disambiguate 99.9% of the cases tho. Perhaps we
can use --verbose, as in other places, to switch using dso->long_name,
for cases where multiple versions of a library are used, some in non
standard paths, which sometimes puzzles people looking at the tools
output.

> It also seems we don't need to resolve symbol of pagefault address

Well, in some cases if we can resolve to a variable, why not?

> because it's either some code or some address on the heap. Dso is enough.

> > > 1862866.036 ( 0.000 ms): wget/8460 majfault [__clear_user+0x3f] => 0x659cb4 (?k)

> > And here, where is this __clear_user symbol from? The kernel? Probaly
> > that 'k' there means that? If so, probably that deserves an entry in the
> > documentation.

> Yes, k or . describes symbol 'level'.
 
> > WRT documentation, please consider sending followup patches providing
> > examples in the documentation, talking about the possible need of
> > installing debuginfo packages as well.
> I didn't put much effort into documentation because I just wanted to get
> initial feedback. Will follow.

Ok, but I think its good practice, as much as it is seldom done because
it is boring, to do it exactly when doing the matching feature. Doing it
judiciously may even help the person implementing to think about what is
being done more thoroughly which sometimes leads to problems being
solved at an early stage 8-)
 
> > But its shaping up nicely, good work!
> Thanks.

- Arnaldo

  reply	other threads:[~2014-06-20 16:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-20 10:49 [PATCH v2 0/7] perf trace pagefaults Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 1/7] perf trace: add perf_event parameter to tracepoint_handler Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 2/7] perf trace: add support for pagefault tracing Stanislav Fomichev
2014-06-20 14:59   ` Arnaldo Carvalho de Melo
2014-06-20 15:49     ` Stanislav Fomichev
2014-06-20 16:11       ` Arnaldo Carvalho de Melo [this message]
2014-06-24 12:46         ` Stanislav Fomichev
2014-06-24 15:21           ` Arnaldo Carvalho de Melo
2014-06-20 10:49 ` [PATCH 3/7] perf trace: add pagefaults record and replay support Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 4/7] perf trace: add pagefault statistics Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 5/7] perf trace: add possibility to switch off syscall events Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 6/7] perf kvm: move perf_kvm__mmap_read into session utils Stanislav Fomichev
2014-06-20 14:44   ` Arnaldo Carvalho de Melo
2014-06-20 15:07     ` Stanislav Fomichev
2014-06-20 15:25       ` Arnaldo Carvalho de Melo
2014-06-23 14:06     ` David Ahern
2014-06-23 14:14       ` Stanislav Fomichev
2014-06-20 10:49 ` [PATCH 7/7] perf trace: add events cache Stanislav Fomichev
2014-06-20 13:21 ` [PATCH v2 0/7] perf trace pagefaults Arnaldo Carvalho de Melo
2014-06-20 15:03   ` Stanislav Fomichev
2014-06-20 15:24     ` Arnaldo Carvalho de Melo
2014-06-20 16:18       ` Stanislav Fomichev
2014-06-20 18:30         ` Arnaldo Carvalho de Melo
2014-06-23 11:41           ` Stanislav Fomichev
2014-06-24 14:15             ` Arnaldo Carvalho de Melo
2014-06-23 14:00       ` David Ahern
2014-06-24  7:17   ` 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=20140620161132.GJ31524@kernel.org \
    --to=acme@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.org \
    --cc=stfomichev@yandex-team.ru \
    --cc=xiaoguangrong@linux.vnet.ibm.com \
    --cc=yangds.fnst@cn.fujitsu.com \
    /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;
as well as URLs for NNTP newsgroup(s).