Re: __i915_spin_request() sucks

From: Jens Axboe
Date: Fri Nov 13 2015 - 17:16:40 EST


On 11/13/2015 03:12 PM, Chris Wilson wrote:
On Fri, Nov 13, 2015 at 09:22:52AM -0700, Jens Axboe wrote:
On 11/13/2015 09:13 AM, Mike Galbraith wrote:
On Fri, 2015-11-13 at 08:36 -0700, Jens Axboe wrote:
Previous patch was obvious pre-coffee crap, this should work for using
ktime to spin max 1usec.

1us seems a tad low. I doubt the little wooden gears and pulleys of my
core2 Toshiba Satellite lappy can get one loop ground out in a usec :)

Maybe it is, it's based off the original intent of the function,
though. See the original commit referenced.

I've been looking at numbers from one laptop and I can set the timeout
at 2us before we see a steep decline in what is more or less synchronous
request handling (which affects a variety of rendering workloads).

Alright, at least that's a vast improvement from 10ms. If you send me something tested, I can try it here.

Looking around, other busy loops seem to use local_clock() (i.e. rdstcll
with a fair wind). Is that worth using here?

Honestly, don't think it matters too much for this case. You'd have to disable preempt to use local_clock(), fwiw. It is a faster variant though, but the RT people might hate you for 2us preempt disables :-)

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/