From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754091Ab0E3UBq (ORCPT ); Sun, 30 May 2010 16:01:46 -0400 Received: from ogre.sisk.pl ([217.79.144.158]:59358 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753698Ab0E3UBo convert rfc822-to-8bit (ORCPT ); Sun, 30 May 2010 16:01:44 -0400 From: "Rafael J. Wysocki" To: Arve =?iso-8859-1?q?Hj=F8nnev=E5g?= Subject: Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8) Date: Sun, 30 May 2010 22:02:39 +0200 User-Agent: KMail/1.12.4 (Linux/2.6.34-tst; KDE/4.3.5; x86_64; ; ) Cc: Florian Mickler , Thomas Gleixner , Matthew Garrett , Alan Stern , Peter Zijlstra , Paul@smtp1.linux-foundation.org, LKML , felipe.balbi@nokia.com, Linux OMAP Mailing List , Linux PM , Alan Cox References: <201005292227.15479.rjw@sisk.pl> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 8BIT Message-Id: <201005302202.39511.rjw@sisk.pl> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Saturday 29 May 2010, Arve Hjønnevåg wrote: > 2010/5/29 Rafael J. Wysocki : > > On Saturday 29 May 2010, Arve Hjønnevåg wrote: > >> 2010/5/28 Rafael J. Wysocki : > >> > On Friday 28 May 2010, Arve Hjønnevåg wrote: > >> >> On Fri, May 28, 2010 at 1:44 AM, Florian Mickler wrote: > >> >> > On Thu, 27 May 2010 20:05:39 +0200 (CEST) > >> >> > Thomas Gleixner wrote: > >> > ... > >> >> > To integrate this with the current way of doing things, i gathered it > >> >> > needs to be implemented as an idle-state that does the suspend()-call? > >> >> > > >> >> > >> >> I think it is better no not confuse this with idle. Since initiating > >> >> suspend will cause the system to become not-idle, I don't think is is > >> >> beneficial to initiate suspend from idle. > >> > > >> > It is, if the following two conditions hold simultaneously: > >> > > >> > (a) Doing full system suspend is ultimately going to bring you more energy > >> > savings than the (presumably lowest) idle state you're currently in. > >> > > >> > (b) You anticipate that the system will stay idle for a considerably long time > >> > such that it's worth suspending. > >> > > >> > >> I still don't think this matters. If you are waiting for in interrupt > >> that cannot wake you up from suspend, then idle is not an indicator > >> that it is safe to enter suspend. I also don't think you can avoid any > >> user-space suspend blockers by delaying suspend until the system goes > >> idle since any page fault could cause it to go idle. Therefore I don't > >> see a benefit in delaying suspend until idle when the last suspend > >> blocker is released (it would only mask possible race conditions). > > > > I wasn't referring to suspend blockers, but to the idea of initiating full > > system suspend from idle, which I still think makes sense. If you are > > waiting for an interrupt that cannot wake you from suspend, then > > _obviously_ suspend should not be started. However, if you're not waiting for > > such an interrupt and the (a) and (b) above hold, it makes sense to start > > suspend from idle. > > > > What about timers? When you suspend timers stop (otherwise it is just > a deep-idle mode), and this could cause problems. Some drivers rely on > timers if the hardware does not have a completion interrupt. It is not > uncommon to see send command x then wait 200ms in a some hardware > specs. QoS should be used in such cases. Rafael