Dear Ralf,
We observe the following issue in kernel backtrace.
Scenario:1
Correct backtrace - if HAVE_FUNCTION_TRACER is disable.
====[ backtrace testing ]===========
Testing a backtrace from process context.
The following trace is a kernel self test and not a bug!
Testing a backtrace.
The following trace is a kernel self test and not a bug!
Call Trace:
[<80295134>] dump_stack+0x8/0x34
[<c0946060>] backtrace_regression_test+0x60/0x94 [sisc_backtrcae]
[<800004f0>] do_one_initcall+0xf0/0x1d0
[<80060954>] sys_init_module+0x19c8/0x1c60
[<8000a418>] stack_done+0x20/0x40
Scenaro-2:
if HAVE_FUNCTION_TRACER is enabled
HAVE_FUNCTION_TRACER function enables FRAME_POINTER
menuconfig->
kernel hacking->
tracers->
Kernel Function Tracer
====[ backtrace testing ]===========
Testing a backtrace from process context.
The following trace is a kernel self test and not a bug!
Testing a backtrace.
The following trace is a kernel self test and not a bug!
Call Trace:
[<802e5164>] dump_stack+0x1c/0x50
[<802e5164>] dump_stack+0x1c/0x50
====[ end of backtrace testing ]====
----------------------------------------------------------------------------------------------------------------------------------------------------
Sample Code:
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/delay.h>
//static struct timer_list backtrace_timer;
static void backtrace_test_timer()
{
printk("Testing a backtrace.\n");
printk("The following trace is a kernel self test and not a bug!\n");
dump_stack();
}
static int backtrace_regression_test(void)
{
printk("====[ backtrace testing ]===========\n");
printk("Testing a backtrace from process context.\n");
printk("The following trace is a kernel self test and not a bug!\n");
backtrace_test_timer();
msleep(10);
printk("====[ end of backtrace testing ]====\n");
return 0;
}
static void exitf(void)
{
}
module_init(backtrace_regression_test);
module_exit(exitf);
MODULE_LICENSE("GPL");
objdump is also attached.
Thanks
scenario-2.dump
Description: Binary data
scenario-1.dump
Description: Binary data
|