1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Performance event support for parisc 4 * 5 * Copyright (C) 2025 by Helge Deller <deller@gmx.de> 6 */ 7 8 #include <linux/kernel.h> 9 #include <linux/perf_event.h> 10 #include <asm/unwind.h> 11 perf_callchain_kernel(struct perf_callchain_entry_ctx * entry,struct pt_regs * regs)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 } 28