|
@@ -1796,6 +1796,8 @@ group_sched_out(struct perf_event *group_event,
|
|
struct perf_event *event;
|
|
struct perf_event *event;
|
|
int state = group_event->state;
|
|
int state = group_event->state;
|
|
|
|
|
|
|
|
+ perf_pmu_disable(ctx->pmu);
|
|
|
|
+
|
|
event_sched_out(group_event, cpuctx, ctx);
|
|
event_sched_out(group_event, cpuctx, ctx);
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -1804,6 +1806,8 @@ group_sched_out(struct perf_event *group_event,
|
|
list_for_each_entry(event, &group_event->sibling_list, group_entry)
|
|
list_for_each_entry(event, &group_event->sibling_list, group_entry)
|
|
event_sched_out(event, cpuctx, ctx);
|
|
event_sched_out(event, cpuctx, ctx);
|
|
|
|
|
|
|
|
+ perf_pmu_enable(ctx->pmu);
|
|
|
|
+
|
|
if (state == PERF_EVENT_STATE_ACTIVE && group_event->attr.exclusive)
|
|
if (state == PERF_EVENT_STATE_ACTIVE && group_event->attr.exclusive)
|
|
cpuctx->exclusive = 0;
|
|
cpuctx->exclusive = 0;
|
|
}
|
|
}
|