Re: purpose of WARN_ON in kernel/workqueue.c:worker_enter_idle()

From: Tejun Heo
Date: Thu Jul 21 2011 - 03:38:40 EST


Hello, Olaf.

On Mon, Jul 18, 2011 at 06:15:18PM +0200, Olaf Hering wrote:
> whats the purpose of "WARNING: at kernel/workqueue.c:1217 worker_enter_idle()"?
> I put some debug in the function, cpu is always 1, nr_workers is either
> 2 or 3, current_work is NULL.
> Is there some real bug lurking thats worth to track down?

Oh yeah, that means workqueue worker accounting went out of sync which
may lead to workqueue hang which usually means dead system. Can you
please print out what goes out of sync? ie. print gcwq->nr_workers,
nr_idle and get_gcwq_nr_running(gcwq->cpu)?

Also, it would be helpful to enable and record workqueue events (grep
workqueue /sys/kernel/debug/tracing/available_events). It should
allow us what led to the condition.

Thanks.

--
tejun
--
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/