Merge remote branch 'acme/perf/urgent' into perf/core

Fixups due to rename of event_t routines from event__ to perf_event__
done in perf/core.

Conflicts:
	tools/perf/builtin-record.c
	tools/perf/builtin-top.c
	tools/perf/util/event.c
	tools/perf/util/event.h

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2011-02-11 11:45:54 -02:00
commit 7c940c18c5
57 changed files with 708 additions and 266 deletions

View file

@ -680,9 +680,9 @@ static int __cmd_record(int argc, const char **argv)
perf_event__synthesize_guest_os);
if (!system_wide)
perf_event__synthesize_thread(target_tid,
process_synthesized_event,
session);
perf_event__synthesize_thread_map(evsel_list->threads,
process_synthesized_event,
session);
else
perf_event__synthesize_threads(process_synthesized_event,
session);

View file

@ -876,8 +876,8 @@ static int __cmd_top(void)
return -ENOMEM;
if (top.target_tid != -1)
perf_event__synthesize_thread(top.target_tid, perf_event__process,
session);
perf_event__synthesize_thread_map(top.evlist->threads,
perf_event__process, session);
else
perf_event__synthesize_threads(perf_event__process, session);

View file

@ -6,6 +6,7 @@
#include "string.h"
#include "strlist.h"
#include "thread.h"
#include "thread_map.h"
static const char *perf_event__names[] = {
[0] = "TOTAL",
@ -265,11 +266,12 @@ static int __event__synthesize_thread(union perf_event *comm_event,
process, session);
}
int perf_event__synthesize_thread(pid_t pid, perf_event__handler_t process,
struct perf_session *session)
int perf_event__synthesize_thread_map(struct thread_map *threads,
perf_event__handler_t process,
struct perf_session *session)
{
union perf_event *comm_event, *mmap_event;
int err = -1;
int err = -1, thread;
comm_event = malloc(sizeof(comm_event->comm) + session->id_hdr_size);
if (comm_event == NULL)
@ -279,8 +281,15 @@ int perf_event__synthesize_thread(pid_t pid, perf_event__handler_t process,
if (mmap_event == NULL)
goto out_free_comm;
err = __event__synthesize_thread(comm_event, mmap_event, pid,
process, session);
err = 0;
for (thread = 0; thread < threads->nr; ++thread) {
if (__event__synthesize_thread(comm_event, mmap_event,
threads->map[thread],
process, session)) {
err = -1;
break;
}
}
free(mmap_event);
out_free_comm:
free(comm_event);

View file

@ -135,6 +135,7 @@ union perf_event {
void perf_event__print_totals(void);
struct perf_session;
struct thread_map;
typedef int (*perf_event__handler_synth_t)(union perf_event *event,
struct perf_session *session);
@ -142,8 +143,9 @@ typedef int (*perf_event__handler_t)(union perf_event *event,
struct perf_sample *sample,
struct perf_session *session);
int perf_event__synthesize_thread(pid_t pid, perf_event__handler_t process,
struct perf_session *session);
int perf_event__synthesize_thread_map(struct thread_map *threads,
perf_event__handler_t process,
struct perf_session *session);
int perf_event__synthesize_threads(perf_event__handler_t process,
struct perf_session *session);
int perf_event__synthesize_kernel_mmap(perf_event__handler_t process,