[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4C73C5EE.2060501@kernel.org>
Date: Tue, 24 Aug 2010 15:15:26 +0200
From: Tejun Heo <tj@...nel.org>
To: Johannes Berg <johannes@...solutions.net>
CC: LKML <linux-kernel@...r.kernel.org>
Subject: Re: workqueue destruction BUG_ON
Hello,
On 08/24/2010 03:17 PM, Johannes Berg wrote:
> On Tue, 2010-08-24 at 15:07 +0200, Tejun Heo wrote:
>
>>> [ 500.874185] ------------[ cut here ]------------
>>> [ 500.875212] kernel BUG at kernel/workqueue.c:2849!
>>
>> Are you sure you're running the patched kernel? With the patch
>> applied, the BUG_ON() wouldn't be on line 2849 (on both rc1 and 2).
>
> Yes:
>
> void destroy_workqueue(struct workqueue_struct *wq)
> {
> unsigned int cpu;
>
> wq->flags |= WQ_DYING;
> flush_workqueue(wq);
>
> /*
> * wq list is used to freeze wq, remove from list after
> * flushing is complete in case freeze races us.
> */
> spin_lock(&workqueue_lock);
> list_del(&wq->list);
> spin_unlock(&workqueue_lock);
>
> /* sanity check */
> for_each_cwq_cpu(cpu, wq) {
> struct cpu_workqueue_struct *cwq = get_cwq(cpu, wq);
> int i;
>
> for (i = 0; i < WORK_NR_COLORS; i++)
> BUG_ON(cwq->nr_in_flight[i]);
> 2849: BUG_ON(cwq->nr_active);
> BUG_ON(!list_empty(&cwq->delayed_works));
>
>
> Applying the patch reported some offset, but the kernel is just rc1 +
> wireless stuff.
I see, thanks for verifying. I probably got confused about the line
number. Hmm... weird. I'll prep further debug patch but can you
please tell me what you did to trigger the bug?
Thanks.
--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists