Steven Rostedt
e59494f441
ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)
On Wed, 16 Jul 2008, Vegard Nossum wrote:
> When booting 4d3702b6, I got this huge thing:
>
> Testing tracer wakeup: <4>------------[ cut here ]------------
> WARNING: at kernel/lockdep.c:2731 check_flags+0x123/0x160()
> Modules linked in:
> Pid: 1, comm: swapper Not tainted 2.6.26-crashing-02127-g4d3702b6 #30
> [<c015c349>] warn_on_slowpath+0x59/0xb0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c012d800>] ? native_read_tsc+0x0/0x20
> [<c0158de2>] ? sub_preempt_count+0x12/0xf0
> [<c01814eb>] ? trace_hardirqs_off+0xb/0x10
> [<c0182fbc>] ? __lock_acquire+0x2cc/0x1120
> [<c01814eb>] ? trace_hardirqs_off+0xb/0x10
> [<c01276af>] ? mcount_call+0x5/0xa
> [<c017ff53>] check_flags+0x123/0x160
> [<c0183e61>] lock_acquire+0x51/0xd0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c0613d4f>] _spin_lock_irqsave+0x5f/0xa0
> [<c01a8d45>] ? ftrace_record_ip+0xf5/0x220
> [<c02d5413>] ? debug_locks_off+0x3/0x50
> [<c01a8d45>] ftrace_record_ip+0xf5/0x220
> [<c01276af>] mcount_call+0x5/0xa
> [<c02d5418>] ? debug_locks_off+0x8/0x50
> [<c017ff27>] check_flags+0xf7/0x160
> [<c0183e61>] lock_acquire+0x51/0xd0
> [<c01276c6>] ? ftrace_call+0x5/0x8
> [<c0613d4f>] _spin_lock_irqsave+0x5f/0xa0
> [<c01affcd>] ? wakeup_tracer_call+0x6d/0xf0
> [<c01625e2>] ? _local_bh_enable+0x62/0xb0
> [<c0158ddd>] ? sub_preempt_count+0xd/0xf0
> [<c01affcd>] wakeup_tracer_call+0x6d/0xf0
> [<c0162724>] ? __do_softirq+0xf4/0x110
> [<c01afff1>] ? wakeup_tracer_call+0x91/0xf0
> [<c01276c6>] ftrace_call+0x5/0x8
> [<c0162724>] ? __do_softirq+0xf4/0x110
> [<c0158de2>] ? sub_preempt_count+0x12/0xf0
> [<c01625e2>] _local_bh_enable+0x62/0xb0
> [<c0162724>] __do_softirq+0xf4/0x110
> [<c01627ed>] do_softirq+0xad/0xb0
> [<c0162a15>] irq_exit+0xa5/0xb0
> [<c013a506>] smp_apic_timer_interrupt+0x66/0xa0
> [<c02d3fac>] ? trace_hardirqs_off_thunk+0xc/0x10
> [<c0127449>] apic_timer_interrupt+0x2d/0x34
> [<c018007b>] ? find_usage_backwards+0xb/0xf0
> [<c0613a09>] ? _spin_unlock_irqrestore+0x69/0x80
> [<c014ef32>] tg_shares_up+0x132/0x1d0
> [<c014d2a2>] walk_tg_tree+0x62/0xa0
> [<c014ee00>] ? tg_shares_up+0x0/0x1d0
> [<c014a860>] ? tg_nop+0x0/0x10
> [<c015499d>] update_shares+0x5d/0x80
> [<c0154a2f>] try_to_wake_up+0x6f/0x280
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c0154c94>] wake_up_process+0x14/0x20
> [<c01725f6>] kthread_create+0x66/0xb0
> [<c0195400>] ? do_stop+0x0/0x200
> [<c0195320>] ? __stop_machine_run+0x30/0xb0
> [<c0195340>] __stop_machine_run+0x50/0xb0
> [<c0195400>] ? do_stop+0x0/0x200
> [<c01a8b90>] ? __ftrace_modify_code+0x0/0xc0
> [<c061242d>] ? mutex_unlock+0xd/0x10
> [<c01953cc>] stop_machine_run+0x2c/0x60
> [<c01a94d3>] unregister_ftrace_function+0x103/0x180
> [<c01b0517>] stop_wakeup_tracer+0x17/0x60
> [<c01b056f>] wakeup_tracer_ctrl_update+0xf/0x30
> [<c01ab8d5>] trace_selftest_startup_wakeup+0xb5/0x130
> [<c01ab950>] ? trace_wakeup_test_thread+0x0/0x70
> [<c01aadf5>] register_tracer+0x135/0x1b0
> [<c0877d02>] init_wakeup_tracer+0xd/0xf
> [<c085d437>] kernel_init+0x1a9/0x2ce
> [<c061397b>] ? _spin_unlock_irq+0x3b/0x60
> [<c02d3f9c>] ? trace_hardirqs_on_thunk+0xc/0x10
> [<c0877cf5>] ? init_wakeup_tracer+0x0/0xf
> [<c0182646>] ? trace_hardirqs_on_caller+0x126/0x180
> [<c02d3f9c>] ? trace_hardirqs_on_thunk+0xc/0x10
> [<c01269c8>] ? restore_nocheck_notrace+0x0/0xe
> [<c085d28e>] ? kernel_init+0x0/0x2ce
> [<c085d28e>] ? kernel_init+0x0/0x2ce
> [<c01275fb>] kernel_thread_helper+0x7/0x10
> =======================
> ---[ end trace a7919e7f17c0a725 ]---
> irq event stamp: 579530
> hardirqs last enabled at (579528): [<c01826ab>] trace_hardirqs_on+0xb/0x10
> hardirqs last disabled at (579529): [<c01814eb>] trace_hardirqs_off+0xb/0x10
> softirqs last enabled at (579530): [<c0162724>] __do_softirq+0xf4/0x110
> softirqs last disabled at (579517): [<c01627ed>] do_softirq+0xad/0xb0
> irq event stamp: 579530
> hardirqs last enabled at (579528): [<c01826ab>] trace_hardirqs_on+0xb/0x10
> hardirqs last disabled at (579529): [<c01814eb>] trace_hardirqs_off+0xb/0x10
> softirqs last enabled at (579530): [<c0162724>] __do_softirq+0xf4/0x110
> softirqs last disabled at (579517): [<c01627ed>] do_softirq+0xad/0xb0
> PASSED
>
> Incidentally, the kernel also hung while I was typing in this report.
Things get weird between lockdep and ftrace because ftrace can be called
within lockdep internal code (via the mcount pointer) and lockdep can be
called with ftrace (via spin_locks).
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Tested-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
2008-07-18 13:47:15 +02:00 |
| .. |
|
irq
|
genirq: remove extraneous checks in manage.c
|
2008-07-10 07:01:13 +02:00 |
|
power
|
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
|
2008-07-16 17:25:46 -07:00 |
|
time
|
Merge branch 'generic-ipi' into generic-ipi-for-linus
|
2008-07-15 21:55:59 +02:00 |
|
trace
|
ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)
|
2008-07-18 13:47:15 +02:00 |
|
.gitignore
|
Update kernel/.gitignore with new auto-generated files
|
2008-02-09 23:27:01 -08:00 |
|
acct.c
|
bsd_acct: using task_struct->tgid is not right in pid-namespaces
|
2008-03-24 19:22:20 -07:00 |
|
audit.c
|
[PATCH] remove useless argument type in audit_filter_user()
|
2008-06-24 23:36:35 -04:00 |
|
audit.h
|
[PATCH 1/2] audit: move extern declarations to audit.h
|
2008-04-28 06:28:04 -04:00 |
|
audit_tree.c
|
[PATCH] list_for_each_rcu must die: audit
|
2008-05-17 03:30:23 -04:00 |
|
auditfilter.c
|
[PATCH] remove useless argument type in audit_filter_user()
|
2008-06-24 23:36:35 -04:00 |
|
auditsc.c
|
[PATCH] new predicate - AUDIT_FILETYPE
|
2008-04-28 06:28:37 -04:00 |
|
backtracetest.c
|
backtrace: replace timer with tasklet + completions
|
2008-06-27 18:09:16 +02:00 |
|
bounds.c
|
Add kbuild.h that contains common definitions for kbuild users
|
2008-04-29 08:06:29 -07:00 |
|
capability.c
|
security: filesystem capabilities: fix fragile setuid fixup code
|
2008-07-04 10:40:08 -07:00 |
|
cgroup.c
|
cgroups: remove node_ prefix_from ns subsystem
|
2008-05-24 09:56:14 -07:00 |
|
cgroup_debug.c
|
CGroup API files: move "releasable" to cgroup_debug subsystem
|
2008-04-29 08:06:09 -07:00 |
|
compat.c
|
ntp: support for TAI
|
2008-05-01 08:03:59 -07:00 |
|
configs.c
|
kernel: use non-racy method for proc entries creation
|
2008-04-29 08:06:22 -07:00 |
|
cpu.c
|
force offline the processor during hot-removal
|
2008-07-16 23:27:01 +02:00 |
|
cpuset.c
|
Merge commit 'v2.6.26' into sched/devel
|
2008-07-14 12:19:19 +02:00 |
|
delayacct.c
|
|
|
|
dma.c
|
kernel: use non-racy method for proc entries creation
|
2008-04-29 08:06:22 -07:00 |
|
exec_domain.c
|
|
|
|
exit.c
|
fix dangling zombie when new parent ignores children
|
2008-07-16 18:02:34 -07:00 |
|
extable.c
|
|
|
|
fork.c
|
ptrace children revamp
|
2008-07-16 18:02:33 -07:00 |
|
futex.c
|
futexes: fix fault handling in futex_lock_pi
|
2008-06-23 13:31:15 +02:00 |
|
futex_compat.c
|
futex_compat __user annotation
|
2008-03-30 14:18:41 -07:00 |
|
hrtimer.c
|
Merge branch 'generic-ipi' into generic-ipi-for-linus
|
2008-07-15 21:55:59 +02:00 |
|
itimer.c
|
|
|
|
kallsyms.c
|
kernel: use non-racy method for proc entries creation
|
2008-04-29 08:06:22 -07:00 |
|
Kconfig.hz
|
|
|
|
Kconfig.preempt
|
rcu: move PREEMPT_RCU config option back under PREEMPT
|
2008-03-10 18:01:20 -07:00 |
|
kexec.c
|
kexec: make extended crashkernel= syntax less confusing
|
2008-05-01 08:04:00 -07:00 |
|
kfifo.c
|
|
|
|
kgdb.c
|
kgdb: sparse fix
|
2008-06-24 10:52:55 -05:00 |
|
kmod.c
|
[PATCH] split linux/file.h
|
2008-05-01 13:08:16 -04:00 |
|
kprobes.c
|
kernel/kprobes.c: Made kprobe_blacklist static.
|
2008-07-10 10:13:51 -07:00 |
|
ksysfs.c
|
|
|
|
kthread.c
|
Freezer: Introduce PF_FREEZER_NOSIG
|
2008-07-16 23:27:03 +02:00 |
|
latencytop.c
|
kernel: use non-racy method for proc entries creation
|
2008-04-29 08:06:22 -07:00 |
|
lockdep.c
|
Merge branch 'core/locking' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2008-07-14 14:55:13 -07:00 |
|
lockdep_internals.h
|
lockdep: add lock_class information to lock_chain and output it
|
2008-06-24 01:28:20 +02:00 |
|
lockdep_proc.c
|
lockdep: add lock_class information to lock_chain and output it
|
2008-06-24 01:28:20 +02:00 |
|
Makefile
|
ftrace: do not trace scheduler functions
|
2008-07-17 17:40:11 +02:00 |
|
marker.c
|
Markers - remove extra format argument
|
2008-05-23 22:25:27 +02:00 |
|
module.c
|
modules: proper cleanup of kobject without CONFIG_SYSFS
|
2008-05-23 13:09:33 +10:00 |
|
mutex-debug.c
|
mutex-debug: check mutex magic before owner
|
2008-05-16 16:53:35 +02:00 |
|
mutex-debug.h
|
|
|
|
mutex.c
|
__mutex_lock_common: use signal_pending_state()
|
2008-06-10 11:45:09 +02:00 |
|
mutex.h
|
|
|
|
notifier.c
|
ipc: re-enable msgmni automatic recomputing msgmni if set to negative
|
2008-04-29 08:06:13 -07:00 |
|
ns_cgroup.c
|
cgroups: kernel/ns_cgroup.c should #include <linux/nsproxy.h>
|
2008-04-29 08:06:07 -07:00 |
|
nsproxy.c
|
ipc: sysvsem: refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC)
|
2008-04-29 08:06:14 -07:00 |
|
panic.c
|
Taint kernel after WARN_ON(condition)
|
2008-04-29 08:05:59 -07:00 |
|
params.c
|
Add new string functions strict_strto* and convert kernel params to use them
|
2008-02-08 09:22:41 -08:00 |
|
pid.c
|
rcu: split list.h and move rcu-protected lists into rculist.h
|
2008-05-19 10:01:37 +02:00 |
|
pid_namespace.c
|
pidns: make pid->level and pid_ns->level unsigned
|
2008-04-30 08:29:49 -07:00 |
|
pm_qos_params.c
|
pm_qos_params: BKL pushdown
|
2008-07-02 15:06:24 -06:00 |
|
posix-cpu-timers.c
|
posix-timers: print RT watchdog message
|
2008-05-24 18:49:22 +02:00 |
|
posix-timers.c
|
signals: join send_sigqueue() with send_group_sigqueue()
|
2008-04-30 08:29:36 -07:00 |
|
printk.c
|
Merge branch 'core/printk' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2008-07-14 15:27:43 -07:00 |
|
profile.c
|
on_each_cpu(): kill unused 'retry' parameter
|
2008-06-26 11:24:38 +02:00 |
|
ptrace.c
|
ptrace children revamp
|
2008-07-16 18:02:33 -07:00 |
|
rcuclassic.c
|
Merge branch 'core/rcu' into core/rcu-for-linus
|
2008-07-15 21:10:12 +02:00 |
|
rcupdate.c
|
Merge branch 'generic-ipi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2008-07-15 14:12:03 -07:00 |
|
rcupreempt.c
|
Merge branch 'core/rcu' into core/rcu-for-linus
|
2008-07-15 21:10:12 +02:00 |
|
rcupreempt_trace.c
|
rcu: remove duplicated include in kernel/rcupreempt_trace.c
|
2008-05-19 10:03:39 +02:00 |
|
rcutorture.c
|
rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers)
|
2008-06-26 09:24:33 +02:00 |
|
relay.c
|
splice: fix sendfile() issue with relay
|
2008-05-28 14:49:27 +02:00 |
|
res_counter.c
|
memcgroup: add the max_usage member on the res_counter
|
2008-04-29 08:06:10 -07:00 |
|
resource.c
|
kernel: use non-racy method for proc entries creation
|
2008-04-29 08:06:22 -07:00 |
|
rtmutex-debug.c
|
Don't operate with pid_t in rtmutex tester
|
2008-02-08 09:22:41 -08:00 |
|
rtmutex-debug.h
|
|
|
|
rtmutex-tester.c
|
|
|
|
rtmutex.c
|
hrtimer: more hrtimer_init_sleeper() fallout.
|
2008-02-13 15:45:36 +01:00 |
|
rtmutex.h
|
|
|
|
rtmutex_common.h
|
Don't operate with pid_t in rtmutex tester
|
2008-02-08 09:22:41 -08:00 |
|
rwsem.c
|
|
|
|
sched.c
|
Merge branch 'core/softirq' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
|
2008-07-14 15:28:42 -07:00 |
|
sched_clock.c
|
Merge branch 'sched/clock' into sched/devel
|
2008-07-14 12:19:13 +02:00 |
|
sched_cpupri.c
|
sched: use a 2-d bitmap for searching lowest-pri CPU
|
2008-06-06 15:19:28 +02:00 |
|
sched_cpupri.h
|
sched: fix the cpuprio count really
|
2008-06-06 15:19:44 +02:00 |
|
sched_debug.c
|
sched: add full schedstats to /proc/sched_debug
|
2008-06-27 14:31:31 +02:00 |
|
sched_fair.c
|
sched: add avg-overlap support to RT tasks
|
2008-07-04 12:50:22 +02:00 |
|
sched_features.h
|
sched: bias effective_load() error towards failing wake_affine().
|
2008-06-27 14:31:47 +02:00 |
|
sched_idletask.c
|
sched: make rt_sched_class, idle_sched_class static
|
2008-05-05 23:56:17 +02:00 |
|
sched_rt.c
|
sched: make sched_{rt,fair}.c ifdefs more readable
|
2008-06-27 14:32:05 +02:00 |
|
sched_stats.h
|
sched: fix accounting in task delay accounting & migration
|
2008-07-04 12:50:23 +02:00 |
|
seccomp.c
|
|
|
|
semaphore.c
|
mmiotrace broken in linux-next (8-bit writes only)
|
2008-07-01 10:14:06 +02:00 |
|
signal.c
|
posix timers: discard SI_TIMER signals on exec
|
2008-05-26 10:37:07 -07:00 |
|
smp.c
|
generic ipi function calls: wait on alloc failure fallback
|
2008-07-15 14:12:20 -07:00 |
|
softirq.c
|
Merge branch 'generic-ipi' into generic-ipi-for-linus
|
2008-07-15 21:55:59 +02:00 |
|
softlockup.c
|
softlockup: print a module list on being stuck
|
2008-07-05 08:51:24 +02:00 |
|
spinlock.c
|
ftrace: lockdep notrace annotations
|
2008-05-23 20:39:40 +02:00 |
|
srcu.c
|
|
|
|
stacktrace.c
|
stacktrace: fix modular build, export print_stack_trace and save_stack_trace
|
2008-06-30 09:20:55 +02:00 |
|
stop_machine.c
|
sched: add new API sched_setscheduler_nocheck: add a flag to control access checks
|
2008-06-23 22:57:56 +02:00 |
|
sys.c
|
sys_prctl(): fix return of uninitialized value
|
2008-05-24 09:56:13 -07:00 |
|
sys_ni.c
|
|
|
|
sysctl.c
|
Merge branch 'core/rcu' into core/rcu-for-linus
|
2008-07-15 21:10:12 +02:00 |
|
sysctl_check.c
|
constify tables in kernel/sysctl_check.c
|
2008-02-08 09:22:31 -08:00 |
|
taskstats.c
|
Use find_task_by_vpid in taskstats
|
2008-04-30 08:29:48 -07:00 |
|
test_kprobes.c
|
|
|
|
time.c
|
Make constants in kernel/timeconst.h fixed 64 bits
|
2008-05-02 16:18:42 -07:00 |
|
timeconst.pl
|
Make constants in kernel/timeconst.h fixed 64 bits
|
2008-05-02 16:18:42 -07:00 |
|
timer.c
|
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
|
2008-07-14 16:06:58 -07:00 |
|
tsacct.c
|
|
|
|
uid16.c
|
asmlinkage_protect replaces prevent_tail_call
|
2008-04-10 17:28:26 -07:00 |
|
user.c
|
alloc_uid: cleanup
|
2008-04-30 08:29:53 -07:00 |
|
user_namespace.c
|
eCryptfs: make key module subsystem respect namespaces
|
2008-04-29 08:06:07 -07:00 |
|
utsname.c
|
kernel: explicitly include required header files under kernel/
|
2008-04-29 08:06:04 -07:00 |
|
utsname_sysctl.c
|
|
|
|
wait.c
|
kernel: remove fastcall in kernel/*
|
2008-02-08 09:22:31 -08:00 |
|
workqueue.c
|
Christoph has moved
|
2008-07-04 10:40:04 -07:00 |