diff options
| -rw-r--r-- | tools/perf/builtin-report.c | 7 | ||||
| -rw-r--r-- | tools/perf/tests/dwarf-unwind.c | 3 | 
2 files changed, 10 insertions, 0 deletions
| diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 2cfc4b93991f..140a6cd88351 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -257,6 +257,13 @@ static int report__setup_sample_type(struct report *rep)  		}  	} +	if (symbol_conf.use_callchain || symbol_conf.cumulate_callchain) { +		if ((sample_type & PERF_SAMPLE_REGS_USER) && +		    (sample_type & PERF_SAMPLE_STACK_USER)) +			callchain_param.record_mode = CALLCHAIN_DWARF; +		else +			callchain_param.record_mode = CALLCHAIN_FP; +	}  	return 0;  } diff --git a/tools/perf/tests/dwarf-unwind.c b/tools/perf/tests/dwarf-unwind.c index 96adb730b744..fc25e57f4a5d 100644 --- a/tools/perf/tests/dwarf-unwind.c +++ b/tools/perf/tests/dwarf-unwind.c @@ -9,6 +9,7 @@  #include "perf_regs.h"  #include "map.h"  #include "thread.h" +#include "callchain.h"  static int mmap_handler(struct perf_tool *tool __maybe_unused,  			union perf_event *event, @@ -120,6 +121,8 @@ int test__dwarf_unwind(void)  		return -1;  	} +	callchain_param.record_mode = CALLCHAIN_DWARF; +  	if (init_live_machine(machine)) {  		pr_err("Could not init machine\n");  		goto out; | 
