mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02: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/20201106023548.102375687@goodmis.org Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Guo Ren <guoren@kernel.org> Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com> Cc: Helge Deller <deller@gmx.de> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Borislav Petkov <bp@alien8.de> Cc: x86@kernel.org Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Kees Cook <keescook@chromium.org> Cc: Anton Vorontsov <anton@enomsg.org> Cc: Colin Cross <ccross@android.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Josh Poimboeuf <jpoimboe@redhat.com> Cc: Jiri Kosina <jikos@kernel.org> Cc: Miroslav Benes <mbenes@suse.cz> Cc: Petr Mladek <pmladek@suse.com> Cc: Joe Lawrence <joe.lawrence@redhat.com> Cc: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-csky@vger.kernel.org Cc: linux-parisc@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-s390@vger.kernel.org Cc: live-patching@vger.kernel.org Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 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
 | 
						|
 |