mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 22:37:45 -04:00
This adds CONFIG_FTRACE_RECORD_RECURSION that will record to a file "recursed_functions" all the functions that caused recursion while a callback to the function tracer was running. Link: https://lkml.kernel.org/r/[email protected] Cc: Masami Hiramatsu <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Guo Ren <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: Helge Deller <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Vasily Gorbik <[email protected]> Cc: Christian Borntraeger <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: [email protected] Cc: "H. Peter Anvin" <[email protected]> Cc: Kees Cook <[email protected]> Cc: Anton Vorontsov <[email protected]> Cc: Colin Cross <[email protected]> Cc: Tony Luck <[email protected]> Cc: Josh Poimboeuf <[email protected]> Cc: Jiri Kosina <[email protected]> Cc: Miroslav Benes <[email protected]> Cc: Petr Mladek <[email protected]> Cc: Joe Lawrence <[email protected]> Cc: Kamalesh Babulal <[email protected]> Cc: Mauro Carvalho Chehab <[email protected]> Cc: Sebastian Andrzej Siewior <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Steven Rostedt (VMware) <[email protected]>
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef __TRACE_EVENTS_H
|
|
#define __TRACE_EVENTS_H
|
|
|
|
#include <linux/trace_seq.h>
|
|
#include "trace.h"
|
|
|
|
extern enum print_line_t
|
|
trace_print_bputs_msg_only(struct trace_iterator *iter);
|
|
extern enum print_line_t
|
|
trace_print_bprintk_msg_only(struct trace_iterator *iter);
|
|
extern enum print_line_t
|
|
trace_print_printk_msg_only(struct trace_iterator *iter);
|
|
|
|
extern int
|
|
seq_print_ip_sym(struct trace_seq *s, unsigned long ip,
|
|
unsigned long sym_flags);
|
|
|
|
extern void trace_seq_print_sym(struct trace_seq *s, unsigned long address, bool offset);
|
|
extern int trace_print_context(struct trace_iterator *iter);
|
|
extern int trace_print_lat_context(struct trace_iterator *iter);
|
|
|
|
extern void trace_event_read_lock(void);
|
|
extern void trace_event_read_unlock(void);
|
|
extern struct trace_event *ftrace_find_event(int type);
|
|
|
|
extern enum print_line_t trace_nop_print(struct trace_iterator *iter,
|
|
int flags, struct trace_event *event);
|
|
extern int
|
|
trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry);
|
|
|
|
/* used by module unregistering */
|
|
extern int __unregister_trace_event(struct trace_event *event);
|
|
extern struct rw_semaphore trace_event_sem;
|
|
|
|
#define SEQ_PUT_FIELD(s, x) \
|
|
trace_seq_putmem(s, &(x), sizeof(x))
|
|
|
|
#define SEQ_PUT_HEX_FIELD(s, x) \
|
|
trace_seq_putmem_hex(s, &(x), sizeof(x))
|
|
|
|
#endif
|
|
|