Hello, On Tue, Sep 05, 2017 at 02:43:14PM +0100, Chris Wilson wrote: > > Can't you use cancel[_delayed]_work_sync()? > > We then need a loop like: > > do { > if (cancel_delayed_work_sync(wrk)) > do_work(wrk); > else > break; > } while (1); > > We do want the flush semantics. I see. Heh, I don't know. One thing you can try to do is putting them on a separate workqueue and use drain_workqueue() or destroy_workqueue() on it. Those functions expect there to be some requeueing but warns if there are too much (non configurable now but we can add if necessary). Thanks. -- tejun _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx