projects/linux·blob master · refs

27 lines · 569 B

1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Performance event support for parisc
4 *
5 * Copyright (C) 2025 by Helge Deller <[email protected]>
6 */
7
8#include <linux/kernel.h>
9#include <linux/perf_event.h>
10#include <asm/unwind.h>
11
12void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry,
13 struct pt_regs *regs)
14{
15
16 struct unwind_frame_info info;
17
18 unwind_frame_init_task(&info, current, NULL);
19 while (1) {
20 if (unwind_once(&info) < 0 || info.ip == 0)
21 break;
22
23 if (!__kernel_text_address(info.ip) ||
24 perf_callchain_store(entry, info.ip))
25 return;
26 }
27}