lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120711123616.GA27086@localhost>
Date:	Wed, 11 Jul 2012 20:36:16 +0800
From:	Fengguang Wu <wfg@...ux.intel.com>
To:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc:	Josh Triplett <josh@...htriplett.org>,
	Lai Jiangshan <laijs@...fujitsu.com>,
	LKML <linux-kernel@...r.kernel.org>,
	Steven Rostedt <rostedt@...dmis.org>
Subject: Re: rcu_dyntick and suspicious RCU usage

On Wed, Jul 11, 2012 at 12:49:24AM -0700, Paul E. McKenney wrote:
> On Tue, Jul 10, 2012 at 12:47:00PM +0800, Fengguang Wu wrote:
> > Hi Paul,
> > 
> > Fortunately this bug is bisectable and the first bad commit is:
> > 
> >         commit 9b2e4f1880b789be1f24f9684f7a54b90310b5c0
> >         Author: Paul E. McKenney <paul.mckenney@...aro.org>
> >         Date:   Fri Sep 30 12:10:22 2011 -0700
> > 
> >             rcu: Track idleness independent of idle tasks
> 
> OK, there is a problem in TINY_RCU's handling of dyntick-idle: it
> traces while in idle.  The confusion on my part was that in TREE_RCU,
> the nesting and dyntick-idle indication are different, while in
> TINY_RCU they are one and the same.
> 
> Does the following patch help?

Not exactly, but the error message is now changed to:

[    2.320411] Testing tracer wakeup: [    2.632565] ftrace-test (15) used greatest stack depth: 7284 bytes left
PASSED
[    2.634231] Testing tracer wakeup_rt: [    2.716312] ------------[ cut here ]------------
[    2.717208] WARNING: at /c/wfg/linux/kernel/rcutiny.c:92 rcu_idle_enter+0xf0/0x244()
[    2.718549] Hardware name: Bochs

