fgraph.c (f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5) | fgraph.c (f2cc020d7876de7583feb52ec939a32419cf9468) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Infrastructure to took into function calls and returns. 4 * Copyright (c) 2008-2009 Frederic Weisbecker <fweisbec@gmail.com> 5 * Mostly borrowed from function tracer which 6 * is Copyright (c) Steven Rostedt <srostedt@redhat.com> 7 * 8 * Highly modified by Steven Rostedt (VMware). --- 28 unchanged lines hidden (view full) --- 37 * paths of function graph to keep those paths from doing any more harm. 38 */ 39bool ftrace_graph_is_dead(void) 40{ 41 return kill_ftrace_graph; 42} 43 44/** | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Infrastructure to took into function calls and returns. 4 * Copyright (c) 2008-2009 Frederic Weisbecker <fweisbec@gmail.com> 5 * Mostly borrowed from function tracer which 6 * is Copyright (c) Steven Rostedt <srostedt@redhat.com> 7 * 8 * Highly modified by Steven Rostedt (VMware). --- 28 unchanged lines hidden (view full) --- 37 * paths of function graph to keep those paths from doing any more harm. 38 */ 39bool ftrace_graph_is_dead(void) 40{ 41 return kill_ftrace_graph; 42} 43 44/** |
45 * ftrace_graph_stop - set to permanently disable function graph tracincg | 45 * ftrace_graph_stop - set to permanently disable function graph tracing |
46 * 47 * In case of an error int function graph tracing, this is called 48 * to try to keep function graph tracing from causing any more harm. 49 * Usually this is pretty severe and this is called to try to at least 50 * get a warning out to the user. 51 */ 52void ftrace_graph_stop(void) 53{ --- 58 unchanged lines hidden (view full) --- 112 113int function_graph_enter(unsigned long ret, unsigned long func, 114 unsigned long frame_pointer, unsigned long *retp) 115{ 116 struct ftrace_graph_ent trace; 117 118 /* 119 * Skip graph tracing if the return location is served by direct trampoline, | 46 * 47 * In case of an error int function graph tracing, this is called 48 * to try to keep function graph tracing from causing any more harm. 49 * Usually this is pretty severe and this is called to try to at least 50 * get a warning out to the user. 51 */ 52void ftrace_graph_stop(void) 53{ --- 58 unchanged lines hidden (view full) --- 112 113int function_graph_enter(unsigned long ret, unsigned long func, 114 unsigned long frame_pointer, unsigned long *retp) 115{ 116 struct ftrace_graph_ent trace; 117 118 /* 119 * Skip graph tracing if the return location is served by direct trampoline, |
120 * since call sequence and return addresses is unpredicatable anymore. | 120 * since call sequence and return addresses are unpredictable anyway. |
121 * Ex: BPF trampoline may call original function and may skip frame 122 * depending on type of BPF programs attached. 123 */ 124 if (ftrace_direct_func_count && 125 ftrace_find_rec_direct(ret - MCOUNT_INSN_SIZE)) 126 return -EBUSY; 127 trace.func = func; 128 trace.depth = ++current->curr_ret_depth; --- 523 unchanged lines hidden --- | 121 * Ex: BPF trampoline may call original function and may skip frame 122 * depending on type of BPF programs attached. 123 */ 124 if (ftrace_direct_func_count && 125 ftrace_find_rec_direct(ret - MCOUNT_INSN_SIZE)) 126 return -EBUSY; 127 trace.func = func; 128 trace.depth = ++current->curr_ret_depth; --- 523 unchanged lines hidden --- |