summaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2013-09-11 08:46:56 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2013-11-04 09:50:28 -0500
commitb9c5143a012a543c4ee872498d6dbae5c10beb2e (patch)
treed7a288aefff2a6d50c5090a7608e63372e5776af /tools/perf/util
parent6e6dc401d528e3b64626de82322fa237f1c1e576 (diff)
perf tools: Use an accessor to read thread comm
As the thread comm is going to be implemented by way of a more complicated data structure than just a pointer to a string from the thread struct, convert the readers of comm to use an accessor instead of accessing it directly. The accessor will be later overriden to support an enhanced comm implementation. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Tested-by: Jiri Olsa <jolsa@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-wr683zwy94hmj4ibogmnv9ce@git.kernel.org [ Rename thread__comm_curr() to thread__comm_str() ] Signed-off-by: Namhyung Kim <namhyung@kernel.org> [ Fixed up some minor const pointer issues ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/event.c4
-rw-r--r--tools/perf/util/scripting-engines/trace-event-perl.c2
-rw-r--r--tools/perf/util/scripting-engines/trace-event-python.c4
-rw-r--r--tools/perf/util/sort.c11
-rw-r--r--tools/perf/util/thread.c7
-rw-r--r--tools/perf/util/thread.h1
6 files changed, 18 insertions, 11 deletions
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 49096ea58a15..7a2842ed53f3 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -721,10 +721,10 @@ int perf_event__preprocess_sample(const union perf_event *event,
721 return -1; 721 return -1;
722 722
723 if (symbol_conf.comm_list && 723 if (symbol_conf.comm_list &&
724 !strlist__has_entry(symbol_conf.comm_list, thread->comm)) 724 !strlist__has_entry(symbol_conf.comm_list, thread__comm_str(thread)))
725 goto out_filtered; 725 goto out_filtered;
726 726
727 dump_printf(" ... thread: %s:%d\n", thread->comm, thread->tid); 727 dump_printf(" ... thread: %s:%d\n", thread__comm_str(thread), thread->tid);
728 /* 728 /*
729 * Have we already created the kernel maps for this machine? 729 * Have we already created the kernel maps for this machine?
730 * 730 *
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index c0c9795c4f02..d5e5969f6fea 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -273,7 +273,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __maybe_unused,
273 int cpu = sample->cpu; 273 int cpu = sample->cpu;
274 void *data = sample->raw_data; 274 void *data = sample->raw_data;
275 unsigned long long nsecs = sample->time; 275 unsigned long long nsecs = sample->time;
276 char *comm = thread->comm; 276 const char *comm = thread__comm_str(thread);
277 277
278 dSP; 278 dSP;
279 279
diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
index 95d91a0b23af..53c20e7fd900 100644
--- a/tools/perf/util/scripting-engines/trace-event-python.c
+++ b/tools/perf/util/scripting-engines/trace-event-python.c
@@ -250,7 +250,7 @@ static void python_process_tracepoint(union perf_event *perf_event
250 int cpu = sample->cpu; 250 int cpu = sample->cpu;
251 void *data = sample->raw_data; 251 void *data = sample->raw_data;
252 unsigned long long nsecs = sample->time; 252 unsigned long long nsecs = sample->time;
253 char *comm = thread->comm; 253 const char *comm = thread__comm_str(thread);
254 254
255 t = PyTuple_New(MAX_FIELDS); 255 t = PyTuple_New(MAX_FIELDS);
256 if (!t) 256 if (!t)
@@ -389,7 +389,7 @@ static void python_process_general_event(union perf_event *perf_event
389 pydict_set_item_string_decref(dict, "raw_buf", PyString_FromStringAndSize( 389 pydict_set_item_string_decref(dict, "raw_buf", PyString_FromStringAndSize(
390 (const char *)sample->raw_data, sample->raw_size)); 390 (const char *)sample->raw_data, sample->raw_size));
391 pydict_set_item_string_decref(dict, "comm", 391 pydict_set_item_string_decref(dict, "comm",
392 PyString_FromString(thread->comm)); 392 PyString_FromString(thread__comm_str(thread)));
393 if (al->map) { 393 if (al->map) {
394 pydict_set_item_string_decref(dict, "dso", 394 pydict_set_item_string_decref(dict, "dso",
395 PyString_FromString(al->map->dso->name)); 395 PyString_FromString(al->map->dso->name));
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 19b4aa279d1e..835e8bdd869f 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -42,7 +42,7 @@ static int repsep_snprintf(char *bf, size_t size, const char *fmt, ...)
42 return n; 42 return n;
43} 43}
44 44
45static int64_t cmp_null(void *l, void *r) 45static int64_t cmp_null(const void *l, const void *r)
46{ 46{
47 if (!l && !r) 47 if (!l && !r)
48 return 0; 48 return 0;
@@ -63,8 +63,9 @@ sort__thread_cmp(struct hist_entry *left, struct hist_entry *right)
63static int hist_entry__thread_snprintf(struct hist_entry *he, char *bf, 63static int hist_entry__thread_snprintf(struct hist_entry *he, char *bf,
64 size_t size, unsigned int width) 64 size_t size, unsigned int width)
65{ 65{
66 const char *comm = thread__comm_str(he->thread);
66 return repsep_snprintf(bf, size, "%*s:%5d", width - 6, 67 return repsep_snprintf(bf, size, "%*s:%5d", width - 6,
67 he->thread->comm ?: "", he->thread->tid); 68 comm ?: "", he->thread->tid);
68} 69}
69 70
70struct sort_entry sort_thread = { 71struct sort_entry sort_thread = {
@@ -85,8 +86,8 @@ sort__comm_cmp(struct hist_entry *left, struct hist_entry *right)
85static int64_t 86static int64_t
86sort__comm_collapse(struct hist_entry *left, struct hist_entry *right) 87sort__comm_collapse(struct hist_entry *left, struct hist_entry *right)
87{ 88{
88 char *comm_l = left->thread->comm; 89 const char *comm_l = thread__comm_str(left->thread);
89 char *comm_r = right->thread->comm; 90 const char *comm_r = thread__comm_str(right->thread);
90 91
91 if (!comm_l || !comm_r) 92 if (!comm_l || !comm_r)
92 return cmp_null(comm_l, comm_r); 93 return cmp_null(comm_l, comm_r);
@@ -97,7 +98,7 @@ sort__comm_collapse(struct hist_entry *left, struct hist_entry *right)
97static int hist_entry__comm_snprintf(struct hist_entry *he, char *bf, 98static int hist_entry__comm_snprintf(struct hist_entry *he, char *bf,
98 size_t size, unsigned int width) 99 size_t size, unsigned int width)
99{ 100{
100 return repsep_snprintf(bf, size, "%*s", width, he->thread->comm); 101 return repsep_snprintf(bf, size, "%*s", width, thread__comm_str(he->thread));
101} 102}
102 103
103struct sort_entry sort_comm = { 104struct sort_entry sort_comm = {
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c
index 80d19a086072..56760079565b 100644
--- a/tools/perf/util/thread.c
+++ b/tools/perf/util/thread.c
@@ -45,6 +45,11 @@ int thread__set_comm(struct thread *thread, const char *comm)
45 return err; 45 return err;
46} 46}
47 47
48const char *thread__comm_str(const struct thread *thread)
49{
50 return thread->comm;
51}
52
48int thread__comm_len(struct thread *thread) 53int thread__comm_len(struct thread *thread)
49{ 54{
50 if (!thread->comm_len) { 55 if (!thread->comm_len) {
@@ -58,7 +63,7 @@ int thread__comm_len(struct thread *thread)
58 63
59size_t thread__fprintf(struct thread *thread, FILE *fp) 64size_t thread__fprintf(struct thread *thread, FILE *fp)
60{ 65{
61 return fprintf(fp, "Thread %d %s\n", thread->tid, thread->comm) + 66 return fprintf(fp, "Thread %d %s\n", thread->tid, thread__comm_str(thread)) +
62 map_groups__fprintf(&thread->mg, verbose, fp); 67 map_groups__fprintf(&thread->mg, verbose, fp);
63} 68}
64 69
diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h
index 4ebbb40d46d4..6561ad21d9a7 100644
--- a/tools/perf/util/thread.h
+++ b/tools/perf/util/thread.h
@@ -35,6 +35,7 @@ static inline void thread__exited(struct thread *thread)
35 35
36int thread__set_comm(struct thread *self, const char *comm); 36int thread__set_comm(struct thread *self, const char *comm);
37int thread__comm_len(struct thread *self); 37int thread__comm_len(struct thread *self);
38const char *thread__comm_str(const struct thread *thread);
38void thread__insert_map(struct thread *self, struct map *map); 39void thread__insert_map(struct thread *self, struct map *map);
39int thread__fork(struct thread *self, struct thread *parent); 40int thread__fork(struct thread *self, struct thread *parent);
40size_t thread__fprintf(struct thread *thread, FILE *fp); 41size_t thread__fprintf(struct thread *thread, FILE *fp);