From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 2/5] drm: Add initial dnyamic power off feature Date: Mon, 10 Sep 2012 09:36:45 +0100 Message-ID: References: <1347251515-10136-1-git-send-email-airlied@gmail.com> <1347251515-10136-3-git-send-email-airlied@gmail.com> <20120910071855.GA5387@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 330B69F059 for ; Mon, 10 Sep 2012 01:36:56 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Dave Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Mon, 10 Sep 2012 18:23:05 +1000, Dave Airlie wrote: > (oops' forgot reply to all) > > > > > My midlayer-smell-o-meter just cranked up to 11 when reading this comment > > ;-) > > > > I'd have expected: > > - Drivers to check the power state and enable the gpu if it's off in their > > cs ioctl (instead of the brute-force every ioctl there is approach in > > the drm core) > > The problem is it won't just be the CS ioctl, so I just went with the > larger hammer, I started annotating all the nouveau ioctls adding a > wake up check at the top, and then realised that I need to start > annotating all the non-gpu paths as well, like drm open, sysfs, > basically anywhere that might cause us to access any GPU resources. > Once I started annotating everywhere I realised just bashing it into > the top most ioctl then sticking the whole lot into the drm core made > sense. You have to think the device is gone completely, not the device > is asleep. its not asleep, its effectively dead. This reminds me of some of the power island patches that we making the rounds a few years ago - effectively shadowing register blocks to avoid waking up the device for trivial queries. In many ways it was just a fine grained suspend/resume. Not sure if that concept helps here, but it may be worth digging around to see how they went about waking up individual devices. -Chris -- Chris Wilson, Intel Open Source Technology Centre