Re: Flames over -- Re: Which is simpler?



On Sun, 12 Feb 2006, Phillip Susi wrote:

Alan Stern wrote:
Both of you are missing an important difference between Suspend-to-RAM and
Suspend-to-Disk.

Suspend-to-RAM is a true suspend operation, in that the hardware's state
is maintained _in the hardware_. External buses like USB will retain
suspend power, for instance (assuming the motherboard supports it; some
don't).

Suspend-to-Disk, by contrast, is _not_ a true suspend. It can more
accurately be described as checkpoint-and-turn-off. Hardware state is not
maintained. (Some systems may support a special ACPI state that does
maintain suspend power to external buses during shutdown, I forget what
it's called. And I down't know whether swsusp uses this state.)


I would disagree. The only difference between the two is WHERE the
state is maintained - ram vs. disk. I won't really argue it though,
because it's just semantics -- call it whatever you want.

It's not just semantics. There's a real difference between maintaining
state in the hardware and maintaining it somewhere else. The biggest
difference is that if the hardware retains suspend power, it is able to
detect disconnections. When the system resumes, it _knows_ whether a
device was attached the entire time, as opposed to being unplugged and
replugged (or possibly a different device plugged in!) while the system
was asleep. If the hardware is down completely, there is no way of
telling for certain whether a device attached to some port is the same one
that was there when the system got suspended.

Another difference is the possibility of remote wakeup. Clearly it can't
happen when there's no power available.

So for example, let's say you have a filesystem mounted on a USB flash or
disk drive. With Suspend-to-RAM, there's a very good chance that the
connection and filesystem will still be intact when you resume. With
Suspend-to-Disk, the USB connection will terminate when the computer shuts
down. When you resume, the device will be gone and your filesystem will
be screwed.


This is not true. The USB bus is shut down either way, and provided
that you have not unplugged the disk, nothing will be screwed when you
resume from disk or ram.

Have you actually tried it? I have.

In any case, it is undeniably true that if the bus is shut down then all
the USB connections are lost. When you resume it will be the same as if
you had unplugged all the USB devices and then replugged them. Not a good
thing to do when they contain mounted filesystems; all the memory mappings
are invalidated.

(Bear in mind that whether a USB bus gets shut down depends on the
motherboard; some supply suspend power and some don't. It depends on the
USB controller too; some support low-power states other than "completely
off" and others don't.)

Alan Stern

-
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/



Relevant Pages

  • Re: Flames over -- Re: Which is simpler?
    ... Suspend-to-RAM is a true suspend operation, ... state is maintained _in the hardware_. ... off - suspended to disk or otherwise. ... the USB connection will terminate when the ...
    (Linux-Kernel)
  • Re: Flames over -- Re: Which is simpler?
    ... state in the hardware and maintaining it somewhere else. ... During suspend the hardware is usually completely powered off, and in either case, there is nothing running on the CPU to monitor device insertion/removal. ... that you have not unplugged the disk, nothing will be screwed when you resume from disk or ram. ... Whether the disk is connected via SCSI, SATA, USB, or whatever does not matter. ...
    (Linux-Kernel)
  • Re: [linux-pm] Fundamental flaw in system suspend, exposed by freezer removal
    ... which would cause the hardware to make it a very short suspend state. ... "Defer handling" is more to the point, be it by hardware or software. ... It depends on the bus. ... scanning isn't necessary. ...
    (Linux-Kernel)
  • Fwd: Faster resuming of suspend technology.
    ... and actually you can download 100MBytes suspend image within 30sec. ... Another issues is that at the moment, hotplugging is work in progress. ... and the same hardware configuration in the resumed system. ... not swsusp2. ...
    (Linux-Kernel)
  • Re: Flames over -- Re: Which is simpler?
    ... maintaining state in the hardware and maintaining it somewhere else. ... The biggest difference is that if the hardware retains suspend power, it is able to detect disconnections. ...
    (Linux-Kernel)