Re: [PATCH] RT: Add priority-queuing and priority-inheritance to workqueue infrastructure

From: Oleg Nesterov
Date: Mon Aug 06 2007 - 12:48:22 EST


On 08/06, Gregory Haskins wrote:
>
> On Mon, 2007-08-06 at 19:36 +0400, Oleg Nesterov wrote:
>
> > > E.g. whatever work was being flushed was allowed to escape
> > > out from behind the barrier. If you don't care about the flush working,
> > > why do it at all?
> >
> > The caller of flush_workueue() doesn't necessary know we have such a work
> > on list. It just wants to flush its own works.
>
> I was assuming that the work being flushed was submitted by the same
> context, but I think I see what you are saying now. Essentially if that
> queued work was unrelated to the thread that was doing the flush, it
> doesn't care if it gets rescheduled.

Yes.

> Do you agree that if the context was the same there is a bug? Or did I
> miss something else?

Yes sure. We can't expect we can "flush" work_struct with flush_workqueue()
unless we know it doesn't re-schedule itself.

OTOH, it is not the bug to call flush_workqueue() even if that work was
queued by us, it should complete.

Oleg.

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