diff options
-rw-r--r-- | kernel/perf_event.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index c97e82518403..a4fa381db3c2 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
@@ -255,6 +255,18 @@ static void update_event_times(struct perf_event *event) | |||
255 | event->total_time_running = run_end - event->tstamp_running; | 255 | event->total_time_running = run_end - event->tstamp_running; |
256 | } | 256 | } |
257 | 257 | ||
258 | /* | ||
259 | * Update total_time_enabled and total_time_running for all events in a group. | ||
260 | */ | ||
261 | static void update_group_times(struct perf_event *leader) | ||
262 | { | ||
263 | struct perf_event *event; | ||
264 | |||
265 | update_event_times(leader); | ||
266 | list_for_each_entry(event, &leader->sibling_list, group_entry) | ||
267 | update_event_times(event); | ||
268 | } | ||
269 | |||
258 | static struct list_head * | 270 | static struct list_head * |
259 | ctx_group_list(struct perf_event *event, struct perf_event_context *ctx) | 271 | ctx_group_list(struct perf_event *event, struct perf_event_context *ctx) |
260 | { | 272 | { |
@@ -320,7 +332,7 @@ list_del_event(struct perf_event *event, struct perf_event_context *ctx) | |||
320 | if (event->group_leader != event) | 332 | if (event->group_leader != event) |
321 | event->group_leader->nr_siblings--; | 333 | event->group_leader->nr_siblings--; |
322 | 334 | ||
323 | update_event_times(event); | 335 | update_group_times(event); |
324 | 336 | ||
325 | /* | 337 | /* |
326 | * If event was in error state, then keep it | 338 | * If event was in error state, then keep it |
@@ -502,18 +514,6 @@ retry: | |||
502 | } | 514 | } |
503 | 515 | ||
504 | /* | 516 | /* |
505 | * Update total_time_enabled and total_time_running for all events in a group. | ||
506 | */ | ||
507 | static void update_group_times(struct perf_event *leader) | ||
508 | { | ||
509 | struct perf_event *event; | ||
510 | |||
511 | update_event_times(leader); | ||
512 | list_for_each_entry(event, &leader->sibling_list, group_entry) | ||
513 | update_event_times(event); | ||
514 | } | ||
515 | |||
516 | /* | ||
517 | * Cross CPU call to disable a performance event | 517 | * Cross CPU call to disable a performance event |
518 | */ | 518 | */ |
519 | static void __perf_event_disable(void *info) | 519 | static void __perf_event_disable(void *info) |