On Sun, Nov 29, 2015 at 08:48:06AM +0000, Chris Wilson wrote: > + /* Optimistic spin for the next jiffie before touching IRQs */ > + if (intel_breadcrumbs_add_waiter(req)) { > + ret = __i915_spin_request(req, state); > + if (ret == 0) > + goto out; There are a couple of interesting side-effects here. As we know start up the irq in parallel and keep it running for longer, irq/i915 now consumes a lot of CPU time (like 50-100%!) for synchronous batches, but doesn't seem to interfere with latency (as spin_request is still nicely running and catching the request completion). That should also still work nicely on single cpu machines as the irq enabling should not preempt us. The second interesting side-effect is that the synchronous loads that regressed with a 2us spin-request timeout are now happy again at 2us. Also with the active-request and the can-spin check from add_waiter, running a low fps game with a compositor is not burning the CPU with any spinning. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx