From patchwork Wed Aug 1 08:06:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Bottomley X-Patchwork-Id: 1263181 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 30F473FC23 for ; Wed, 1 Aug 2012 08:06:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753757Ab2HAIGW (ORCPT ); Wed, 1 Aug 2012 04:06:22 -0400 Received: from bedivere.hansenpartnership.com ([66.63.167.143]:35381 "EHLO bedivere.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752542Ab2HAIGQ (ORCPT ); Wed, 1 Aug 2012 04:06:16 -0400 Received: from localhost (localhost [127.0.0.1]) by bedivere.hansenpartnership.com (Postfix) with ESMTP id E94518EE111; Wed, 1 Aug 2012 01:06:15 -0700 (PDT) Received: from bedivere.hansenpartnership.com ([127.0.0.1]) by localhost (bedivere.hansenpartnership.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lrveoCXIdPUK; Wed, 1 Aug 2012 01:06:15 -0700 (PDT) Received: from [153.66.254.224] (accolon.hansenpartnership.com [87.194.65.0]) by bedivere.hansenpartnership.com (Postfix) with ESMTPSA id 3F7878EE0A2; Wed, 1 Aug 2012 01:06:14 -0700 (PDT) Message-ID: <1343808372.3047.1.camel@dabdike.int.hansenpartnership.com> Subject: Re: Massive power regression going 3.4->3.5 From: James Bottomley To: Chris Wilson Cc: "Rafael J. Wysocki" , Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, linux-pm@vger.kernel.org, Ben Widawsky Date: Wed, 01 Aug 2012 09:06:12 +0100 In-Reply-To: <1343762668_23120@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> <1343762668_23120@CP5-2952> X-Mailer: Evolution 3.2.3 Mime-Version: 1.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Tue, 2012-07-31 at 20:24 +0100, Chris Wilson wrote: > 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; > } Your patch doesn't apply ... I think because in v3.5 this line is displaced by about 200 lines in the file. patching file drivers/gpu/drm/i915/i915_gem.c Hunk #1 FAILED at 3067. 1 out of 1 hunk FAILED -- saving rejects to file drivers/gpu/drm/i915/i915_gem.c.rej I got the attached to apply and it doesn't really improve the idle power much (12.5W). James --- -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 288d7b8..2f3f279 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2869,7 +2869,7 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_object *obj, return ret; if (pipelined != obj->ring) { - ret = i915_gem_object_sync(obj, pipelined); + ret = i915_gem_object_wait_rendering(obj); if (ret) return ret; }