On Thu, May 19, 2016 at 01:50:51PM +0100, Tvrtko Ursulin wrote: > > On 19/05/16 12:32, Chris Wilson wrote: > >The queue only ever contains at most one item and has no special flags. > >It is just a very simple wrapper around the system-wq - a complication > >with no benefits. > > How much time do we take in the reset case - is it acceptable to do > that work from the system wq?
Hangcheck is a handful of register reads and some pointer chasing per engine. (There is a seqno_barrier in there which may be reasonably expensive but not a cpu hog). The error capture is run from the hangcheck context - and that is no small task (especially if we ever apply the object compression patches), but for safety we need to call stop_machine() so it really doesn't matter at that point. > Hm, why was it an ordered queue so far - we only queue single work on it? Copy-n-paste I think. The dev_priv->wq is ordered because we take struct_mutex in everything and so only really support one concurrent task at a time. We wanted a seperate workqueue for hangcheck so it wouldn't be interfered with by the driver blocking the ordered dev_priv->wq, but that is just the same as using the unbound system workqueue. Hmm, probably we do want system_unbound_wq is we ever see an issue. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx