Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8f66248 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by Ingo Molnar
Browse files

perf session: Pass the perf_session to the event handling operations



They will need it to get the right threads list, etc.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1260741029-4430-1-git-send-email-acme@infradead.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 2cd9046c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -132,7 +132,7 @@ static int hist_entry__add(struct addr_location *al, u64 count)
	return 0;
}

static int process_sample_event(event_t *event)
static int process_sample_event(event_t *event, struct perf_session *session __used)
{
	struct addr_location al;

+1 −1
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ process_raw_event(event_t *raw_event __used, void *data,
	}
}

static int process_sample_event(event_t *event)
static int process_sample_event(event_t *event, struct perf_session *session __used)
{
	struct sample_data data;
	struct thread *thread;
+7 −4
Original line number Diff line number Diff line
@@ -123,7 +123,8 @@ static void write_event(event_t *buf, size_t size)
	write_output(buf, size);
}

static int process_synthesized_event(event_t *event)
static int process_synthesized_event(event_t *event,
				     struct perf_session *self __used)
{
	write_event(event, event->header.size);
	return 0;
@@ -488,9 +489,10 @@ static int __cmd_record(int argc, const char **argv)
	}

	if (!system_wide)
		event__synthesize_thread(pid, process_synthesized_event);
		event__synthesize_thread(pid, process_synthesized_event,
					 session);
	else
		event__synthesize_threads(process_synthesized_event);
		event__synthesize_threads(process_synthesized_event, session);

	if (target_pid == -1 && argc) {
		pid = fork();
@@ -510,7 +512,8 @@ static int __cmd_record(int argc, const char **argv)
			 */
			usleep(1000);
			event__synthesize_thread(pid,
						 process_synthesized_event);
						 process_synthesized_event,
						 session);
		}

		child_pid = pid;
+4 −5
Original line number Diff line number Diff line
@@ -53,8 +53,6 @@ static int exclude_other = 1;

static char		callchain_default_opt[] = "fractal,0.5";

static struct perf_session *session;

static u64		sample_type;

struct symbol_conf	symbol_conf;
@@ -604,7 +602,7 @@ static int validate_chain(struct ip_callchain *chain, event_t *event)
	return 0;
}

static int process_sample_event(event_t *event)
static int process_sample_event(event_t *event, struct perf_session *session __used)
{
	struct sample_data data;
	int cpumode;
@@ -683,7 +681,7 @@ static int process_sample_event(event_t *event)
	return 0;
}

static int process_comm_event(event_t *event)
static int process_comm_event(event_t *event, struct perf_session *session __used)
{
	struct thread *thread = threads__findnew(event->comm.pid);

@@ -698,7 +696,7 @@ static int process_comm_event(event_t *event)
	return 0;
}

static int process_read_event(event_t *event)
static int process_read_event(event_t *event, struct perf_session *session __used)
{
	struct perf_event_attr *attr;

@@ -766,6 +764,7 @@ static int __cmd_report(void)
{
	struct thread *idle;
	int ret;
	struct perf_session *session;

	session = perf_session__new(input_name, O_RDONLY, force);
	if (session == NULL)
+4 −2
Original line number Diff line number Diff line
@@ -1594,7 +1594,8 @@ process_raw_event(event_t *raw_event __used, void *data,
		process_sched_migrate_task_event(data, event, cpu, timestamp, thread);
}

static int process_sample_event(event_t *event)
static int process_sample_event(event_t *event,
				struct perf_session *session __used)
{
	struct sample_data data;
	struct thread *thread;
@@ -1632,7 +1633,8 @@ static int process_sample_event(event_t *event)
	return 0;
}

static int process_lost_event(event_t *event __used)
static int process_lost_event(event_t *event __used,
			      struct perf_session *session __used)
{
	nr_lost_chunks++;
	nr_lost_events += event->lost.lost;
Loading