x86: don't save unreliable stack trace entries
Currently, there is no way for print_stack_trace() to determine whether a given stack trace entry was deemed reliable or not, simply because save_stack_trace() does not record this information. (Perhaps needless to say, this makes the saved stack traces A LOT harder to read, and probably with no other benefits, since debugging features that use save_stack_trace() most likely also require frame pointers, etc.) This patch reverts to the old behaviour of only recording the reliable trace entries for saved stack traces. Signed-off-by: Vegard Nossum <vegardno@ifi.uio.no> Acked-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
ed2b7e2b1d
commit
1650743cdc
1 changed files with 4 additions and 0 deletions
|
@ -25,6 +25,8 @@ static int save_stack_stack(void *data, char *name)
|
|||
static void save_stack_address(void *data, unsigned long addr, int reliable)
|
||||
{
|
||||
struct stack_trace *trace = data;
|
||||
if (!reliable)
|
||||
return;
|
||||
if (trace->skip > 0) {
|
||||
trace->skip--;
|
||||
return;
|
||||
|
@ -37,6 +39,8 @@ static void
|
|||
save_stack_address_nosched(void *data, unsigned long addr, int reliable)
|
||||
{
|
||||
struct stack_trace *trace = (struct stack_trace *)data;
|
||||
if (!reliable)
|
||||
return;
|
||||
if (in_sched_functions(addr))
|
||||
return;
|
||||
if (trace->skip > 0) {
|
||||
|
|
Loading…
Reference in a new issue