diff options
| -rw-r--r-- | tools/perf/builtin-script.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 7b376d215e94..105332e950a9 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
| @@ -1561,6 +1561,22 @@ static int have_cmd(int argc, const char **argv) | |||
| 1561 | return 0; | 1561 | return 0; |
| 1562 | } | 1562 | } |
| 1563 | 1563 | ||
| 1564 | static void script__setup_sample_type(struct perf_script *script) | ||
| 1565 | { | ||
| 1566 | struct perf_session *session = script->session; | ||
| 1567 | u64 sample_type = perf_evlist__combined_sample_type(session->evlist); | ||
| 1568 | |||
| 1569 | if (symbol_conf.use_callchain || symbol_conf.cumulate_callchain) { | ||
| 1570 | if ((sample_type & PERF_SAMPLE_REGS_USER) && | ||
| 1571 | (sample_type & PERF_SAMPLE_STACK_USER)) | ||
| 1572 | callchain_param.record_mode = CALLCHAIN_DWARF; | ||
| 1573 | else if (sample_type & PERF_SAMPLE_BRANCH_STACK) | ||
| 1574 | callchain_param.record_mode = CALLCHAIN_LBR; | ||
| 1575 | else | ||
| 1576 | callchain_param.record_mode = CALLCHAIN_FP; | ||
| 1577 | } | ||
| 1578 | } | ||
| 1579 | |||
| 1564 | int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused) | 1580 | int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused) |
| 1565 | { | 1581 | { |
| 1566 | bool show_full_info = false; | 1582 | bool show_full_info = false; |
| @@ -1849,6 +1865,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 1849 | goto out_delete; | 1865 | goto out_delete; |
| 1850 | 1866 | ||
| 1851 | script.session = session; | 1867 | script.session = session; |
| 1868 | script__setup_sample_type(&script); | ||
| 1852 | 1869 | ||
| 1853 | session->itrace_synth_opts = &itrace_synth_opts; | 1870 | session->itrace_synth_opts = &itrace_synth_opts; |
| 1854 | 1871 | ||
