Re: [PATCH -mm] workqueue: debug possible endless loop in cancel_rearming_delayed_work

From: David Chinner
Date: Thu Apr 19 2007 - 10:49:20 EST


On Thu, Apr 19, 2007 at 09:32:22AM +0200, Ingo Molnar wrote:
>
> * Jarek Poplawski <jarkao2@xxxxx> wrote:
>
> > + int i = 1000;
> >
> > - while (!cancel_delayed_work(dwork))
> > + while (!cancel_delayed_work(dwork)) {
> > flush_workqueue(wq);
> > + BUG_ON(!i--);
> > + }
>
> if then make it a WARN_ON(). But ... dont we have the softlockup
> detector for such cases? Does CONFIG_DETECT_SOFTLOCKUP=y give you enough
> information?

No, you won't get a soft lockup - flush_workqueue() has a
schedule() call in the middle of it.

Cheers,

Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
-
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/