backtrace
backtrace(excp);
backtrace(excp);
static void backtrace(struct pt_regs *);
module_param_named(backtrace, force_bt, bool, 0444);
MODULE_PARM_DESC(backtrace, "print backtraces for all tests");
depot_stack_handle_t backtrace;
backtrace = stack_depot_save(stack_entries, n, GFP_KERNEL);
if (!backtrace)
if (history->entries[i].backtrace == backtrace) {
entry->backtrace = backtrace;
stack_depot_snprint(entry->backtrace, buf, PAGE_SIZE, 4);
if (lr->backtrace[0]) {
unsigned long bt = lr->backtrace[q];
depot_stack_handle_t backtrace;
unsigned long backtrace[LT_BACKTRACEDEPTH];
if (!latency_record[i].backtrace[0]) {
unsigned long record = lat->backtrace[q];
if (latency_record[i].backtrace[q] != record) {
stack_trace_save_tsk(tsk, lat.backtrace, LT_BACKTRACEDEPTH, 0);
unsigned long record = lat.backtrace[q];
if (mylat->backtrace[q] != record) {
if (lr->backtrace[0]) {
unsigned long bt = lr->backtrace[q];
goto backtrace;
goto backtrace;
backtrace:
goto backtrace;
entries = backtrace(backtrace_fns, 10);
OPT_BOOLEAN(0, "backtrace", &opts.backtrace, "unwind on error"),
if (opts.verbose || opts.backtrace || opts.trace || opts.disas) {
bool backtrace;
if (opts.verbose || opts.backtrace) { \
svg_interrupt(we->time, to, we->backtrace);
svg_wakeline(we->time, from, to, we->backtrace);
task_to, we->backtrace);
sample->backtrace);
sample->backtrace);
sample->backtrace);
sample->backtrace);
const char *backtrace;
const char *backtrace;
const char *backtrace)
sample->backtrace = backtrace;
int waker, int wakee, u8 flags, const char *backtrace)
we->backtrace = backtrace;
const char *backtrace)
backtrace);
backtrace);
const char *backtrace);
const char *backtrace __maybe_unused)
const char *backtrace __maybe_unused)
const char *backtrace)
sched_wakeup(tchart, sample->cpu, sample->time, waker, wakee, flags, backtrace);
const char *backtrace)
prev_state, backtrace);
const char *backtrace __maybe_unused)
const char *backtrace __maybe_unused)
const char *backtrace __maybe_unused)
stackdump_size = backtrace(stackdump, ARRAY_SIZE(stackdump));
size = backtrace(stackdump, ARRAY_SIZE(stackdump));
size_t size = backtrace(stackdump, ARRAY_SIZE(stackdump));
void svg_blocked(int Yslot, int cpu, u64 start, u64 end, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>Blocked on:\n%s</desc>\n", backtrace);
void svg_running(int Yslot, int cpu, u64 start, u64 end, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>Switched because:\n%s</desc>\n", backtrace);
void svg_waiting(int Yslot, int cpu, u64 start, u64 end, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>Waiting on:\n%s</desc>\n", backtrace);
void svg_process(int cpu, u64 start, u64 end, int pid, const char *name, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>Switched because:\n%s</desc>\n", backtrace);
void svg_partial_wakeline(u64 start, int row1, char *desc1, int row2, char *desc2, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>%s</desc>\n", backtrace);
void svg_wakeline(u64 start, int row1, int row2, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>%s</desc>\n", backtrace);
void svg_interrupt(u64 start, int row, const char *backtrace)
if (backtrace)
fprintf(svgfile, "<desc>%s</desc>\n", backtrace);
void svg_blocked(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
void svg_running(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
void svg_waiting(int Yslot, int cpu, u64 start, u64 end, const char *backtrace);
void svg_process(int cpu, u64 start, u64 end, int pid, const char *name, const char *backtrace);
void svg_wakeline(u64 start, int row1, int row2, const char *backtrace);
void svg_partial_wakeline(u64 start, int row1, char *desc1, int row2, char *desc2, const char *backtrace);
void svg_interrupt(u64 start, int row, const char *backtrace);
sz = backtrace(bt, ARRAY_SIZE(bt));
n = backtrace(stack, n);