__i915_spin_request() sucks
From: Jens Axboe
Date: Thu Nov 12 2015 - 15:36:40 EST
Hi,
So a few months ago I got an XPS13 laptop, the one with the high res
screen. GUI performance was never really that great, I attributed it to
coming from a more powerful laptop, and the i915 driving a lot of
pixels. But yesterday I browsed from my wife's macbook, and was blown
away. Wow, scrolling in chrome SUCKS on the xps13. Not just scrolling,
basically anything in chrome. Molasses. So I got sick of it, fired up a
quick perf record, did a bunch of stuff in chrome. No super smoking
guns, but one thing did stick out - the path leading to
__i915_spin_request().
So today, I figured I'd try just killing that spin. If it fails, we'll
punt to normal completions, so easy change. And wow, MASSIVE difference.
I can now scroll in chrome and not rage! It's like the laptop is 10x
faster now.
Ran git blame, and found:
commit 2def4ad99befa25775dd2f714fdd4d92faec6e34
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date: Tue Apr 7 16:20:41 2015 +0100
drm/i915: Optimistically spin for the request completion
and read the commit message. Doesn't sound that impressive. Especially
not for something that screws up interactive performance by a LOT.
What's the deal? Revert?
--
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/