Bruce M Simpson wrote:
On Mon, Jan 24, 2005 at 07:37:34PM -0600, Ryan Sommers wrote:
My little knowledge on this subject aside. I'd love to have full suspend/resume functionality. It'd make my life as a mobile freebsd user much much easier. However, I wouldn't want it at the expense of every kernel. It would need to be something completely modular.
I think what we're also looking at is aborting any pending bus-mastering transactions. This could probably be done as a part of the newbus suspend/resume routines for bus and device drivers, but it also means that the other entry points need to be able to deal with the carpet being dragged out from under them like this.
As I said, the first step should be to enter a pre-suspend state, where only hard disk devices should be kept alive. All other devices should be sleeping then, and so there will be no pending requests.
In the case of a networking driver, particularly Ethernet, things are somewhat easier, and the more help you get from the hardware the better; but some cards like those based around ATM SARS just plain aren't designed to deal with the carpet being dragged out - they expect to keep rolling through their descriptor rings, segmenting and transmitting what they see.
The carpet will not be dragged out. The card wil be specifically shut down before this. ;-)
Of course, a techo-nerd-maniac could devise some form of network hibernating, or a NFS based hibernate file. Just like crash dump, I don't think this is possible or even necessary.
If we could take a clean subsystem-by-subsystem approach to marshaling kernel state to disk, that would be good. What gives me particular pain here is dealing with things like the filesystem. How does one deal with open files, etc, with pending I/O?
There's no need to deal with it! Just save the whole kernel core!
Jonny
-- João Carlos Mendes Luís - Networking Engineer - [EMAIL PROTECTED] _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"