Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932199AbbKLW7V (ORCPT ); Thu, 12 Nov 2015 17:59:21 -0500 Received: from mail-ig0-f176.google.com ([209.85.213.176]:37557 "EHLO mail-ig0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754270AbbKLW7T (ORCPT ); Thu, 12 Nov 2015 17:59:19 -0500 Subject: Re: __i915_spin_request() sucks To: Chris Wilson , Daniel Vetter , DRI Development , LKML References: <5644F850.2060803@kernel.dk> <5644F941.9090505@kernel.dk> <20151112221908.GA26194@nuc-i3427.alporthouse.com> <56451812.2050704@kernel.dk> From: Jens Axboe Message-ID: <564519C4.6050302@kernel.dk> Date: Thu, 12 Nov 2015 15:59:16 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <56451812.2050704@kernel.dk> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1927 Lines: 52 On 11/12/2015 03:52 PM, Jens Axboe wrote: > On 11/12/2015 03:19 PM, Chris Wilson wrote: >>>> 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 >>>> 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? >> >> The tests that it improved the most were the latency sensitive tests and >> since my Broadwell xps13 behaves itself, I'd like to understand how it >> culminates in an interactivity loss. >> >> 1. Maybe it is the uninterruptible nature of the polling, making X's >> SIGIO jerky: > > This one still feels bad. > >> 2. Or maybe it is increased mutex contention: > > And so does this one... I had to manually apply hunks 2-3, and after > doing seat-of-the-pants testing for both variants, I confirmed with perf > that we're still seeing a ton of time in __i915_wait_request() for both > of them. I don't see how #2 could make any difference, you're passing in 0x3 hard coded for most call sites, so we poll. The ones that don't, pass a bool (?!). I should note that with the basic patch of just never spinning, I don't see __i915_wait_request() in the profiles. At all. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/