Re: [PATCH] Hotplug for device power state changes

From: Todd Poynor
Date: Fri Apr 30 2004 - 15:02:07 EST


Russell King wrote:

And not being synchronous means that there's no point in calling
userland, because userland won't run before the machine has
suspended, so there's no point in calling it in the first place.
Also consider the case where you suspend, and asynchronously queue
up all these suspend scripts to run. Then you resume and queue up
the resume scripts to run. What order do the suspend and resume
scripts ultimately end up being run?
...
Maybe we should have a two-pass approach, where the first pass
synchronously tells userspace about the suspend, and the second
pass does the actual suspend. Then for resume the opposite.

I would argue that a system suspend/resume event does not need to also inform of the individual device suspend/resume events, since these can be implied. But if we were to include individual device suspend/resume hotplug events as part of system suspend/resume then I would agree with a two-phase model, since notification at the time of actual hardware suspend does not work once something critical to userspace notification is shutdown.

So I'm planning to resubmit patches with the following:

* Individual device resume events signalled before, not after, the resume, so that userspace can react to any new requirements before the device is placed into service.

* Individual device suspend and resume events converted to synchronous events (that wait for hotplug processing to complete before continuing).

* Changes to kobject to allow kobject hotplug to optionally be synchronous if desired. I'd assume this is a new hotplug_ops field.

* Synchronous hotplug events for system suspend and resume (without individual device notifications). These events can probably be generated by the kobject hotplug methods by the existing power subsys (once the above enhancement is in place).

Any comments on this course of action welcomed.


--
Todd Poynor
MontaVista Software

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/