lkml.org 
[lkml]   [2019]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 1/7] perf: Allow normal events to be sources of AUX data
On Wed, Jul 31, 2019 at 05:30:35PM +0300, Alexander Shishkin wrote:
> +static void perf_put_aux_event(struct perf_event *event)
> +{
> + struct perf_event_context *ctx = event->ctx;
> + struct perf_cpu_context *cpuctx = __get_cpu_context(ctx);
> + struct perf_event *iter = NULL;
> +
> + /*
> + * If event uses aux_event tear down the link
> + */
> + if (event->aux_event) {
> + put_event(event->aux_event);
> + event->aux_event = NULL;

Those lines should probably be reversed; put_event() should be done
after clearing the link.

It probably doesn't matter, but it is confusing.

> + return;
> + }
> +
> + /*
> + * If the event is an aux_event, tear down all links to
> + * it from other events.
> + */
> + for_each_sibling_event(iter, event->group_leader) {
> + if (iter->aux_event != event)
> + continue;
> +
> + iter->aux_event = NULL;
> + put_event(event);
> +
> + /*
> + * If it's ACTIVE, schedule it out. It won't schedule
> + * again because !aux_event.
> + */
> + event_sched_out(iter, cpuctx, ctx);
> + }
> +}

\
 
 \ /
  Last update: 2019-07-31 18:21    [W:0.096 / U:0.052 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site