On Wed, 1 May 2019 at 14:58, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > > The workqueue code complains viciously if we try to queue more work onto > the queue while attampting to drain it. As we asynchronously free > objects and defer their enqueuing with RCU, it is quite tricky to > quiesce the system before attempting to drain the workqueue. Yet drain > we must to ensure that the worker is idle before unloading the module. > > Give the freed object drain 3 whole passes with multiple rcu_barrier() > to give the defer freeing of several levels each protected by RCU and > needing a grace period before its parent can be freed, ultimately > resulting in a GEM object being freed after another RCU period. > > A consequence is that it will make module unload even slower. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110550 > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Matthew Auld <matthew.auld@xxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx