Loading kernel/perf_event.c +24 −19 Original line number Diff line number Diff line Loading @@ -922,11 +922,13 @@ static void __perf_event_mark_enabled(struct perf_event *event, event->state = PERF_EVENT_STATE_INACTIVE; event->tstamp_enabled = ctx->time - event->total_time_enabled; list_for_each_entry(sub, &event->sibling_list, group_entry) if (sub->state >= PERF_EVENT_STATE_INACTIVE) list_for_each_entry(sub, &event->sibling_list, group_entry) { if (sub->state >= PERF_EVENT_STATE_INACTIVE) { sub->tstamp_enabled = ctx->time - sub->total_time_enabled; } } } /* * Cross CPU call to enable a performance event Loading Loading @@ -1092,13 +1094,15 @@ static void ctx_sched_out(struct perf_event_context *ctx, if (!ctx->nr_active) goto out_enable; if (event_type & EVENT_PINNED) if (event_type & EVENT_PINNED) { list_for_each_entry(event, &ctx->pinned_groups, group_entry) group_sched_out(event, cpuctx, ctx); } if (event_type & EVENT_FLEXIBLE) if (event_type & EVENT_FLEXIBLE) { list_for_each_entry(event, &ctx->flexible_groups, group_entry) group_sched_out(event, cpuctx, ctx); } out_enable: perf_enable(); Loading Loading @@ -1341,11 +1345,12 @@ ctx_flexible_sched_in(struct perf_event_context *ctx, if (event->cpu != -1 && event->cpu != smp_processor_id()) continue; if (group_can_go_on(event, cpuctx, can_add_hw)) if (group_can_go_on(event, cpuctx, can_add_hw)) { if (group_sched_in(event, cpuctx, ctx)) can_add_hw = 0; } } } static void ctx_sched_in(struct perf_event_context *ctx, Loading Loading
kernel/perf_event.c +24 −19 Original line number Diff line number Diff line Loading @@ -922,11 +922,13 @@ static void __perf_event_mark_enabled(struct perf_event *event, event->state = PERF_EVENT_STATE_INACTIVE; event->tstamp_enabled = ctx->time - event->total_time_enabled; list_for_each_entry(sub, &event->sibling_list, group_entry) if (sub->state >= PERF_EVENT_STATE_INACTIVE) list_for_each_entry(sub, &event->sibling_list, group_entry) { if (sub->state >= PERF_EVENT_STATE_INACTIVE) { sub->tstamp_enabled = ctx->time - sub->total_time_enabled; } } } /* * Cross CPU call to enable a performance event Loading Loading @@ -1092,13 +1094,15 @@ static void ctx_sched_out(struct perf_event_context *ctx, if (!ctx->nr_active) goto out_enable; if (event_type & EVENT_PINNED) if (event_type & EVENT_PINNED) { list_for_each_entry(event, &ctx->pinned_groups, group_entry) group_sched_out(event, cpuctx, ctx); } if (event_type & EVENT_FLEXIBLE) if (event_type & EVENT_FLEXIBLE) { list_for_each_entry(event, &ctx->flexible_groups, group_entry) group_sched_out(event, cpuctx, ctx); } out_enable: perf_enable(); Loading Loading @@ -1341,11 +1345,12 @@ ctx_flexible_sched_in(struct perf_event_context *ctx, if (event->cpu != -1 && event->cpu != smp_processor_id()) continue; if (group_can_go_on(event, cpuctx, can_add_hw)) if (group_can_go_on(event, cpuctx, can_add_hw)) { if (group_sched_in(event, cpuctx, ctx)) can_add_hw = 0; } } } static void ctx_sched_in(struct perf_event_context *ctx, Loading