From patchwork Tue Jul 31 19:24:19 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 1261621 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id 99BF5DF26F for ; Tue, 31 Jul 2012 19:25:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0D3DF9EEB8 for ; Tue, 31 Jul 2012 12:25:13 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from fireflyinternet.com (smtp.fireflyinternet.com [109.228.6.236]) by gabe.freedesktop.org (Postfix) with ESMTP id 4EE569F370 for ; Tue, 31 Jul 2012 12:24:37 -0700 (PDT) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.66.37; Received: from cantiga.alporthouse.com (unverified [78.156.66.37]) by fireflyinternet.com (Firefly Internet SMTP) with ESMTP id 119309309-1500050 for multiple; Tue, 31 Jul 2012 20:24:28 +0100 Received: by cantiga.alporthouse.com (sSMTP sendmail emulation); Tue, 31 Jul 2012 20:24:19 +0100 From: Chris Wilson Subject: Re: Massive power regression going 3.4->3.5 To: James Bottomley In-Reply-To: <1343729665_21195@CP5-2952> References: <1343477958.2891.6.camel@dabdike.int.hansenpartnership.com> <1343557599.2745.1.camel@dabdike.int.hansenpartnership.com> <201207291544.26334.rjw@sisk.pl> <201207292125.21376.rjw@sisk.pl> <1343641574.2905.2.camel@dabdike.int.hansenpartnership.com> <1343660041.2966.2.camel@dabdike.int.hansenpartnership.com> <86a9yh2oqe.fsf@sumi.keithp.com> <1343667940.5640.1.camel@dabdike.int.hansenpartnership.com> <864nop2jma.fsf@sumi.keithp.com> <1343719914.5640.8.camel@dabdike.int.hansenpartnership.com> <1343722002.3516.1.camel@dabdike.int.hansenpartnership.com> <1343723344_20808@CP5-2952> <1343727455.2930.0.camel@dabdike.int.hansenpartnership.com> <1343728466_21110@CP5-2952> <1343728630.12484.0.camel@dabdike.int.hansenpartnership.com> <1343729665_21195@CP5-2952> Date: Tue, 31 Jul 2012 20:24:19 +0100 X-Originating-IP: 78.156.66.37 Message-ID: <1343762668_23120@CP5-2952> Cc: "Rafael J. Wysocki" , Greg Kroah-Hartman , Ben Widawsky , dri-devel@lists.freedesktop.org, linux-pm@vger.kernel.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org On Tue, 31 Jul 2012 11:14:17 +0100, Chris Wilson wrote: > On Tue, 31 Jul 2012 10:57:10 +0100, James Bottomley wrote: > > > When did you inspect the debug files? One effect I can imagine is that > > > if your system was previously stuck at RPn and never upclocking the GPU > > > when X starts. The question would then be what is preventing the GPU > > > from reaching its lowest power state again. > > > > After I logged into an xfce4 session and powertop showed idle had been > > reached. That you are using xfce4 makes the use of semaphores for pageflips as being the root cause even more suspect. Pageflips are only used for a fullscreen DRI client caalling SwapBuffers, to my knowledge xfce4 does not use DRI at all - its compositing manager is XRender based if you happen to be using it. Please can you try the small patch to disable the use of semaphores for pageflips and see if the regression remains (which I judge it will...): diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 5c4657a..f301f2f 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -3067,7 +3067,7 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_o return ret; if (pipelined != obj->ring) { - ret = i915_gem_object_sync(obj, pipelined); + ret = i915_gem_object_wait_rendering(obj); if (ret) return ret; }