perf thread-stack: Factor out thread_stack__init()
authorAdrian Hunter <adrian.hunter@intel.com>
Fri, 21 Dec 2018 12:06:17 +0000 (14:06 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 2 Jan 2019 13:53:41 +0000 (10:53 -0300)
In preparation for fixing thread stack processing for the idle task,
factor out thread_stack__init().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/20181221120620.9659-6-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/thread-stack.c

index a5f7b9d8fc2385377e1bdb3b5d336cc06bbd3df9..03770af9e5cda9a6c01c177859e2f073b14b2a03 100644 (file)
@@ -93,6 +93,24 @@ static int thread_stack__grow(struct thread_stack *ts)
        return 0;
 }
 
+static int thread_stack__init(struct thread_stack *ts, struct thread *thread,
+                             struct call_return_processor *crp)
+{
+       int err;
+
+       err = thread_stack__grow(ts);
+       if (err)
+               return err;
+
+       if (thread->mg && thread->mg->machine)
+               ts->kernel_start = machine__kernel_start(thread->mg->machine);
+       else
+               ts->kernel_start = 1ULL << 63;
+       ts->crp = crp;
+
+       return 0;
+}
+
 static struct thread_stack *thread_stack__new(struct thread *thread,
                                              struct call_return_processor *crp)
 {
@@ -104,17 +122,11 @@ static struct thread_stack *thread_stack__new(struct thread *thread,
 
        ts->arr_sz = 1;
 
-       if (thread_stack__grow(ts)) {
+       if (thread_stack__init(ts, thread, crp)) {
                free(ts);
                return NULL;
        }
 
-       if (thread->mg && thread->mg->machine)
-               ts->kernel_start = machine__kernel_start(thread->mg->machine);
-       else
-               ts->kernel_start = 1ULL << 63;
-       ts->crp = crp;
-
        thread->ts = ts;
 
        return ts;