git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5ab8026
)
tracing/ftrace: alloc the started cpumask for the trace file
author
Frederic Weisbecker
<fweisbec@gmail.com>
Wed, 1 Apr 2009 20:53:08 +0000
(22:53 +0200)
committer
Ingo Molnar
<mingo@elte.hu>
Tue, 7 Apr 2009 12:02:03 +0000
(14:02 +0200)
Impact: fix a crash while cat trace file
Currently we are using a cpumask to remind each cpu where a
trace occured. It lets us notice the user that a cpu just had
its first trace.
But on latest -tip we have the following crash once we cat the trace
file:
IP: [<
c0270c4a
>] print_trace_fmt+0x45/0xe7
*pde =
00000000
Oops: 0000 [#1] PREEMPT SMP
last sysfs file: /sys/class/net/eth0/carrier
Pid: 3897, comm: cat Not tainted (2.6.29-tip-02825-g0f22972-dirty #81)
EIP: 0060:[<
c0270c4a
>] EFLAGS:
00010297
CPU: 0
EIP is at print_trace_fmt+0x45/0xe7
EAX:
00000000
EBX:
00000000
ECX:
c12d9e98
EDX:
ccdb7010
ESI:
d31f4000
EDI:
00322401
EBP:
d31f3f10
ESP:
d31f3efc
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process cat (pid: 3897, ti=
d31f2000
task=
d3b3cf20
task.ti=
d31f2000
)
Stack:
d31f4080
ccdb7010
d31f4000
d691fe70
ccdb7010
d31f3f24
c0270e5c
d31f4000
d691fe70
d31f4000
d31f3f34
c02718e8
c12d9e98
d691fe70
d31f3f70
c02bfc33
00001000
09130000
d3b46e00
d691fe98
00000000
00000079
00000001
00000000
Call Trace:
[<
c0270e5c
>] ? print_trace_line+0x170/0x17c
[<
c02718e8
>] ? s_show+0xa7/0xbd
[<
c02bfc33
>] ? seq_read+0x24a/0x327
[<
c02bf9e9
>] ? seq_read+0x0/0x327
[<
c02ab18b
>] ? vfs_read+0x86/0xe1
[<
c02ab289
>] ? sys_read+0x40/0x65
[<
c0202d8f
>] ? sysenter_do_call+0x12/0x3c
Code: 00 00 00 89 45 ec f7 c7 00 20 00 00 89 55 f0 74 4e f6 86 98 10 00 00 02 74 45 8b 86 8c 10 00 00 8b 9e a8 10 00 00 e8 52 f3 ff ff <0f> a3 03 19 c0 85 c0 75 2b 8b 86 8c 10 00 00 8b 9e a8 10 00 00
EIP: [<
c0270c4a
>] print_trace_fmt+0x45/0xe7 SS:ESP 0068:
d31f3efc
CR2:
0000000000000000
---[ end trace
aa9cf38e5ebed9dd
]---
This is because we alloc the iter->started cpumask on tracing_pipe_open but
not on tracing_open.
It hadn't been noticed until now because we need to have ring buffer overruns
to activate the starting of cpu buffer detection.
Also, we need a check to not print the messagge for the first trace on the file.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <
1238619188
-6109-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
No differences found