Quoting Tejun Heo (2017-09-05 14:36:28) > On Mon, Sep 04, 2017 at 10:35:49AM +0200, Daniel Vetter wrote: > > On Fri, Sep 01, 2017 at 03:11:23PM +0100, Chris Wilson wrote: > > > If a worker requeues itself, it may switch to a different kworker pool, > > > which flush_work() considers as complete. To be strict, we then need to > > > keep flushing the work until it is no longer pending. > > > > > > References: https://bugs.freedesktop.org/show_bug.cgi?id=102456 > > > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> > > > Cc: Mika Kuoppala <mika.kuopp...@intel.com> > > > > Shouldn't this be a thing the workqueue subsystem exposes? Adding Tejun et > > al. > > -Daniel > > 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. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx