Messages in this thread | | | Date | Thu, 12 May 2022 03:38:38 -0700 | From | Dmitry Torokhov <> | Subject | Re: [PATCH v3 (repost)] workqueue: Warn flushing of kernel-global workqueues |
| |
Hi Tejun,
On Mon, Mar 21, 2022 at 07:02:45AM -1000, Tejun Heo wrote: > I'm willing to bet that the majority of the use cases can be converted to > use flush_work() and that'd be the preference. We need a separate workqueue > iff the flush requrement is complex (e.g. there are multiple dynamic work > items in flight which need to be flushed together) or the work items needs > some special attributes (such as MEM_RECLAIM or HIGHPRI) which don't apply > to the system_wq users in the first place.
This means that now the code has to keep track of all work items that it allocated, instead of being able "fire and forget" works (when dealing with extremely infrequent events) and rely on flush_workqueue() to cleanup. That flush typically happens in module unload path, and I wonder if the restriction on flush_workqueue() could be relaxed to allow calling it on unload.
Thanks.
-- Dmitry
| |