From: tip-bot for Namhyung Kim <namhyung.kim@lge.com>
To: linux-tip-commits@vger.kernel.org
Cc: acme@redhat.com, linux-kernel@vger.kernel.org, paulus@samba.org,
mingo@redhat.com, hpa@zytor.com, mingo@kernel.org,
a.p.zijlstra@chello.nl, namhyung.kim@lge.com, namhyung@gmail.com,
dsahern@gmail.com, tglx@linutronix.de
Subject: [tip:perf/core] perf top: Convert to struct perf_target
Date: Thu, 10 May 2012 23:29:37 -0700 [thread overview]
Message-ID: <tip-fe9d18a71d2018f8021fd2bd2aaf5137954ef839@git.kernel.org> (raw)
In-Reply-To: <1335417327-11796-4-git-send-email-namhyung.kim@lge.com>
Commit-ID: fe9d18a71d2018f8021fd2bd2aaf5137954ef839
Gitweb: http://git.kernel.org/tip/fe9d18a71d2018f8021fd2bd2aaf5137954ef839
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Thu, 26 Apr 2012 14:15:17 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 2 May 2012 15:20:30 -0300
perf top: Convert to struct perf_target
Use struct perf_target as it is introduced by previous patch.
This is a preparation of further changes.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1335417327-11796-4-git-send-email-namhyung.kim@lge.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 33 +++++++++++++++++----------------
tools/perf/util/top.c | 19 ++++++++++---------
tools/perf/util/top.h | 6 +-----
3 files changed, 28 insertions(+), 30 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 8ef59f8..2c1c207 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -588,7 +588,7 @@ static void *display_thread_tui(void *arg)
* via --uid.
*/
list_for_each_entry(pos, &top->evlist->entries, node)
- pos->hists.uid_filter_str = top->uid_str;
+ pos->hists.uid_filter_str = top->target.uid_str;
perf_evlist__tui_browse_hists(top->evlist, help,
perf_top__sort_new_samples,
@@ -1016,7 +1016,7 @@ static int __cmd_top(struct perf_top *top)
if (ret)
goto out_delete;
- if (top->target_tid || top->uid != UINT_MAX)
+ if (top->target.tid || top->target.uid != UINT_MAX)
perf_event__synthesize_thread_map(&top->tool, top->evlist->threads,
perf_event__process,
&top->session->host_machine);
@@ -1154,7 +1154,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
struct perf_top top = {
.count_filter = 5,
.delay_secs = 2,
- .uid = UINT_MAX,
.freq = 1000, /* 1 KHz */
.mmap_pages = 128,
.sym_pcnt_filter = 5,
@@ -1166,13 +1165,13 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
parse_events_option),
OPT_INTEGER('c', "count", &top.default_interval,
"event period to sample"),
- OPT_STRING('p', "pid", &top.target_pid, "pid",
+ OPT_STRING('p', "pid", &top.target.pid, "pid",
"profile events on existing process id"),
- OPT_STRING('t', "tid", &top.target_tid, "tid",
+ OPT_STRING('t', "tid", &top.target.tid, "tid",
"profile events on existing thread id"),
- OPT_BOOLEAN('a', "all-cpus", &top.system_wide,
+ OPT_BOOLEAN('a', "all-cpus", &top.target.system_wide,
"system-wide collection from all CPUs"),
- OPT_STRING('C', "cpu", &top.cpu_list, "cpu",
+ OPT_STRING('C', "cpu", &top.target.cpu_list, "cpu",
"list of cpus to monitor"),
OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name,
"file", "vmlinux pathname"),
@@ -1227,7 +1226,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
"Display raw encoding of assembly instructions (default)"),
OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
"Specify disassembler style (e.g. -M intel for intel syntax)"),
- OPT_STRING('u', "uid", &top.uid_str, "user", "user to profile"),
+ OPT_STRING('u', "uid", &top.target.uid_str, "user", "user to profile"),
OPT_END()
};
@@ -1253,22 +1252,24 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
setup_browser(false);
- top.uid = parse_target_uid(top.uid_str, top.target_tid, top.target_pid);
- if (top.uid_str != NULL && top.uid == UINT_MAX - 1)
+ top.target.uid = parse_target_uid(top.target.uid_str, top.target.tid,
+ top.target.pid);
+ if (top.target.uid_str != NULL && top.target.uid == UINT_MAX - 1)
goto out_delete_evlist;
/* CPU and PID are mutually exclusive */
- if (top.target_tid && top.cpu_list) {
+ if (top.target.tid && top.target.cpu_list) {
printf("WARNING: PID switch overriding CPU\n");
sleep(1);
- top.cpu_list = NULL;
+ top.target.cpu_list = NULL;
}
- if (top.target_pid)
- top.target_tid = top.target_pid;
+ if (top.target.pid)
+ top.target.tid = top.target.pid;
- if (perf_evlist__create_maps(top.evlist, top.target_pid,
- top.target_tid, top.uid, top.cpu_list) < 0)
+ if (perf_evlist__create_maps(top.evlist, top.target.pid,
+ top.target.tid, top.target.uid,
+ top.target.cpu_list) < 0)
usage_with_options(top_usage, options);
if (!top.evlist->nr_entries &&
diff --git a/tools/perf/util/top.c b/tools/perf/util/top.c
index 09fe579..abe0e8e 100644
--- a/tools/perf/util/top.c
+++ b/tools/perf/util/top.c
@@ -69,23 +69,24 @@ size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size)
ret += SNPRINTF(bf + ret, size - ret, "], ");
- if (top->target_pid)
+ if (top->target.pid)
ret += SNPRINTF(bf + ret, size - ret, " (target_pid: %s",
- top->target_pid);
- else if (top->target_tid)
+ top->target.pid);
+ else if (top->target.tid)
ret += SNPRINTF(bf + ret, size - ret, " (target_tid: %s",
- top->target_tid);
- else if (top->uid_str != NULL)
+ top->target.tid);
+ else if (top->target.uid_str != NULL)
ret += SNPRINTF(bf + ret, size - ret, " (uid: %s",
- top->uid_str);
+ top->target.uid_str);
else
ret += SNPRINTF(bf + ret, size - ret, " (all");
- if (top->cpu_list)
+ if (top->target.cpu_list)
ret += SNPRINTF(bf + ret, size - ret, ", CPU%s: %s)",
- top->evlist->cpus->nr > 1 ? "s" : "", top->cpu_list);
+ top->evlist->cpus->nr > 1 ? "s" : "",
+ top->target.cpu_list);
else {
- if (top->target_tid)
+ if (top->target.tid)
ret += SNPRINTF(bf + ret, size - ret, ")");
else
ret += SNPRINTF(bf + ret, size - ret, ", %d CPU%s)",
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index ce61cb2..33347ca 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -13,6 +13,7 @@ struct perf_session;
struct perf_top {
struct perf_tool tool;
struct perf_evlist *evlist;
+ struct perf_target target;
/*
* Symbols will be added here in perf_event__process_sample and will
* get out after decayed.
@@ -23,10 +24,7 @@ struct perf_top {
u64 guest_us_samples, guest_kernel_samples;
int print_entries, count_filter, delay_secs;
int freq;
- const char *target_pid, *target_tid;
- uid_t uid;
bool hide_kernel_symbols, hide_user_symbols, zero;
- bool system_wide;
bool use_tui, use_stdio;
bool sort_has_symbols;
bool dont_use_callchains;
@@ -37,7 +35,6 @@ struct perf_top {
bool sample_id_all_missing;
bool exclude_guest_missing;
bool dump_symtab;
- const char *cpu_list;
struct hist_entry *sym_filter_entry;
struct perf_evsel *sym_evsel;
struct perf_session *session;
@@ -47,7 +44,6 @@ struct perf_top {
int realtime_prio;
int sym_pcnt_filter;
const char *sym_filter;
- const char *uid_str;
};
size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size);
next prev parent reply other threads:[~2012-05-11 6:30 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-26 5:15 [RFC PATCHSET 00/13] perf tools: Fix cpu/thread map handling v2 Namhyung Kim
2012-04-26 5:15 ` [PATCH 01/13] perf tools: Introduce struct perf_target Namhyung Kim
2012-05-11 6:27 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 02/13] perf stat: Convert to " Namhyung Kim
2012-05-11 6:28 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 03/13] perf top: " Namhyung Kim
2012-05-11 6:29 ` tip-bot for Namhyung Kim [this message]
2012-04-26 5:15 ` [PATCH 04/13] perf tools: Introduce perf_target__validate() helper Namhyung Kim
2012-05-11 6:30 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 05/13] perf tools: Make perf_evlist__create_maps() take struct perf_target Namhyung Kim
2012-05-11 6:31 ` [tip:perf/core] perf evlist: Make create_maps() " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 06/13] perf tools: Check more combinations of PID/TID, UID and CPU switches Namhyung Kim
2012-05-11 6:32 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 07/13] perf evlist: Fix creation of cpu map Namhyung Kim
2012-04-26 15:05 ` David Ahern
2012-04-26 21:12 ` Namhyung Kim
2012-04-26 21:22 ` David Ahern
2012-04-27 0:16 ` Namhyung Kim
2012-04-27 15:08 ` Arnaldo Carvalho de Melo
2012-04-27 15:32 ` David Ahern
2012-04-27 16:00 ` Arnaldo Carvalho de Melo
2012-04-27 16:05 ` David Ahern
2012-04-27 16:09 ` Arnaldo Carvalho de Melo
2012-05-02 18:40 ` Arnaldo Carvalho de Melo
2012-05-04 4:05 ` Namhyung Kim
2012-05-04 13:37 ` Arnaldo Carvalho de Melo
2012-05-04 13:53 ` Namhyung Kim
2012-04-26 5:15 ` [PATCH 08/13] perf target: Split out perf_target handling code Namhyung Kim
2012-05-02 18:30 ` Arnaldo Carvalho de Melo
2012-05-03 14:39 ` Namhyung Kim
2012-05-03 15:27 ` Arnaldo Carvalho de Melo
2012-05-03 15:30 ` Namhyung Kim
2012-05-11 6:33 ` [tip:perf/core] " tip-bot for Namhyung Kim
2012-04-26 5:15 ` [PATCH 09/13] perf target: Introduce perf_target_errno Namhyung Kim
2012-05-02 18:59 ` Arnaldo Carvalho de Melo
2012-05-03 14:47 ` Namhyung Kim
2012-05-03 20:34 ` David Ahern
2012-05-03 20:42 ` Arnaldo Carvalho de Melo
2012-05-03 20:49 ` David Ahern
2012-04-26 5:15 ` [PATCH 10/13] perf target: Introduce perf_target__parse_uid() Namhyung Kim
2012-04-26 5:15 ` [PATCH 11/13] perf tools: Introduce perf_target__strerror() Namhyung Kim
2012-04-26 5:15 ` [PATCH 12/13] perf target: Consolidate target task/cpu checking Namhyung Kim
2012-04-26 5:15 ` [PATCH 13/13] perf stat: Use perf_evlist__create_maps 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=tip-fe9d18a71d2018f8021fd2bd2aaf5137954ef839@git.kernel.org \
--to=namhyung.kim@lge.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@redhat.com \
--cc=dsahern@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@gmail.com \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
/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.