Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 323647
b: refs/heads/master
c: 73994dc
h: refs/heads/master
i:
  323645: 12261a8
  323643: fa456fb
  323639: e6d5859
  323631: 2bc4828
  323615: a57913b
  323583: 375e9e5
v: v3
  • Loading branch information
Feng Tang authored and Arnaldo Carvalho de Melo committed Aug 8, 2012
1 parent c0cdfd7 commit 7775746
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6a6daec2ae9f097703c1da4925367f1c198c9492
refs/heads/master: 73994dc158a24df4af77d0a76c9702f120f7a6ad
5 changes: 3 additions & 2 deletions trunk/tools/perf/builtin-script.c
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,10 @@ static void print_sample_bts(union perf_event *event,

static void process_event(union perf_event *event, struct perf_sample *sample,
struct perf_evsel *evsel, struct machine *machine,
struct thread *thread)
struct addr_location *al)
{
struct perf_event_attr *attr = &evsel->attr;
struct thread *thread = al->thread;

if (output[attr->type].fields == 0)
return;
Expand Down Expand Up @@ -511,7 +512,7 @@ static int process_sample_event(struct perf_tool *tool __used,
if (cpu_list && !test_bit(sample->cpu, cpu_bitmap))
return 0;

scripting_ops->process_event(event, sample, evsel, machine, thread);
scripting_ops->process_event(event, sample, evsel, machine, &al);

evsel->hists.stats.total_period += sample->period;
return 0;
Expand Down
11 changes: 6 additions & 5 deletions trunk/tools/perf/util/scripting-engines/trace-event-perl.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __unused,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine __unused,
struct thread *thread)
struct addr_location *al)
{
struct format_field *field;
static char handler[256];
Expand All @@ -272,6 +272,7 @@ static void perl_process_tracepoint(union perf_event *perf_event __unused,
int cpu = sample->cpu;
void *data = sample->raw_data;
unsigned long long nsecs = sample->time;
struct thread *thread = al->thread;
char *comm = thread->comm;

dSP;
Expand Down Expand Up @@ -349,7 +350,7 @@ static void perl_process_event_generic(union perf_event *event,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine __unused,
struct thread *thread __unused)
struct addr_location *al __unused)
{
dSP;

Expand All @@ -375,10 +376,10 @@ static void perl_process_event(union perf_event *event,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine,
struct thread *thread)
struct addr_location *al)
{
perl_process_tracepoint(event, sample, evsel, machine, thread);
perl_process_event_generic(event, sample, evsel, machine, thread);
perl_process_tracepoint(event, sample, evsel, machine, al);
perl_process_event_generic(event, sample, evsel, machine, al);
}

static void run_start_sub(void)
Expand Down
13 changes: 7 additions & 6 deletions trunk/tools/perf/util/scripting-engines/trace-event-python.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ static void python_process_tracepoint(union perf_event *perf_event __unused,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine __unused,
struct thread *thread)
struct addr_location *al)
{
PyObject *handler, *retval, *context, *t, *obj, *dict = NULL;
static char handler_name[256];
Expand All @@ -238,6 +238,7 @@ static void python_process_tracepoint(union perf_event *perf_event __unused,
int cpu = sample->cpu;
void *data = sample->raw_data;
unsigned long long nsecs = sample->time;
struct thread *thread = al->thread;
char *comm = thread->comm;

t = PyTuple_New(MAX_FIELDS);
Expand Down Expand Up @@ -342,7 +343,7 @@ static void python_process_general_event(union perf_event *perf_event __unused,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine __unused,
struct thread *thread __unused)
struct addr_location *al __unused)
{
PyObject *handler, *retval, *t;
static char handler_name[64];
Expand All @@ -361,7 +362,7 @@ static void python_process_general_event(union perf_event *perf_event __unused,
goto exit;
}

/* Pass 3 parameters: event_attr, perf_sample, raw data */
/* Pass 4 parameters: event_attr, perf_sample, raw data, thread name */
PyTuple_SetItem(t, n++, PyString_FromStringAndSize((void *)&evsel->attr, sizeof(evsel->attr)));
PyTuple_SetItem(t, n++, PyString_FromStringAndSize((void *)sample, sizeof(*sample)));
PyTuple_SetItem(t, n++, PyString_FromStringAndSize(data, sample->raw_size));
Expand All @@ -380,17 +381,17 @@ static void python_process_event(union perf_event *perf_event,
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine,
struct thread *thread)
struct addr_location *al)
{
switch (evsel->attr.type) {
case PERF_TYPE_TRACEPOINT:
python_process_tracepoint(perf_event, sample, evsel,
machine, thread);
machine, al);
break;
/* Reserve for future process_hw/sw/raw APIs */
default:
python_process_general_event(perf_event, sample, evsel,
machine, thread);
machine, al);
}
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/tools/perf/util/trace-event-scripting.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ static void process_event_unsupported(union perf_event *event __unused,
struct perf_sample *sample __unused,
struct perf_evsel *evsel __unused,
struct machine *machine __unused,
struct thread *thread __unused)
struct addr_location *al __unused)
{
}

Expand Down
5 changes: 3 additions & 2 deletions trunk/tools/perf/util/trace-event.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ struct machine;
struct perf_sample;
union perf_event;
struct perf_tool;
struct thread;

extern int header_page_size_size;
extern int header_page_ts_size;
Expand Down Expand Up @@ -76,6 +75,8 @@ struct tracing_data *tracing_data_get(struct list_head *pattrs,
void tracing_data_put(struct tracing_data *tdata);


struct addr_location;

struct scripting_ops {
const char *name;
int (*start_script) (const char *script, int argc, const char **argv);
Expand All @@ -84,7 +85,7 @@ struct scripting_ops {
struct perf_sample *sample,
struct perf_evsel *evsel,
struct machine *machine,
struct thread *thread);
struct addr_location *al);
int (*generate_script) (struct pevent *pevent, const char *outfile);
};

Expand Down

0 comments on commit 7775746

Please sign in to comment.