[Intel-gfx] [PATCH i-g-t v2] overlay: parse tracepoints from sysfs to figure out fields' location

Chris Wilson chris at chris-wilson.co.uk
Tue Dec 19 09:34:54 UTC 2017


Quoting Lionel Landwerlin (2017-12-19 01:06:18)
> With changes going to drm-tip, the tracepoints field locations are
> going to change. This change introduces a tracepoint parser (using a
> peg parser) which lets us figure out field positions on the fly.
> 
> v2: Fix automake build (Lionel)
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
> @@ -292,9 +394,13 @@ static int wait_end(struct gpu_perf *gp, const void *event)
>         const struct sample_event *sample = event;
>         struct gpu_perf_time *wait, **prev;

u32 engine = READ_TP_FIELD_U32(sample, TP_GEM_REQUEST_WAIT_END, ring);
u32 context = READ_TP_FIELD_U32(sample, TP_GEM_REQUEST_WAIT_END, ctx);
u32 seqno = READ_TP_FIELD_U32(sample, TP_GEM_REQUEST_WAIT_END, seqno);

> -       for (prev = &gp->wait[sample->raw[ENGINE]]; (wait = *prev) != NULL; prev = &wait->next) {
> -               if (wait->context != sample->raw[CTX] ||
> -                   wait->seqno != sample->raw[CTX_SEQNO])
> +       for (prev = &gp->wait[READ_TP_FIELD_U32(sample, TP_GEM_REQUEST_WAIT_END, ring)];
> +            (wait = *prev) != NULL;
> +            prev = &wait->next) {
> +               if (wait->context != READ_TP_FIELD_U32(sample,
> +                                                             TP_GEM_REQUEST_WAIT_END, ctx) ||
> +                   wait->seqno != READ_TP_FIELD_U32(sample,
> +                                                           TP_GEM_REQUEST_WAIT_END, seqno))
>                         continue;

Looks very useful, thanks!
-Chris


More information about the Intel-gfx mailing list