summaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-sched.c')
-rw-r--r--tools/perf/builtin-sched.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index dd714818fa4d..7fe3b3cb4cc8 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -472,6 +472,7 @@ static u64 get_cpu_usage_nsec_self(int fd)
472struct sched_thread_parms { 472struct sched_thread_parms {
473 struct task_desc *task; 473 struct task_desc *task;
474 struct perf_sched *sched; 474 struct perf_sched *sched;
475 int fd;
475}; 476};
476 477
477static void *thread_func(void *ctx) 478static void *thread_func(void *ctx)
@@ -482,13 +483,12 @@ static void *thread_func(void *ctx)
482 u64 cpu_usage_0, cpu_usage_1; 483 u64 cpu_usage_0, cpu_usage_1;
483 unsigned long i, ret; 484 unsigned long i, ret;
484 char comm2[22]; 485 char comm2[22];
485 int fd; 486 int fd = parms->fd;
486 487
487 zfree(&parms); 488 zfree(&parms);
488 489
489 sprintf(comm2, ":%s", this_task->comm); 490 sprintf(comm2, ":%s", this_task->comm);
490 prctl(PR_SET_NAME, comm2); 491 prctl(PR_SET_NAME, comm2);
491 fd = self_open_counters();
492 if (fd < 0) 492 if (fd < 0)
493 return NULL; 493 return NULL;
494again: 494again:
@@ -540,6 +540,7 @@ static void create_tasks(struct perf_sched *sched)
540 BUG_ON(parms == NULL); 540 BUG_ON(parms == NULL);
541 parms->task = task = sched->tasks[i]; 541 parms->task = task = sched->tasks[i];
542 parms->sched = sched; 542 parms->sched = sched;
543 parms->fd = self_open_counters();
543 sem_init(&task->sleep_sem, 0, 0); 544 sem_init(&task->sleep_sem, 0, 0);
544 sem_init(&task->ready_for_work, 0, 0); 545 sem_init(&task->ready_for_work, 0, 0);
545 sem_init(&task->work_done_sem, 0, 0); 546 sem_init(&task->work_done_sem, 0, 0);