lkml.org 
[lkml]   [2010]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: workqueue destruction BUG_ON
From
Date
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.

johannes



\
 
 \ /
  Last update: 2010-08-24 15:19    [W:0.063 / U:0.608 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site