[#5431] function trace triggers double fault
Submitted By: Yi Li
Open Date
2009-08-12 18:57:05 Close Date
2009-09-16 10:48:45
Priority:
Medium Assignee:
Mike Frysinger
Status:
Closed Fixed In Release:
N/A
Found In Release:
snaps Release:
svn trunk
Category:
N/A Board:
N/A
Processor:
ALL Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
2009R1-rc10
App binary format:
N/A
Summary: function trace triggers double fault
Details:
Using the "function trace" will trigger double fault.
Attached the kernel configure.
the double fault
------------------
root:/> echo 1 > /proc/sys/kernel/ftrace_enabled
root:/> echo function > /sys/kernel/debug/tracing/current_tracer
Double Fault
Kernel OOPS in progress
Deferred Exception context
CURRENT PROCESS:
COMM=sh PID=151
CPU = 0
TEXT = 0x00800040-0x0084c6c0 DATA = 0x0084c6c4-0x0086022c
BSS = 0x0086022c-0x00861c24 USER-STACK = 0x00869fa4
return address: [0x00007c3a]; contents of:
0x00007c10: 9103 081a 101c e108 074c e148 001c e102
0x00007c20: 8358 e142 0003 9103 081a 1011 9032 0010
0x00007c30: 0140 0141 0167 3203 310f [a078] 67c1 0060
0x00007c40: 0127 9031 9030 9032 0010 0000 0140 0141
ADSP-BF537-0.2 500(MHz CCLK) 100(MHz SCLK) (mpu off)
Linux version 2.6.30.3-ADI-2010R1-pre-svn7151 (adam@adam-desktop) (gcc version 4.1.2 (ADI svn)) #84 Thu Aug 13 11:51:34 CST 2009
SEQUENCER STATUS: Not tainted
SEQSTAT: 00060027 IPEND: 8028 IMASK: ffff SYSCFG: 0006
EXCAUSE : 0x27
physical IVG3 asserted : <0xffa0073c> { _trap + 0x0 }
physical IVG5 asserted : <0xffa00c8c> { _evt_ivhw + 0x0 }
physical IVG15 asserted : <0xffa00f8c> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa003b0> { _timer_interrupt + 0x0 }
logical irq 10 mapped : <0x000d2710> { _bfin_rtc_interrupt + 0x0 }
logical irq 18 mapped : <0x000bcdd8> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 19 mapped : <0x000bd1cc> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 24 mapped : <0x000c7ed0> { _bfin_mac_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x00a6ddfc> /* kernel dynamic memory */
RETX: <0x00007c3a> { __mcount + 0x4a }
RETS: <0x00005032> { _trap_c + 0x6 }
PC : <0x00007c3a> { __mcount + 0x4a }
DCPLB_FAULT_ADDR: <0x00000004> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x00007c3a> { __mcount + 0x4a }
PROCESSOR STATE:
R0 : 00a6de1c R1 : 00005032 R2 : 00007c48 R3 : 00038148
R4 : 00000000 R5 : 0000100d R6 : 00000027 R7 : 00008008
P0 : 00038148 P1 : ffe02108 P2 : 00a6c000 P3 : 0085926c
P4 : ffe02014 P5 : 00188000 FP : 00000000 SP : 00a6dd20
LB0: 00800179 LT0: 0080016c LC0: 00000000
LB1: 0080d24d LT1: 0080d206 LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 001d40a1
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 00869d14
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 00000000
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 00869d7c ASTAT: 02000002
Hardware Trace:
0 Target : <0x00004f46> { _double_fault_c + 0x6 }
Source : <0x00007c48> { _ftrace_stub + 0x0 } RTS
1 Target : <0x00007c40> { __mcount + 0x50 }
Source : <0x0003816e> { _ftrace_test_stop_func + 0x26 } RTS
2 Target : <0x0003816a> { _ftrace_test_stop_func + 0x22 }
Source : <0x000417ba> { _function_trace_call + 0x8e } RTS
3 Target : <0x000417b4> { _function_trace_call + 0x88 }
Source : <0x000417a6> { _function_trace_call + 0x7a } IF !CC JUMP
4 Target : <0x0004178c> { _function_trace_call + 0x60 }
Source : <0x0003d58e> { _trace_function + 0x4a } RTS
5 Target : <0x0003d588> { _trace_function + 0x44 }
Source : <0x0003adb4> { _ring_buffer_unlock_commit + 0x14 } RTS
6 Target : <0x0003adae> { _ring_buffer_unlock_commit + 0xe }
Source : <0x00039884> { _rb_commit + 0x44 } RTS
7 Target : <0x0003987e> { _rb_commit + 0x3e }
Source : <0x0003983e> { _rb_set_commit_to_write + 0x72 } RTS
8 Target : <0x00039832> { _rb_set_commit_to_write + 0x66 }
Source : <0x0003981e> { _rb_set_commit_to_write + 0x52 } IF !CC JUMP
9 Target : <0x00039816> { _rb_set_commit_to_write + 0x4a }
Source : <0x00039830> { _rb_set_commit_to_write + 0x64 } JUMP.S
10 Target : <0x00039814> { _rb_set_commit_to_write + 0x48 }
Source : <0x000397de> { _rb_set_commit_to_write + 0x12 } JUMP.S
11 Target : <0x000397cc> { _rb_set_commit_to_write + 0x0 }
Source : <0x0003987a> { _rb_commit + 0x3a } CALL pcrel
12 Target : <0x00039856> { _rb_commit + 0x16 }
Source : <0x00038e52> { _rb_is_commit + 0x32 } RTS
13 Target : <0x00038e40> { _rb_is_commit + 0x20 }
Source : <0x00038e36> { _rb_is_commit + 0x16 } IF !CC JUMP
14 Target : <0x00038e20> { _rb_is_commit + 0x0 }
Source : <0x00039852> { _rb_commit + 0x12 } CALL pcrel
15 Target : <0x00039840> { _rb_commit + 0x0 }
Source : <0x0003adaa> { _ring_buffer_unlock_commit + 0xa } CALL pcrel
Kernel panic - not syncing: Double Fault - unrecoverable event
Hardware Trace:
Stack info:
SP: [0x00a6dc18] <0x00a6dc18> /* kernel dynamic memory */
FP: (0x00a6dc1c)
Memory from 0x00a6dc10 to 00a6e000
00a6dc10: 00a6dc18 <00007c40>[00004e92](00a6dc40)<00011f14> 00188000 00159ff8 0018b3ae
00a6dc30: 0018b3ae 0018b7ae 00a6dc5c 00a6dc5c (00a6dcfc)<00004fb6> 00188000 ffe02014
00a6dc50: 00a6dd20 0000003f 00a6dd20 0000003f ffffffff <0003987e> 00a6dc88 <0003d192>
00a6dc70: 00a6dc88 00a6dc94 <0003adae> 00193b54 ffe02014 00b9505c 00a6dcb0 <0003d570>
00a6dc90: 00193b54 00a6dcb0 <0003d588><0005281e><00046aa0> 00000000 0000003f 00000000
00a6dcb0: 00a6dcdc <0004178c> 00188000 001c081c 0000003f 0000100d 00a6dcdc 00a6dcec
00a6dcd0:<00039ab4> 0000003f 00000000 00a6dcf8 <0003816a><00008008> 00007c3a 00a6dd2c
00a6dcf0:<00039b98> 037f9ce0 00000000 (00000000)<ffa00628> 00188000 ffe02014 0085926c
00a6dd10:<00008008> 00a6dd28 <0003f770> 00a6dd68 00000480 00008028 00060027 00000000
00a6dd30: 00a6ddfc 00007c3a 00007c3a <00005032> 00a6de1c 02000002 0080d24d 00800179
00a6dd50: 0080d206 0080016c 00000000 00000000 00000000 00000000 00000000 00000000
00a6dd70: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00a6dd90: 00000000 00000000 00000000 00000000 00000000 00000000 00869d14 001d40a1
00a6ddb0: 00869d7c 00000000 00188000 ffe02014 0085926c 00a6c000 ffe02108 00038148
00a6ddd0:<00008008> 00000027 0000100d 00000000 00038148 00007c48 <00005032> 00a6de1c
00a6ddf0: 00a6de1c 00038148 00000006 <00005032> 00008030 00a6de1c 00007c48 <ffa006d4>
00a6de10: 00a6de30 <0003adae> 00000480 00000480 <00008008> 00000027 00000000 00a6def8
00a6de30: 00000480 00007c3a <0005fbba> 00000004 02000002 0080d24d 00800179 0080d206
00a6de50: 0080016c 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00a6de70: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00a6de90: 00000000 00000000 00000000 00000000 00000000 00869d14 001d40a1 00869d7c
00a6deb0: 00000000 0005fbb4 0000003f 0085926c 00a6c000 00860bc8 00038148 00000000
00a6ded0: ffffe000 00000000 00000000 00038148 00007c48 <0005fbba> 00000004 00000004
00a6def0: 00038148 00000006 <0005fbba> 00000001 00000004 00000044 <ffa008dc><ffa0090e>
00a6df10: 00000004 ffffe000 00000000 00000000 00000000 00802256 <00008000> 00000000
00a6df30: 00000000 00a6e000 00802256 00802256 <0081bc34><ffa00ff2> 02001004 0080d24d
00a6df50: 00800179 0080d206 0080016c 00000000 00000000 00000000 00000000 00000000
00a6df70: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00a6df90: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00869d14
00a6dfb0: 001d40a1 00869d7c 00869d88 00869e1c 00000000 0085926c 008609c4 00860bc8
00a6dfd0: 0000003f 00000001 00000000 00000000 00000000 00000000 00000044 00000001
00a6dff0: 00000004 00000004 0000003f 00000006
Return addresses in stack:
address : <0x00007c40> { __mcount + 0x50 }
address : <0x00004e92> { _dump_stack + 0x6 }
frame 1 : <0x00011f14> { _panic + 0x54 }
frame 2 : <0x00004fb6> { _double_fault_c + 0x76 }
address : <0x0003987e> { _rb_commit + 0x3e }
address : <0x0003d192> { _trace_buffer_lock_reserve + 0x12 }
address : <0x0003adae> { _ring_buffer_unlock_commit + 0xe }
address : <0x0003d570> { _trace_function + 0x2c }
address : <0x0003d588> { _trace_function + 0x44 }
address : <0x0005281e> { _cache_alloc_refill + 0xc6 }
address : <0x00046aa0> { _rmqueue_bulk + 0x34 }
address : <0x0004178c> { _function_trace_call + 0x60 }
address : <0x00039ab4> { ___rb_reserve_next + 0x104 }
address : <0x0003816a> { _ftrace_test_stop_func + 0x22 }
address : <0x00008008> { _module_arch_cleanup + 0x40 }
address : <0x00039b98> { _rb_add_time_stamp + 0x28 }
frame 3 : <0xffa00628> { _double_fault + 0xa0 }
address : <0x00008008> { _module_arch_cleanup + 0x40 }
address : <0x0003f770> { _trace_clock_local + 0x10 }
address : <0x00005032> { _trap_c + 0x6 }
address : <0x00008008> { _module_arch_cleanup + 0x40 }
address : <0x00005032> { _trap_c + 0x6 }
address : <0x00005032> { _trap_c + 0x6 }
address : <0xffa006d4> { _exception_to_level5 + 0xa8 }
address : <0x0003adae> { _ring_buffer_unlock_commit + 0xe }
address : <0x00008008> { _module_arch_cleanup + 0x40 }
address : <0x0005fbba> { _sys_dup2 + 0x6 }
address : <0x0005fbba> { _sys_dup2 + 0x6 }
address : <0x0005fbba> { _sys_dup2 + 0x6 }
address : <0xffa008dc> { _system_call + 0x68 }
address : <0xffa0090e> { _system_call + 0x9a }
address : <0x00008000> { _module_arch_cleanup + 0x38 }
address : <0x0081bc34> [ sh + 0x1bbf4 ]
address : <0xffa00ff2> { _evt_system_call + 0x66 }
Follow-ups
--- Yi Li 2009-08-13 00:16:50
I checked in patch to remove the "double fault", to make
"trap_c()" no be traced (i.e, do not call "mcount" in
trap_c()). But there is still NULL exception exception.
In __mcount:
/* tracer(ulong frompc, ulong selfpc):
* frompc: the pc that did the call to ...
* selfpc: ... this location
* the selfpc itself will need adjusting for the mcount call
*/
r1 = rets;
r0 = [fp + 4];
r1 += -MCOUNT_INSN_SIZE;
/* call the tracer */
call (p0);
I think here __mcount() expects the GCC generate code like:
LINK 0;
CALL __mcount;
UNLINK;
However, GCC (gcc-4.1 2009r1-rc10) generates code as, e.g, in sys_open()
00053db0 <_sys_open>:
53db0: 67 01 [--SP] = RETS;
53db2: fd e3 1d 9f CALL 0x7bec <__mcount>;
53db6: 27 01 RETS = [SP++];
So we need to either change __mcount(), or change GCC.
the NULL exception:
----------------------
root:/> echo 1 > /proc/sys/kernel/ftrace_enabled
root:/> echo function > /sys/kernel/debug/tracing/current_tracer
NULL pointer access
Kernel OOPS in progress
Deferred Exception context
CURRENT PROCESS:
COMM=sh PID=151
CPU = 0
TEXT = 0x00800040-0x0084c6c0 DATA = 0x0084c6c4-0x0086022c
BSS = 0x0086022c-0x00861c24 USER-STACK = 0x00869fa4
return address: [0x00007c32]; contents of:
0x00007c10: 074c e148 001c e102 8350 e142 0003 9103
0x00007c20: 081a 1011 9032 0010 0140 0141 0167 3203
0x00007c30: 310f [a078] 67c1 0060 0127 9031 9030 9032
0x00007c40: 0010 0000 0140 0141 0167 3047 310f 6420
ADSP-BF537-0.2 500(MHz CCLK) 100(MHz SCLK) (mpu off)
Linux version 2.6.30.3-ADI-2010R1-pre-svn7151 (adam@adam-desktop) (gcc version
4.1.2 (ADI svn)) #86 Thu Aug 13 12:12:15 CST 2009
SEQUENCER STATUS: Not tainted
SEQSTAT: 00000027 IPEND: 8008 IMASK: ffff SYSCFG: 0006
EXCAUSE : 0x27
physical IVG3 asserted : <0xffa0073c> { _trap + 0x0 }
physical IVG15 asserted : <0xffa00f8c> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa003b0> { _timer_interrupt + 0x0 }
logical irq 10 mapped : <0x000d2708> { _bfin_rtc_interrupt + 0x0 }
logical irq 18 mapped : <0x000bcdd0> { _bfin_serial_dma_rx_int + 0x0
}
logical irq 19 mapped : <0x000bd1c4> { _bfin_serial_dma_tx_int + 0x0
}
logical irq 24 mapped : <0x000c7ec8> { _bfin_mac_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x00a6def8> /* kernel dynamic memory */
RETX: <0x00000480> /* Maybe fixed code section */
RETS: <0x0005fbb2> { _sys_dup2 + 0x6 }
PC : <0x00007c32> { __mcount + 0x4a }
DCPLB_FAULT_ADDR: <0x00000004> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x00007c32> { __mcount + 0x4a }
PROCESSOR STATE:
R0 : 00000004 R1 : 0005fbb2 R2 : 00007c40 R3 : 00038140
R4 : 00000000 R5 : 00000000 R6 : ffffe000 R7 : 00000000
P0 : 00038140 P1 : 00860bc8 P2 : 00a6c000 P3 : 0085926c
P4 : 0000003f P5 : 0005fbac FP : 00000000 SP : 00a6de1c
LB0: 00800179 LT0: 0080016c LC0: 00000000
LB1: 0080d24d LT1: 0080d206 LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 001f3765
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 00869d14
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 00000000
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 00869d7c ASTAT: 02000002
Hardware Trace:
0 Target : <0x0000502c> { _trap_c + 0x0 }
Source : <0xffa006d0> { _exception_to_level5 + 0xa4 } CALL pcrel
1 Target : <0xffa0062c> { _exception_to_level5 + 0x0 }
Source : <0xffa004e0> { _bfin_return_from_exception + 0x20 } RTX
2 Target : <0xffa004c0> { _bfin_return_from_exception + 0x0 }
Source : <0xffa00584> { _ex_trap_c + 0x74 } JUMP.S
3 Target : <0xffa00510> { _ex_trap_c + 0x0 }
Source : <0xffa003e8> { _ex_workaround_261 + 0x1c } JUMP.S
4 Target : <0xffa003cc> { _ex_workaround_261 + 0x0 }
Source : <0xffa007a4> { _trap + 0x68 } JUMP (P4)
5 Target : <0xffa0075c> { _trap + 0x20 }
Source : <0xffa00758> { _trap + 0x1c } IF !CC JUMP
6 Target : <0xffa0073c> { _trap + 0x0 }
Source : <0xffa004e0> { _bfin_return_from_exception + 0x20 } RTX
7 Target : <0xffa004c0> { _bfin_return_from_exception + 0x0 }
Source : <0xffa003de> { _ex_workaround_261 + 0x12 } IF !CC JUMP
8 Target : <0xffa003cc> { _ex_workaround_261 + 0x0 }
Source : <0xffa007a4> { _trap + 0x68 } JUMP (P4)
9 Target : <0xffa0075c> { _trap + 0x20 }
Source : <0xffa00758> { _trap + 0x1c } IF !CC JUMP
10 Target : <0xffa0073c> { _trap + 0x0 }
Source : <0x00007c30> { __mcount + 0x48 } 0x310f
11 Target : <0x00007c28> { __mcount + 0x40 }
Source : <0x00007bfe> { __mcount + 0x16 } IF !CC JUMP
12 Target : <0x00007be8> { __mcount + 0x0 }
Source : <0x0005fbae> { _sys_dup2 + 0x2 } CALL pcrel
13 Target : <0x0005fbac> { _sys_dup2 + 0x0 }
Source : <0xffa008da> { _system_call + 0x66 } CALL (P5)
14 Target : <0xffa00874> { _system_call + 0x0 }
Source : <0xffa00fee> { _evt_system_call + 0x62 } CALL pcrel
15 Target : <0xffa00f8c> { _evt_system_call + 0x0 }
Source : <0xffa004e0> { _bfin_return_from_exception + 0x20 } RTX
Kernel Stack
Stack info:
SP: [0x00a6df24] <0x00a6df24> /* kernel dynamic memory */
Memory from 0x00a6df20 to 00a6e000
00a6df20: 00000000 [00802256]<00008000> 00000000 00000000 00a6e000
00802256 00802256
00a6df40:<0081bc34><ffa00ff2> 02001004 0080d24d 00800179
0080d206 0080016c 00000000
00a6df60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6df80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6dfa0: 00000000 00000000 00000000 00869d14 001f3765 00869d7c 00869d88
00869e1c
00a6dfc0: 00000000 0085926c 008609c4 00860bc8 0000003f 00000001 00000000
00000000
00a6dfe0: 00000000 00000000 00000044 00000001 00000004 00000004 0000003f
00000006
Return addresses in stack:
address : <0x00008000> { _module_arch_cleanup + 0x40 }
address : <0x0081bc34> [ sh + 0x1bbf4 ]
address : <0xffa00ff2> { _evt_system_call + 0x66 }
Modules linked in:
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
SP: [0x00a6dd28] <0x00a6dd28> /* kernel dynamic memory */
FP: (0x00a6dd2c)
Memory from 0x00a6dd20 to 00a6e000
00a6dd20: 00a6dd28 <00007c38>[00004e92](00a6dd50)<00011f0c>
0018de1c 0015a9a0 0018b3ae
00a6dd40: 0018b3ae 0018b7ae 00a6dd6c 00a6dd6c (00a6ddf4)<00005396>
00a6de1c ffe02014
00a6dd60: 0085926c 0015a46c 00a6de1c 0000003f ffffffff 00b95044 00a6dd8c
0003000b
00a6dd80: 00193b90 00a6c000 00a6ddd4 <00039ca6> 037f9ce0 00000018
00000003 00a6ddcc
00a6dda0: 00000001 00a6ddd4 <00039d98> 00a6ddcc <0003ada6>
00193b54 00a6ddcc 00000000
00a6ddc0: 037f9d18 00000000 00000000 6fb5f700 00000006 00a6de04
<0003af38> 037f9ce0
00a6dde0: 00000004 0085926c 00a6c000 00000000 00078ab2
(00000000)<ffa006d4> 00188000
00a6de00:<00008008> 00000027 00000000 00000000 00a6de30
<0003ada6> 00000480 00000480
00a6de20:<00008008> 00000027 00000000 00a6def8 00000480 00007c32
<0005fbb2> 00000004
00a6de40: 02000002 0080d24d 00800179 0080d206 0080016c 00000000 00000000
00000000
00a6de60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6de80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6dea0: 00000000 00869d14 001f3765 00869d7c 00000000 0005fbac 0000003f
0085926c
00a6dec0: 00a6c000 00860bc8 00038140 00000000 ffffe000 00000000 00000000
00038140
00a6dee0: 00007c40 <0005fbb2> 00000004 00000004 00038140 00000006
<0005fbb2> 00000001
00a6df00: 00000004 00000044 <ffa008dc><ffa0090e> 00000004
ffffe000 00000000 00000000
00a6df20: 00000000 00802256 <00008000> 00000000 00000000 00a6e000
00802256 00802256
00a6df40:<0081bc34><ffa00ff2> 02001004 0080d24d 00800179
0080d206 0080016c 00000000
00a6df60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6df80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
00a6dfa0: 00000000 00000000 00000000 00869d14 001f3765 00869d7c 00869d88
00869e1c
00a6dfc0: 00000000 0085926c 008609c4 00860bc8 0000003f 00000001 00000000
00000000
00a6dfe0: 00000000 00000000 00000044 00000001 00000004 00000004 0000003f
00000006
Return addresses in stack:
address : <0x00007c38> { __mcount + 0x50 }
address : <0x00004e92> { _dump_stack + 0x6 }
frame 1 : <0x00011f0c> { _panic + 0x54 }
frame 2 : <0x00005396> { _trap_c + 0x36a }
address : <0x00039ca6> { _rb_reserve_next_event + 0x36 }
address : <0x00039d98> { _rb_reserve_next_event + 0x128 }
address : <0x0003ada6> { _ring_buffer_unlock_commit + 0xe }
address : <0x0003af38> { _ring_buffer_lock_reserve + 0x5c }
frame 3 : <0xffa006d4> { _exception_to_level5 + 0xa8 }
address : <0x00008008> { _module_arch_cleanup + 0x48 }
address : <0x0003ada6> { _ring_buffer_unlock_commit + 0xe }
address : <0x00008008> { _module_arch_cleanup + 0x48 }
address : <0x0005fbb2> { _sys_dup2 + 0x6 }
address : <0x0005fbb2> { _sys_dup2 + 0x6 }
address : <0x0005fbb2> { _sys_dup2 + 0x6 }
address : <0xffa008dc> { _system_call + 0x68 }
address : <0xffa0090e> { _system_call + 0x9a }
address : <0x00008000> { _module_arch_cleanup + 0x40 }
address : <0x0081bc34> [ sh + 0x1bbf4 ]
address : <0xffa00ff2> { _evt_system_call + 0x66 }
--- Mike Frysinger 2009-08-13 02:25:58
i need to fix the mcount code, i just havent had a chance to do it yet and no
one has been playing with ftrace, so i had no incentive either
--- Yi Li 2009-08-14 05:49:27
I just found the Documentation/trace/ftrace-implementation.txt is outdated.
ftrace_trace_function(frompc, selfpc);
has been changed to:
function_trace_call(selfpc, frompc).
--- Yi Li 2009-08-14 06:02:38
Correct above comment:
ftrace_trace_function(frompc, selfpc);
has been changed to:
ftrace_trace_function(selfpc, frompc).
--- Yi Li 2009-09-02 00:33:12
Mike,
Attached a patch (hack) I used to make ftrace work again on trunk. I used it
for some time and it works as excepted.
-Yi
--- Mike Frysinger 2009-09-16 10:48:45
Yi's latest changes are merged and look good to me
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
mcount.patch text/x-patch 2205 Yi Li
config application/octet-stream 35193 Yi Li