Messages in this thread Patches in this message | | | Date | Mon, 5 Nov 2012 17:07:47 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH v2 03/16] perf, core: Add a concept of a weightened sample |
| |
Em Mon, Nov 05, 2012 at 05:01:47PM -0300, Arnaldo Carvalho de Melo escreveu: > > + > > if (sample_type & PERF_SAMPLE_READ) > > size += event->read_size; > > > > @@ -4080,6 +4083,9 @@ void perf_output_sample(struct perf_output_handle *handle, > > if (sample_type & PERF_SAMPLE_PERIOD) > > perf_output_put(handle, data->period); > > > > + if (sample_type & PERF_SAMPLE_WEIGHT) > > + perf_output_put(handle, data->weight); > > + > > Yeap, it should go after PERF_SAMPLE_STACK_USER > > > if (sample_type & PERF_SAMPLE_READ) > > perf_output_read(handle, event); > >
I mean this, on top of the above patch:
diff -u b/kernel/events/core.c b/kernel/events/core.c --- b/kernel/events/core.c +++ b/kernel/events/core.c @@ -4083,9 +4083,6 @@ if (sample_type & PERF_SAMPLE_PERIOD) perf_output_put(handle, data->period); - if (sample_type & PERF_SAMPLE_WEIGHT) - perf_output_put(handle, data->weight); - if (sample_type & PERF_SAMPLE_READ) perf_output_read(handle, event); @@ -4175,6 +4172,9 @@ perf_output_sample_ustack(handle, data->stack_user_size, data->regs_user.regs); + + if (sample_type & PERF_SAMPLE_WEIGHT) + perf_output_put(handle, data->weight); } void perf_prepare_sample(struct perf_event_header *header, ------------ To match what this patch series will do on a later patch, i.e. parse the weight at the end of perf_evsel__parse_sample, after it parses PERF_SAMPLE_READ, PERF_SAMPLE_CALLCHAIN, PERF_SAMPLE_RAW, PERF_SAMPLE_BRANCH_STACK, PERF_SAMPLE_REGS_USER and PERF_SAMPLE_STACK_USER:
+++ b/tools/perf/util/evsel.c @@ -1020,6 +1020,11 @@ int perf_evsel__parse_sample(struct perf_evsel *evsel, union perf_event *event, } }
+ if (type & PERF_SAMPLE_WEIGHT) { + data->weight= *array; + array++; + } + return 0; }
- Arnaldo
| |