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

Oleg Nesterov
2007-08-06T16:48:19Z

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.