Re: ARM: nommu: DEBUG_LOCKS_WARN_ON(!depth)
2013/11/25 Axel Lin : > I'm testing on a nommu platform (arm7tdmi SoC). > Using current Linus' tree + out-of-tree patches for this SoC. > I got below hang while executing ls (busybox) after boot. > > / # ls > [ 51.036191] [ cut here ] > [ 51.042242] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:3312 > lock_set_class+0x5c8/0x660() > [ 51.051426] DEBUG_LOCKS_WARN_ON(!depth) > [ 51.055842] CPU: 0 PID: 1 Comm: Not tainted > 3.13.0-rc1-00100-g4b061f7-dirty #1917 > [ 51.065415] [] (unwind_backtrace+0x0/0xe0) from [ ] > (show_stack+0x10/0x14) > [ 51.075781] [ ] (show_stack+0x10/0x14) from [ ] > (warn_slowpath_common+0x58/0x78) > [ 51.086549] [ ] (warn_slowpath_common+0x58/0x78) from > [ ] (warn_slowpath_fmt+0x2c/0x3c) > [ 51.098162] [ ] (warn_slowpath_fmt+0x2c/0x3c) from [<00036d9c>] > (lock_set_class+0x5c8/0x660) > [ 50.934805] [<00036d9c>] (lock_set_class+0x5c8/0x660) from [<000367d4>] > (lock_set_class+0x0/0x660) > [ 50.945255] [<000367d4>] (lock_set_class+0x0/0x660) from [<>] ( > (null)) > [ 50.953242] ---[ end trace 7d1e4eb80001 ]--- > Now test on top of linux-3.13-rc3. I found I can hit this lockdep warning only when CONFIG_PREEMPT_NONE=y 1) With CONFIG_PREEMPT_NONE=y executing ls (busybox) hang with above lockdep warning. 2) With CONFIG_PREEMPT_VOLUNTARY=y: have "[sched_delayed] sched: RT throttling activated" in boot message. executing ls (busybox) hang silently. 3) With CONFIG_PREEMPT=y: executing ls (busybox) successfully and it's ok to execute other binary. all the test with below configs: CONFIG_PREEMPT_COUNT=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_TRACE_IRQFLAGS=y CONFIG_STACKTRACE=y CONFIG_DEBUG_BUGVERBOSE=y -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: ARM: nommu: DEBUG_LOCKS_WARN_ON(!depth)
2013/11/25 Axel Lin axel@ingics.com: I'm testing on a nommu platform (arm7tdmi SoC). Using current Linus' tree + out-of-tree patches for this SoC. I got below hang while executing ls (busybox) after boot. / # ls [ 51.036191] [ cut here ] [ 51.042242] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:3312 lock_set_class+0x5c8/0x660() [ 51.051426] DEBUG_LOCKS_WARN_ON(!depth) [ 51.055842] CPU: 0 PID: 1 Comm: Not tainted 3.13.0-rc1-00100-g4b061f7-dirty #1917 [ 51.065415] [c430] (unwind_backtrace+0x0/0xe0) from [ae58] (show_stack+0x10/0x14) [ 51.075781] [ae58] (show_stack+0x10/0x14) from [f7b0] (warn_slowpath_common+0x58/0x78) [ 51.086549] [f7b0] (warn_slowpath_common+0x58/0x78) from [f814] (warn_slowpath_fmt+0x2c/0x3c) [ 51.098162] [f814] (warn_slowpath_fmt+0x2c/0x3c) from [00036d9c] (lock_set_class+0x5c8/0x660) [ 50.934805] [00036d9c] (lock_set_class+0x5c8/0x660) from [000367d4] (lock_set_class+0x0/0x660) [ 50.945255] [000367d4] (lock_set_class+0x0/0x660) from [] ( (null)) [ 50.953242] ---[ end trace 7d1e4eb80001 ]--- Now test on top of linux-3.13-rc3. I found I can hit this lockdep warning only when CONFIG_PREEMPT_NONE=y 1) With CONFIG_PREEMPT_NONE=y executing ls (busybox) hang with above lockdep warning. 2) With CONFIG_PREEMPT_VOLUNTARY=y: have [sched_delayed] sched: RT throttling activated in boot message. executing ls (busybox) hang silently. 3) With CONFIG_PREEMPT=y: executing ls (busybox) successfully and it's ok to execute other binary. all the test with below configs: CONFIG_PREEMPT_COUNT=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_TRACE_IRQFLAGS=y CONFIG_STACKTRACE=y CONFIG_DEBUG_BUGVERBOSE=y -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
ARM: nommu: DEBUG_LOCKS_WARN_ON(!depth)
I'm testing on a nommu platform (arm7tdmi SoC). Using current Linus' tree + out-of-tree patches for this SoC. I got below hang while executing ls (busybox) after boot. / # ls [ 51.036191] [ cut here ] [ 51.042242] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:3312 lock_set_class+0x5c8/0x660() [ 51.051426] DEBUG_LOCKS_WARN_ON(!depth) [ 51.055842] CPU: 0 PID: 1 Comm: Not tainted 3.13.0-rc1-00100-g4b061f7-dirty #1917 [ 51.065415] [] (unwind_backtrace+0x0/0xe0) from [ ] (show_stack+0x10/0x14) [ 51.075781] [ ] (show_stack+0x10/0x14) from [ ] (warn_slowpath_common+0x58/0x78) [ 51.086549] [ ] (warn_slowpath_common+0x58/0x78) from [ ] (warn_slowpath_fmt+0x2c/0x3c) [ 51.098162] [ ] (warn_slowpath_fmt+0x2c/0x3c) from [<00036d9c>] (lock_set_class+0x5c8/0x660) [ 50.934805] [<00036d9c>] (lock_set_class+0x5c8/0x660) from [<000367d4>] (lock_set_class+0x0/0x660) [ 50.945255] [<000367d4>] (lock_set_class+0x0/0x660) from [<>] ( (null)) [ 50.953242] ---[ end trace 7d1e4eb80001 ]--- BTW, I also hit below hangup once a few days ago (just before 3.13-rc1 release). below is my timers config: # # Timers subsystem # CONFIG_HZ_PERIODIC=y # CONFIG_NO_HZ_IDLE is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set / # ls /bin [ 81.272231] BUG: scheduling while atomic: ls/33/0x0037a001 [ 81.284450] 2 locks held by ls/33: [ 81.292221] #0: [ 81.292221] #0: ( (>i_mutex_dir_key>i_mutex_dir_key){+.+.+.}){+.+.+.}[ 81.304370] BUG: recent printk recursion! [ 81.304370] BUG: recent printk recursion! , at: , at: [<0006c9c8>] lookup_slow+0x30/0xa0 [<0006c9c8>] lookup_slow+0x30/0xa0 [ 81.323810] #1: [ 81.323810] #1: ( (>s_type->i_lock_key>s_type->i_lock_key#13#13){+.+...}){+.+...}, at: , at: [<000764cc>] d_instantia8 [<000764cc>] d_instantiate+0x28/0x48 [ 81.345069] irq event stamp: 3753 [ 81.352717] hardirqs last enabled at (3753): [ 81.352717] hardirqs last enabled at (3753): [<002943dc>] _raw_spin_unlock_irqrestore+0x3c/0x5c [<002943dc>] _raw_spin_unlock_irqrestore+0x3c/0x5c [ 81.372183] hardirqs last disabled at (3752): [ 81.372183] hardirqs last disabled at (3752): [<00294254>] _raw_spin_lock_irqsave+0x1c/0x68 [<00294254>] _raw_spin_lock_irqsave+0x1c/0x68 [ 81.216282] softirqs last enabled at (3712): [ 81.216282] softirqs last enabled at (3712): [<000127ec>] __do_softirq+0x190/0x20c [<000127ec>] __do_softirq+0x190/0x20c [ 81.233554] softirqs last disabled at (3705): [ 81.233554] softirqs last disabled at (3705): [<00012c1c>] irq_exit+0x90/0xb8 [<00012c1c>] irq_exit+0x90/0xb8 [ 81.250354] CPU: 0 PID: 0 Comm: ���z Tainted: GW 3.12.0-11171-g6adc047-dirty #1911 [ 81.270570] [ ] (unwind_backtrace+0x0/0xe0) from [ ] (show_stack+0x10/0x14) [ 81.290277] [ ] (show_stack+0x10/0x14) from [<0028dd8c>] (__schedule_bug+0x5c/0x74) [ 81.309935] [<0028dd8c>] (__schedule_bug+0x5c/0x74) from [<00290c00>] (__schedule+0x58/0x38c) [ 81.329818] [<00290c00>] (__schedule+0x58/0x38c) from [<002908f4>] (do_nanosleep+0x78/0xd0) [ 81.349258] [<002908f4>] (do_nanosleep+0x78/0xd0) from [<00029418>] (hrtimer_nanosleep+0x88/0x10c) [ 81.369874] [<00029418>] (hrtimer_nanosleep+0x88/0x10c) from [<00025680>] (common_nsleep+0x0/0x20) Thanks for any comments and advices. Regards, Axel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
ARM: nommu: DEBUG_LOCKS_WARN_ON(!depth)
I'm testing on a nommu platform (arm7tdmi SoC). Using current Linus' tree + out-of-tree patches for this SoC. I got below hang while executing ls (busybox) after boot. / # ls [ 51.036191] [ cut here ] [ 51.042242] WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:3312 lock_set_class+0x5c8/0x660() [ 51.051426] DEBUG_LOCKS_WARN_ON(!depth) [ 51.055842] CPU: 0 PID: 1 Comm: Not tainted 3.13.0-rc1-00100-g4b061f7-dirty #1917 [ 51.065415] [c430] (unwind_backtrace+0x0/0xe0) from [ae58] (show_stack+0x10/0x14) [ 51.075781] [ae58] (show_stack+0x10/0x14) from [f7b0] (warn_slowpath_common+0x58/0x78) [ 51.086549] [f7b0] (warn_slowpath_common+0x58/0x78) from [f814] (warn_slowpath_fmt+0x2c/0x3c) [ 51.098162] [f814] (warn_slowpath_fmt+0x2c/0x3c) from [00036d9c] (lock_set_class+0x5c8/0x660) [ 50.934805] [00036d9c] (lock_set_class+0x5c8/0x660) from [000367d4] (lock_set_class+0x0/0x660) [ 50.945255] [000367d4] (lock_set_class+0x0/0x660) from [] ( (null)) [ 50.953242] ---[ end trace 7d1e4eb80001 ]--- BTW, I also hit below hangup once a few days ago (just before 3.13-rc1 release). below is my timers config: # # Timers subsystem # CONFIG_HZ_PERIODIC=y # CONFIG_NO_HZ_IDLE is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set / # ls /bin [ 81.272231] BUG: scheduling while atomic: ls/33/0x0037a001 [ 81.284450] 2 locks held by ls/33: [ 81.292221] #0: [ 81.292221] #0: ( (type-i_mutex_dir_keytype-i_mutex_dir_key){+.+.+.}){+.+.+.}[ 81.304370] BUG: recent printk recursion! [ 81.304370] BUG: recent printk recursion! , at: , at: [0006c9c8] lookup_slow+0x30/0xa0 [0006c9c8] lookup_slow+0x30/0xa0 [ 81.323810] #1: [ 81.323810] #1: ( (sb-s_type-i_lock_keysb-s_type-i_lock_key#13#13){+.+...}){+.+...}, at: , at: [000764cc] d_instantia8 [000764cc] d_instantiate+0x28/0x48 [ 81.345069] irq event stamp: 3753 [ 81.352717] hardirqs last enabled at (3753): [ 81.352717] hardirqs last enabled at (3753): [002943dc] _raw_spin_unlock_irqrestore+0x3c/0x5c [002943dc] _raw_spin_unlock_irqrestore+0x3c/0x5c [ 81.372183] hardirqs last disabled at (3752): [ 81.372183] hardirqs last disabled at (3752): [00294254] _raw_spin_lock_irqsave+0x1c/0x68 [00294254] _raw_spin_lock_irqsave+0x1c/0x68 [ 81.216282] softirqs last enabled at (3712): [ 81.216282] softirqs last enabled at (3712): [000127ec] __do_softirq+0x190/0x20c [000127ec] __do_softirq+0x190/0x20c [ 81.233554] softirqs last disabled at (3705): [ 81.233554] softirqs last disabled at (3705): [00012c1c] irq_exit+0x90/0xb8 [00012c1c] irq_exit+0x90/0xb8 [ 81.250354] CPU: 0 PID: 0 Comm: ���z Tainted: GW 3.12.0-11171-g6adc047-dirty #1911 [ 81.270570] [c430] (unwind_backtrace+0x0/0xe0) from [ae58] (show_stack+0x10/0x14) [ 81.290277] [ae58] (show_stack+0x10/0x14) from [0028dd8c] (__schedule_bug+0x5c/0x74) [ 81.309935] [0028dd8c] (__schedule_bug+0x5c/0x74) from [00290c00] (__schedule+0x58/0x38c) [ 81.329818] [00290c00] (__schedule+0x58/0x38c) from [002908f4] (do_nanosleep+0x78/0xd0) [ 81.349258] [002908f4] (do_nanosleep+0x78/0xd0) from [00029418] (hrtimer_nanosleep+0x88/0x10c) [ 81.369874] [00029418] (hrtimer_nanosleep+0x88/0x10c) from [00025680] (common_nsleep+0x0/0x20) Thanks for any comments and advices. Regards, Axel -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/