tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: workqueue_drain
> Date: Wed, 20 Dec 2017 22:48:10 +0100
> From: Michael van Elst <mlelstv%serpens.de@localhost>
>
> On Thu, Dec 21, 2017 at 05:32:58AM +0800, Paul Goyette wrote:
>
> > again (no work can be enqueued if already in the queue). But I don't
> > see how "remember the last work enqueued and wait for it to be done
> > before destroying" is more versatile than "waiting for all to be done
> > before destroying". It certainly seems that the latter is a simpler
> > approach.
>
> The function is more versatile as it allows other uses than preparing
> the queue destruction.
>
> It would be much easier, if the work item had a state field....
I drafted a few ideas along these lines a while ago, including
unifying the API for thread context and softint context into just
different priority levels, and pooling threads so that idle workqueues
don't cost idle kthreads:
https://www.NetBSD.org/~riastradh/tmp/20140517/
https://www.NetBSD.org/~riastradh/tmp/20140726/kern_task_up.c
https://mail-index.NetBSD.org/tech-kern/2014/07/23/msg017394.html
Maybe the ideas were too disjointed or overengineered; it never went
anywhere. rmind@ proposed adding workqueue_drain to workqueue(9) and
maybe something else as a much simpler variation, but I don't remember
where his patch went.
Home |
Main Index |
Thread Index |
Old Index