Merge tag 'for-4.18/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[sfrench/cifs-2.6.git] / tools / perf / builtin-sched.c
index 4dfdee668b0ca94aaa51f0cd1322cc3dba283bdb..cbf39dab19c1a570fa4f988aeec1aab64f918a9d 100644 (file)
@@ -2143,7 +2143,7 @@ static void save_task_callchain(struct perf_sched *sched,
                return;
        }
 
-       if (!symbol_conf.use_callchain || sample->callchain == NULL)
+       if (!sched->show_callchain || sample->callchain == NULL)
                return;
 
        if (thread__resolve_callchain(thread, cursor, evsel, sample,
@@ -2271,10 +2271,11 @@ static struct thread *get_idle_thread(int cpu)
        return idle_threads[cpu];
 }
 
-static void save_idle_callchain(struct idle_thread_runtime *itr,
+static void save_idle_callchain(struct perf_sched *sched,
+                               struct idle_thread_runtime *itr,
                                struct perf_sample *sample)
 {
-       if (!symbol_conf.use_callchain || sample->callchain == NULL)
+       if (!sched->show_callchain || sample->callchain == NULL)
                return;
 
        callchain_cursor__copy(&itr->cursor, &callchain_cursor);
@@ -2320,7 +2321,7 @@ static struct thread *timehist_get_thread(struct perf_sched *sched,
 
                        /* copy task callchain when entering to idle */
                        if (perf_evsel__intval(evsel, sample, "next_pid") == 0)
-                               save_idle_callchain(itr, sample);
+                               save_idle_callchain(sched, itr, sample);
                }
        }
 
@@ -2849,7 +2850,7 @@ static void timehist_print_summary(struct perf_sched *sched,
                        printf("    CPU %2d idle entire time window\n", i);
        }
 
-       if (sched->idle_hist && symbol_conf.use_callchain) {
+       if (sched->idle_hist && sched->show_callchain) {
                callchain_param.mode  = CHAIN_FOLDED;
                callchain_param.value = CCVAL_PERIOD;
 
@@ -2933,8 +2934,7 @@ static int timehist_check_attr(struct perf_sched *sched,
                        return -1;
                }
 
-               if (sched->show_callchain &&
-                   !(evsel->attr.sample_type & PERF_SAMPLE_CALLCHAIN)) {
+               if (sched->show_callchain && !evsel__has_callchain(evsel)) {
                        pr_info("Samples do not have callchains.\n");
                        sched->show_callchain = 0;
                        symbol_conf.use_callchain = 0;