From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Borislav Petkov <bp@suse.de>, David Ahern <dsahern@gmail.com>,
Jiri Olsa <jolsa@kernel.org>,
Milian Wolff <milian.wolff@kdab.com>,
Namhyung Kim <namhyung@kernel.org>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 24/30] perf trace: Read thread's COMM from /proc when not set
Date: Wed, 27 Apr 2016 11:31:06 -0300 [thread overview]
Message-ID: <1461767472-8827-25-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1461767472-8827-1-git-send-email-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
We get notifications for threads that gets created while we're tracing,
but for preexisting threads we may end not having synthesized them, like
when tracing a 'perf trace' session that will use '--pid' to trace some
other thread.
And besides we should probably stop synthesizing those records and
instead read thread information in a lazy way, i.e. just when we need,
like done in this patch:
Now the 'pid_t' argument in 'perf_event_open' gets translated to a COMM:
# perf trace -e perf_event_open perf stat -e cycles -p 31601
0.027 ( 0.027 ms): perf/23393 perf_event_open(attr_uptr: 0x2fdd0d8, pid: 31601 (abrt-dump-journ), cpu: -1, group_fd: -1, flags: FD_CLOEXEC)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= 3
^C
And in other syscalls containing pid_t without thread->comm_set at the
time of the formatting.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Milian Wolff <milian.wolff@kdab.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-ioeps6dlwst17d6oozc9shtk@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/trace/beauty/pid.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/perf/trace/beauty/pid.c b/tools/perf/trace/beauty/pid.c
index 111ae08d38f1..07486ea65ae3 100644
--- a/tools/perf/trace/beauty/pid.c
+++ b/tools/perf/trace/beauty/pid.c
@@ -3,9 +3,12 @@ static size_t syscall_arg__scnprintf_pid(char *bf, size_t size, struct syscall_a
int pid = arg->val;
struct trace *trace = arg->trace;
size_t printed = scnprintf(bf, size, "%d", pid);
- struct thread *thread = machine__find_thread(trace->host, pid, pid);
+ struct thread *thread = machine__findnew_thread(trace->host, pid, pid);
if (thread != NULL) {
+ if (!thread->comm_set)
+ thread__set_comm_from_proc(thread);
+
if (thread->comm_set)
printed += scnprintf(bf + printed, size - printed,
" (%s)", thread__comm_str(thread));
--
2.5.5
next prev parent reply other threads:[~2016-04-27 14:38 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-27 14:30 [GIT PULL 00/30] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 01/30] perf buildid: Fix off-by-one in write_buildid() Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 02/30] perf trace: Extract evsel contructor from perf_evlist__add_pgfault Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 03/30] perf trace: Make --pf maj/min/all use callchains too Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 04/30] perf script: Fix segfault when printing callchains Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 05/30] perf trace: Make --event honour --min-stack too Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 06/30] perf trace: Make --pf " Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 07/30] perf evlist: Decode perf_event_attr->branch_sample_type Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 08/30] perf tools: Make the x86 clean quiet Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 09/30] tools build: Fix perf_clean target Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 10/30] perf tools: Remove duplicate const qualifier Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 11/30] perf tests: Replace assignment with comparison on assert check Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 12/30] perf bench futex: Simplify wrapper for LOCK_PI Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 13/30] perf intel-pt: Fix off-by-one comparison on maximum code Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 14/30] perf hists: Clear dummy entry accumulated period Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 15/30] perf evlist: Enforce ring buffer reading Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 16/30] perf probe: Close target file on error path Arnaldo Carvalho de Melo
2016-04-27 14:30 ` [PATCH 17/30] perf tools: Add lsdir() helper to read a directory Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 18/30] perf probe: Let probe_file__add_event return 0 if succeeded Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 19/30] perf probe: Set default kprobe group name if it is not given Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 20/30] perf trace: Move perf_flags beautifier to tools/perf/trace/beauty/ Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 21/30] perf trace: Do not beautify the 'pid' parameter as a simple integer Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 22/30] tools lib api fs: Add helper to read string from procfs file Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 23/30] perf thread: Introduce method to set comm from /proc/pid/self Arnaldo Carvalho de Melo
2016-04-27 14:31 ` Arnaldo Carvalho de Melo [this message]
2016-04-27 14:31 ` [PATCH 25/30] perf probe: Fix offline module name missmatch issue Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 26/30] perf probe: Fix module probe issue if no dwarf support Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 27/30] perf tools: Update x86's syscall_64.tbl, adding preadv2 & pwritev2 Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 28/30] perf bench: Remove one more die() call Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 29/30] perf core: Allow setting up max frame stack depth via sysctl Arnaldo Carvalho de Melo
2016-04-27 14:31 ` [PATCH 30/30] perf tools: Set the maximum allowed stack from /proc/sys/kernel/perf_event_max_stack Arnaldo Carvalho de Melo
2016-04-27 15:03 ` [GIT PULL 00/30] perf/core improvements and fixes Ingo Molnar
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=1461767472-8827-25-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=adrian.hunter@intel.com \
--cc=bp@suse.de \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=milian.wolff@kdab.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.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).