lkml.org 
[lkml]   [2008]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/3] PM: Introduce new top level suspend and hibernation callbacks (rev. 8)
On Mon, 14 Apr 2008, Rafael J. Wysocki wrote:

> "you can assume that the user space is there while ->prepare() is running,
> but you are supposed to prevent new children of the device from being
> registered from that point on _and_ you have to make sure that freezable
> tasks will be able to freeze after ->prepare() has run" (but why on Earth a
> driver writer is now required to know what's a freezable task etc.?)

This reminds me... We're going to need a way to make certain
activities mutually exclusive with system sleep. The simplest example
is loading a kernel module; init and probe routines often end up
causing new child devices to be registered.

The most straightforward approach is to use an rwsem like the one we
used to have. However I'm concerned that under some circumstances
there might be recursive read-locking. (For example, the init routine
in a newly-loaded module decides to load yet another module. Can this
actually happen? libusual does something much like it.)

So it's quite possible we'll end up needing a mechanism that resembles
an rwsem but allows recursive (properly nested) read-locking. Does
such a thing exist already, or would it have to be invented?

Alan Stern



\
 
 \ /
  Last update: 2008-04-14 17:17    [W:0.417 / U:0.316 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site