Re: WARNING: at kernel/workqueue.c [was: mmotm 2011-01-06-15-41 uploaded]

From: Hillf Danton
Date: Tue Jan 11 2011 - 20:34:45 EST


On Tue, Jan 11, 2011 at 10:32 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> On Mon, Jan 10, 2011 at 03:36:09PM -0800, Tony Luck wrote:
>> > Here it is, too.
>> > mmotm-01-06
>>
>> Also in today's linux-next (tag: next-20110110) on ia64:
>>
>>
>> ------------[ cut here ]------------
>> WARNING: at kernel/workqueue.c:1202 worker_enter_idle+0x3f0/0x4a0()
>> Hardware name: server rx2620
>> Modules linked in:
>>
>> Call Trace:
>> Â[<a000000100014cb0>] show_stack+0x50/0xa0
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7c30 bsp=e0000040600d0dd0
>> Â[<a000000100bcaa20>] dump_stack+0x30/0x50
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0db8
>> Â[<a000000100082260>] warn_slowpath_common+0xc0/0x100
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0d78
>> Â[<a0000001000822e0>] warn_slowpath_null+0x40/0x60
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0d50
>> Â[<a0000001000b0830>] worker_enter_idle+0x3f0/0x4a0
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0d28
>> Â[<a0000001000b2c80>] worker_thread+0x8c0/0x980
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0c28
>> Â[<a0000001000c08c0>] kthread+0x120/0x160
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e00 bsp=e0000040600d0be8
>> Â[<a000000100012ef0>] kernel_thread_helper+0x30/0x60
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e30 bsp=e0000040600d0bc0
>> Â[<a00000010000a0c0>] start_kernel_thread+0x20/0x40
>> Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â sp=e0000040600d7e30 bsp=e0000040600d0bc0
>> ---[ end trace 7e2fb881ec0622f8 ]---
>
> Ah, of course, it's commit 21ec12364bb78b72ad36b94269c64b3ee31b038f
> (workqueue: remove noop condition check in worker_clr_flags()). ÂThe
> condition it removes is not a noop. ÂReverting it.
>

Hey all

It looks that WORKER_NOT_RUNNING could be defined finer :/

thanks
Hillf
---

--- a/kernel/workqueue.c 2011-01-05 08:50:20.000000000 +0800
+++ b/kernel/workqueue.c 2011-01-12 09:40:56.000000000 +0800
@@ -62,8 +62,9 @@ enum {
WORKER_CPU_INTENSIVE = 1 << 6, /* cpu intensive */
WORKER_UNBOUND = 1 << 7, /* worker is unbound */

- WORKER_NOT_RUNNING = WORKER_PREP | WORKER_ROGUE | WORKER_REBIND |
- WORKER_CPU_INTENSIVE | WORKER_UNBOUND,
+ WORKER_NOT_RUNNING = (WORKER_PREP | WORKER_ROGUE |
+ WORKER_REBIND | WORKER_CPU_INTENSIVE |
+ WORKER_UNBOUND),

/* gcwq->trustee_state */
TRUSTEE_START = 0, /* start */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/