Thread (30 messages) 30 messages, 5 authors, 2012-07-14

Re: [PATCH 6/6] workqueue: reimplement WQ_HIGHPRI using a separate worker_pool

From: Fengguang Wu <hidden>
Date: 2012-07-13 02:08:11
Also in: linux-xfs, lkml

On Thu, Jul 12, 2012 at 02:45:14PM -0700, Tejun Heo wrote:
Hello, again.

On Thu, Jul 12, 2012 at 10:05:19AM -0700, Tejun Heo wrote:
quoted
On Thu, Jul 12, 2012 at 09:06:48PM +0800, Fengguang Wu wrote:
quoted
[    0.207977] WARNING: at /c/kernel-tests/mm/kernel/workqueue.c:1217 worker_enter_idle+0x2b8/0x32b()
[    0.207977] Modules linked in:
[    0.207977] Pid: 1, comm: swapper/0 Not tainted 3.5.0-rc6-08414-g9645fff #15
[    0.207977] Call Trace:
[    0.207977]  [<ffffffff81087189>] ? worker_enter_idle+0x2b8/0x32b
[    0.207977]  [<ffffffff810559d9>] warn_slowpath_common+0xae/0xdb
[    0.207977]  [<ffffffff81055a2e>] warn_slowpath_null+0x28/0x31
[    0.207977]  [<ffffffff81087189>] worker_enter_idle+0x2b8/0x32b
[    0.207977]  [<ffffffff81087222>] start_worker+0x26/0x42
[    0.207977]  [<ffffffff81c8b261>] init_workqueues+0x2d2/0x59a
[    0.207977]  [<ffffffff81c8af8f>] ? usermodehelper_init+0x8a/0x8a
[    0.207977]  [<ffffffff81000284>] do_one_initcall+0xce/0x272
[    0.207977]  [<ffffffff81c6f650>] kernel_init+0x12e/0x3c1
[    0.207977]  [<ffffffff814b9b74>] kernel_thread_helper+0x4/0x10
[    0.207977]  [<ffffffff814b80b0>] ? retint_restore_args+0x13/0x13
[    0.207977]  [<ffffffff81c6f522>] ? start_kernel+0x737/0x737
[    0.207977]  [<ffffffff814b9b70>] ? gs_change+0x13/0x13
Yeah, I forgot to flip the WARN_ON_ONCE() condition so that it checks
nr_running before looking at pool->nr_running.  The warning is
spurious.  Will post fix soon.
I was wrong and am now dazed and confused.  That's from
init_workqueues() where only cpu0 is running.  How the hell did
nr_running manage to become non-zero at that point?  Can you please
apply the following patch and report the boot log?  Thank you.
Tejun, here is the data I got:

[    0.165669] Performance Events: unsupported Netburst CPU model 6 no PMU driver, software events only.
[    0.167001] XXX cpu=0 gcwq=ffff88000dc0cfc0 base=ffff88000dc11e80
[    0.167989] XXX cpu=0 nr_running=0 @ ffff88000dc11e80
[    0.168988] XXX cpu=0 nr_running=0 @ ffff88000dc11e88
[    0.169988] XXX cpu=1 gcwq=ffff88000dd0cfc0 base=ffff88000dd11e80
[    0.170988] XXX cpu=1 nr_running=0 @ ffff88000dd11e80
[    0.171987] XXX cpu=1 nr_running=0 @ ffff88000dd11e88
[    0.172988] XXX cpu=8 nr_running=0 @ ffffffff81d7c430
[    0.173987] XXX cpu=8 nr_running=12 @ ffffffff81d7c438
[    0.175416] ------------[ cut here ]------------
[    0.175981] WARNING: at /c/wfg/linux/kernel/workqueue.c:1220 worker_enter_idle+0x2b8/0x32b()
[    0.175981] Modules linked in:
[    0.175981] Pid: 1, comm: swapper/0 Not tainted 3.5.0-rc6-bisect-next-20120712-dirty #102
[    0.175981] Call Trace:
[    0.175981]  [<ffffffff81087455>] ? worker_enter_idle+0x2b8/0x32b
[    0.175981]  [<ffffffff810559d1>] warn_slowpath_common+0xae/0xdb
[    0.175981]  [<ffffffff81055a26>] warn_slowpath_null+0x28/0x31
[    0.175981]  [<ffffffff81087455>] worker_enter_idle+0x2b8/0x32b
[    0.175981]  [<ffffffff810874ee>] start_worker+0x26/0x42
[    0.175981]  [<ffffffff81c7dc4d>] init_workqueues+0x370/0x638
[    0.175981]  [<ffffffff81c7d8dd>] ? usermodehelper_init+0x8a/0x8a
[    0.175981]  [<ffffffff81000284>] do_one_initcall+0xce/0x272
[    0.175981]  [<ffffffff81c62652>] kernel_init+0x12e/0x3c1
[    0.175981]  [<ffffffff814b6e74>] kernel_thread_helper+0x4/0x10
[    0.175981]  [<ffffffff814b53b0>] ? retint_restore_args+0x13/0x13
[    0.175981]  [<ffffffff81c62524>] ? start_kernel+0x739/0x739
[    0.175981]  [<ffffffff814b6e70>] ? gs_change+0x13/0x13
[    0.175981] ---[ end trace c22d98677c4d3e37 ]---
[    0.178091] Testing tracer nop: PASSED

The attached dmesg is not complete because, once get the oops message,
my script will kill the kvm to save time.

Thanks,
Fengguang

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help