[    2.719136] Modules linked in:
[    2.719754] 
[    2.720022] Pid: 0, comm: swapper Not tainted 3.5.0-rc6+ #55
[    2.720290] Call Trace:
[    2.720290]  [<c103704c>] warn_slowpath_common+0xfc/0x13b
[    2.720290]  [<c11057f5>] ? rcu_idle_enter+0xf0/0x244
[    2.720290]  [<c11057f5>] ? rcu_idle_enter+0xf0/0x244
[    2.720290]  [<c10370c9>] warn_slowpath_null+0x3e/0x4e
[    2.720290]  [<c11057f5>] rcu_idle_enter+0xf0/0x244
[    2.720290]  [<c100fbdb>] cpu_idle+0x159/0x220
[    2.720290]  [<c141615f>] rest_init+0x2db/0x2ef
[    2.720290]  [<c1415e84>] ? reciprocal_value+0x64/0x64
[    2.720290]  [<c171d456>] start_kernel+0x8eb/0x8ff
[    2.720290]  [<c171c62f>] ? repair_env_string+0xd3/0xd3
[    2.720290]  [<c171c342>] i386_start_kernel+0xf8/0x10b
[    2.720290] ---[ end trace 44593438a59a9533 ]---
[    2.732372] ------------[ cut here ]------------
[    2.733235] WARNING: at /c/wfg/linux/kernel/rcutiny.c:113 rcu_irq_exit+0x100/0x217()
[    2.734613] Hardware name: Bochs
[    2.735204] Modules linked in:
[    2.735817] Pid: 0, comm: swapper Tainted: G        W    3.5.0-rc6+ #55
[    2.736366] Call Trace:
[    2.736366]  [<c103704c>] warn_slowpath_common+0xfc/0x13b
[    2.736366]  [<c11055ee>] ? rcu_irq_exit+0x100/0x217
[    2.736366]  [<c11055ee>] ? rcu_irq_exit+0x100/0x217
[    2.736366]  [<c10370c9>] warn_slowpath_null+0x3e/0x4e
[    2.736366]  [<c11055ee>] rcu_irq_exit+0x100/0x217
[    2.736366]  [<c104697f>] irq_exit+0x117/0x14d
[    2.736366]  [<c1005d31>] do_IRQ+0xe5/0x106
[    2.736366]  [<c10b9fea>] ? trace_hardirqs_off_caller+0x97/0x167
[    2.736366]  [<c1045eb2>] ? local_bh_enable+0x3c/0x3c
[    2.736366]  [<c1437575>] common_interrupt+0x35/0x3c
[    2.736366]  [<c1045eb2>] ? local_bh_enable+0x3c/0x3c
[    2.736366]  [<c104007b>] ? do_wait+0x453/0x4f5
[    2.736366]  [<c104007b>] ? do_wait+0x453/0x4f5
[    2.736366]  [<c10b00e0>] ? do_timer+0xc1e/0xc77
[    2.736366]  [<c1044284>] ? arch_local_irq_enable+0x13/0x27
[    2.736366]  [<c1045f4f>] __do_softirq+0x9d/0x4fd
[    2.736366]  [<c1045eb2>] ? local_bh_enable+0x3c/0x3c
[    2.736366]  <IRQ>  [<c10468fa>] ? irq_exit+0x92/0x14d
[    2.736366]  [<c1005d31>] ? do_IRQ+0xe5/0x106
[    2.736366]  [<c10b9fea>] ? trace_hardirqs_off_caller+0x97/0x167
[    2.736366]  [<c1437575>] ? common_interrupt+0x35/0x3c
[    2.736366]  [<c10b00e0>] ? do_timer+0xc1e/0xc77
[    2.736366]  [<c1025c7b>] ? native_safe_halt+0x13/0x23
[    2.736366]  [<c100e52a>] ? default_idle+0xac/0x14a
[    2.736366]  [<c100fbef>] ? cpu_idle+0x16d/0x220
[    2.736366]  [<c141615f>] ? rest_init+0x2db/0x2ef
[    2.736366]  [<c1415e84>] ? reciprocal_value+0x64/0x64
[    2.736366]  [<c171d456>] ? start_kernel+0x8eb/0x8ff
[    2.736366]  [<c171c62f>] ? repair_env_string+0xd3/0xd3
[    2.736366]  [<c171c342>] ? i386_start_kernel+0xf8/0x10b
[    2.736366] ---[ end trace 44593438a59a9534 ]---
[    2.765933] ------------[ cut here ]------------
[    2.766811] WARNING: at /c/wfg/linux/kernel/rcutiny.c:149 rcu_idle_exit+0xfa/0x266()
[    2.768173] Hardware name: Bochs
[    2.768927] Modules linked in:
[    2.769514] Pid: 0, comm: swapper Tainted: G        W    3.5.0-rc6+ #55
[    2.769920] Call Trace:
[    2.769920]  [<c103704c>] warn_slowpath_common+0xfc/0x13b
[    2.769920]  [<c11033be>] ? rcu_idle_exit+0xfa/0x266
[    2.769920]  [<c11033be>] ? rcu_idle_exit+0xfa/0x266
[    2.769920]  [<c10370c9>] warn_slowpath_null+0x3e/0x4e
[    2.769920]  [<c11033be>] rcu_idle_exit+0xfa/0x266
[    2.769920]  [<c100fc02>] cpu_idle+0x180/0x220
[    2.769920]  [<c141615f>] rest_init+0x2db/0x2ef
[    2.769920]  [<c1415e84>] ? reciprocal_value+0x64/0x64
[    2.769920]  [<c171d456>] start_kernel+0x8eb/0x8ff
[    2.769920]  [<c171c62f>] ? repair_env_string+0xd3/0xd3
[    2.769920]  [<c171c342>] i386_start_kernel+0xf8/0x10b
[    2.769920] ---[ end trace 44593438a59a9535 ]---
[    2.988523] PASSED

The test is carried out on top of 2.5-rc6. The kvm command line is:

        kvm -cpu kvm64 -enable-kvm \
                -kernel $vmlinuz \
                -append "$APPEND BOOT_IMAGE=$BOOT_IMAGE" \
                $initrd \
                -m $mem \
                -smp 2 \
                -net nic,vlan=0,macaddr=$mac,model=e1000  \
                -net user,vlan=0,hostfwd=tcp::$port-:22 \
                -boot order=nc \
                -no-reboot \
                -watchdog i6300esb \
                $(qemu_drives) \
                -pidfile $pidfile \
                -serial file:$dmesg \
                $(test "$DISPLAY" = ":0" || echo -daemonize -nographic -monitor null)

Thanks,
Fengguang

View attachment "dmesg-kvm_bisect-waimea-24095-2012-07-11-20-29-10" of type "text/plain" (41993 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