Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/sh/kernel/perf_callchain.c
26424 views
1
// SPDX-License-Identifier: GPL-2.0
2
/*
3
* Performance event callchain support - SuperH architecture code
4
*
5
* Copyright (C) 2009 Paul Mundt
6
*/
7
#include <linux/kernel.h>
8
#include <linux/sched.h>
9
#include <linux/perf_event.h>
10
#include <linux/percpu.h>
11
#include <asm/unwinder.h>
12
#include <asm/ptrace.h>
13
14
static void callchain_address(void *data, unsigned long addr, int reliable)
15
{
16
struct perf_callchain_entry_ctx *entry = data;
17
18
if (reliable)
19
perf_callchain_store(entry, addr);
20
}
21
22
static const struct stacktrace_ops callchain_ops = {
23
.address = callchain_address,
24
};
25
26
void
27
perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs)
28
{
29
perf_callchain_store(entry, regs->pc);
30
31
unwind_stack(NULL, regs, NULL, &callchain_ops, entry);
32
}
33
34