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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 12 Feb 2006, Phillip Susi wrote:

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

Like Kyle said, this depends to some extent on the system.  However, 
during Suspend-to-RAM it is definitely true that the RAM at least is 
powered on.  Other components may be powered as well.  Otherwise you 
wouldn't be able to awaken the system by pressing a button/opening the 
case/whatever.

>  When the system is resumed the kernel decides if the 
> hardware has changed the same way for either system: it probes the 
> hardware to see if it is still there.  There isn't anything special that 
> monitors device insertion/removal while suspended to ram.

Sorry, but you're wrong.  First of all, testing if hardware is there is
different from testing whether it has changed -- it could have changed 
while the system was asleep, with the result that hardware is indeed there 
but it's not the _same_ hardware.

Second, with USB at any rate, in addition to checking that hardware is 
still there, the kernel queries the USB controller to see if a disconnect 
occurred while the system was asleep.  (If the controller wasn't powered 
during that time then it will report that every USB device was 
disconnected.)

Third, there is indeed something special that monitors USB device 
insertion/removal while suspended to RAM -- the USB host controller does 
so if it has suspend power.

> >> 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.  
> 
> If it doesn't work then you have found a bug and should file a report. 

No.  It does work exactly as designed and it's not buggy.  You just don't
understand it.

> The state of the kernel after resuming from either suspend to disk, or 
> suspend to ram is the same.  The filesystem is still mounted, and any 
> dirty pages in ram will be flushed just like normal.  Whether the disk 
> is connected via SCSI, SATA, USB, or whatever does not matter.

Don't be silly.  Dirty pages can't be flushed to disks that are no longer
attached!  And if a USB disk was unplugged while the system was asleep,
the kernel will know that it is no longer attached.  I don't know which
other bus drivers check for this sort of thing.

> The kernel knows that the same device is still there on the bus, and so 
> it picks up right where it left off.  If it thinks the device has been 
> unplugged and reconnected, that is a bug.

It's not a bug if the device _has_ been unplugged and reconnected.  When 
that happens, there's no way for the kernel to tell whether the device 
there now is the same as the device that used to be there.

Alan Stern

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux