Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932409AbXE1U6Q (ORCPT ); Mon, 28 May 2007 16:58:16 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932507AbXE1U5k (ORCPT ); Mon, 28 May 2007 16:57:40 -0400 Received: from gprs189-60.eurotel.cz ([160.218.189.60]:4880 "EHLO spitz.ucw.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932473AbXE1U5j (ORCPT ); Mon, 28 May 2007 16:57:39 -0400 Date: Mon, 28 May 2007 20:57:27 +0000 From: Pavel Machek To: Alan Stern Cc: Matthew Garrett , "Rafael J. Wysocki" , pm list , LKML , Nigel Cunningham , Oliver Neukum Subject: Re: [RFC][PATCH -mm 3/3] PM: Disable _request_firmware before hibernation/suspend Message-ID: <20070528205727.GA5911@ucw.cz> References: <20070528161242.GA1063@srcf.ucam.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.9i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2054 Lines: 41 Hi! > > > I can't speak for the second example, but there's a good reason the > > > first example works this way. It's not a matter of races; the problem > > > is that the kernel thread's job is to selectively suspend and resume > > > devices. We don't want it doing this while a system sleep is in > > > progress; it would (and in fact has, before the thread was made > > > freezable) cause the sleep transition to abort. > > > > How does this work on PPC or APM systems? > > For hibernation it behaves the same as on other types of systems. > > For STR it generally works okay. There was one report of suspends > aborting, and it looked like this was caused by selective resumes > originating from userspace. This seemed to be unrelated to the kernel > threads; apparently some program was running while the STR was in > progress, and causing the problem. For example, the lsusb program will > do a selective resume on every USB device as it scans through them all. > However that's just a guess, we haven't fully resolved that bug report. > > The theoretical answer is that it behaves the way we want. The kernel > thread does selective resumes in response to device requests. If such > a request comes in while the system is asleep it will awaken the > system; so it's only logical that a request coming in while the system > is in the process of going to sleep should abort the suspend. I'd say that it shows ppc being broken. User wanted to suspend the system, and now unrelated task did lsusb... and system will not sleep. AFAICT it is DoS issue -- if one of your users keeps doing lsusb, root will not be able to suspend the system. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/