From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Garrett Subject: Re: [linux-pm] suspend blockers & Android integration Date: Sun, 6 Jun 2010 16:29:46 +0100 Message-ID: <20100606152946.GA11351@srcf.ucam.org> References: <1275731653.27810.41078.camel@twins> <20100605092851.6ee15f13@infradead.org> <20100606133130.GA8513@srcf.ucam.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Vitaly Wool Cc: Brian Swetland , Arve =?iso-8859-1?B?SGr4bm5lduVn?= , Arjan van de Ven , tytso@mit.edu, Florian Mickler , Peter Zijlstra , "H. Peter Anvin" , LKML , Neil Brown , James Bottomley , Alan Cox , Linux PM , Ingo Molnar , Linux OMAP Mailing List , Linus Torvalds , Thomas Gleixner , Felipe Balbi List-Id: linux-omap@vger.kernel.org On Sun, Jun 06, 2010 at 05:26:09PM +0200, Vitaly Wool wrote: > 2010/6/6 Matthew Garrett : > > Holding a suspend blocker is entirely orthogonal to runtime pm. The > > "whole kernel" will not be "active" - it can continue to hit the same > > low power state in the idle loop, and any runtime pm implementation in > > the drivers will continue to be active. > > Yeah, that might also be the case, But then again, what's the use of > suspend blockers in this situation? The difference between idle-based suspend and opportunistic suspend is that the former will continue to wake up for timers and will never be entered if something is using CPU, whereas the latter will be entered whenever no suspend blocks are held. The problem with opportunistic suspend is that you might make the decision to suspend simultaneusly with a wakeup event being received. Suspend blocks facilitate synchronisation between the kernel and userspace to ensure that all such events have been consumed and handld appropriately. -- Matthew Garrett | mjg59@srcf.ucam.org