On Fri, Nov 14, 2014 at 03:43:47PM +0200, Alexander Shishkin wrote:
> +++ b/include/uapi/linux/perf_event.h
> @@ -750,6 +750,17 @@ enum perf_event_type {
>        */
>       PERF_RECORD_AUX                         = 11,
>  
> +     /*
> +      * Indicates that instruction trace has started
> +      *
> +      * struct {
> +      *      struct perf_event_header        header;
> +      *      u32                             pid;
> +      *      u32                             tid;

The below function suggests we should have:

                struct sample_id                sample_id;

> +      * };
> +      */
> +     PERF_RECORD_ITRACE_START                = 12,
> +
>       PERF_RECORD_MAX,                        /* non-ABI */
>  };

> +static void perf_log_itrace_start(struct perf_event *event)
> +{
> +     struct perf_output_handle handle;
> +     struct perf_sample_data sample;
> +     struct perf_aux_event {
> +             struct perf_event_header        header;
> +             u32                             pid;
> +             u32                             tid;
> +     } rec;
> +     int ret;
> +
> +     if (event->parent)
> +             event = event->parent;
> +
> +     if (!(event->pmu->capabilities & PERF_PMU_CAP_ITRACE) ||
> +         event->hw.itrace_started)
> +             return;
> +
> +     event->hw.itrace_started = 1;
> +
> +     rec.header.type = PERF_RECORD_ITRACE_START;
> +     rec.header.misc = 0;
> +     rec.header.size = sizeof(rec);
> +     rec.pid = perf_event_pid(event, current);
> +     rec.tid = perf_event_tid(event, current);
> +
> +     perf_event_header__init_id(&rec.header, &sample, event);
> +     ret = perf_output_begin(&handle, event, rec.header.size);
> +
> +     if (ret)
> +             return;
> +
> +     perf_output_put(&handle, rec);
> +     perf_event__output_id_sample(event, &handle, &sample);
> +
> +     perf_output_end(&handle);
> +}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to