* swsusp: move resume before mounting root [diff against vanilla 2.4.9]
@ 2001-09-18 16:42 Pavel Machek
[not found] ` <200109260602.f8Q62TM420328@saturn.cs.uml.edu>
0 siblings, 1 reply; 11+ messages in thread
From: Pavel Machek @ 2001-09-18 16:42 UTC (permalink / raw)
To: swsusp, seasons; +Cc: kernel list
[-- Attachment #1: Type: text/plain, Size: 424 bytes --]
Hi!
This is my latest version of swsusp relative to linus' 2.4.9, just in
case someone wants to try it... It should now be compatible with
reiserfs.
Note: it does rather ugly trick with signals (all recent versions
do). That will need to be fixed, somehow.
Pavel
--
I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org
[-- Attachment #2: delme.gz --]
[-- Type: application/octet-stream, Size: 13480 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread[parent not found: <200109260602.f8Q62TM420328@saturn.cs.uml.edu>]
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] [not found] ` <200109260602.f8Q62TM420328@saturn.cs.uml.edu> @ 2001-09-26 8:19 ` Pavel Machek 2001-09-27 3:02 ` Albert D. Cahalan 0 siblings, 1 reply; 11+ messages in thread From: Pavel Machek @ 2001-09-26 8:19 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: kernel list Hi! > Solution for the filesystem problems: > > 1. at suspend, basically unmount the filesystem (keep the mount tree) > 2. at resume, re-validate open files Wrong solution. ;-). Solution to filesystem problems: at suspend, sync but don't do anything more. At resume, don't try to mount anything (so that you don't replay transactions or damage disk in any other way). Pavel -- Causalities in World Trade Center: 6453 dead inside the building, cryptography in U.S.A. and free speech in Czech Republic. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-26 8:19 ` Pavel Machek @ 2001-09-27 3:02 ` Albert D. Cahalan 2001-09-27 4:29 ` Andreas Dilger ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Albert D. Cahalan @ 2001-09-27 3:02 UTC (permalink / raw) To: Pavel Machek; +Cc: Albert D. Cahalan, kernel list Pavel Machek writes: > [Albert Cahalan] >> Solution for the filesystem problems: >> >> 1. at suspend, basically unmount the filesystem (keep the mount tree) >> 2. at resume, re-validate open files > > Wrong solution. ;-). > > Solution to filesystem problems: at suspend, sync but don't do > anything more. At resume, don't try to mount anything (so that you > don't replay transactions or damage disk in any other way). That is totally broken, because I may mount the disk in between the suspend and resume. I might even: 1. boot kernel X 2. suspend kernel X 3. boot kernel Y 4. suspend kernel Y 5. resume kernel X 6. suspend kernel X 7. resume kernel Y 8. suspend kernel Y 9. goto #5 You really have to close the logs and mark the disks clean when you suspend. The problems here are similar the the ones NFS faces. Between the suspend and resume, filesystems may be modified in arbitrary ways. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-27 3:02 ` Albert D. Cahalan @ 2001-09-27 4:29 ` Andreas Dilger 2001-09-27 4:51 ` Tim Connors 2001-09-27 14:34 ` swsusp: move " Pavel Machek 2 siblings, 0 replies; 11+ messages in thread From: Andreas Dilger @ 2001-09-27 4:29 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: Pavel Machek, kernel list On Sep 26, 2001 23:02 -0400, Albert D. Cahalan wrote: > That is totally broken, because I may mount the disk in between > the suspend and resume. I might even: > > 1. boot kernel X > 2. suspend kernel X > 3. boot kernel Y > 4. suspend kernel Y > 5. resume kernel X > 6. suspend kernel X > 7. resume kernel Y > 8. suspend kernel Y > 9. goto #5 > > You really have to close the logs and mark the disks clean > when you suspend. The problems here are similar the the ones > NFS faces. Between the suspend and resume, filesystems may be > modified in arbitrary ways. This is possible with the "write_super_lockfs" interface to the journaling filesystems (ext3/reiserfs/XFS). This is normally used for LVM snapshots, but it could also be used for this. Cheers, Andreas -- Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto, \ would they cancel out, leaving him still hungry?" http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert ^ permalink raw reply [flat|nested] 11+ messages in thread
* resume before mounting root [diff against vanilla 2.4.9] 2001-09-27 3:02 ` Albert D. Cahalan 2001-09-27 4:29 ` Andreas Dilger @ 2001-09-27 4:51 ` Tim Connors 2001-09-29 22:23 ` Pavel Machek 2001-09-27 14:34 ` swsusp: move " Pavel Machek 2 siblings, 1 reply; 11+ messages in thread From: Tim Connors @ 2001-09-27 4:51 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: Pavel Machek, kernel list On Wed, 26 Sep 2001, Albert D. Cahalan wrote: > Pavel Machek writes: > > [Albert Cahalan] > > >> Solution for the filesystem problems: > >> > >> 1. at suspend, basically unmount the filesystem (keep the mount tree) > >> 2. at resume, re-validate open files > > > > Wrong solution. ;-). > > > > Solution to filesystem problems: at suspend, sync but don't do > > anything more. At resume, don't try to mount anything (so that you > > don't replay transactions or damage disk in any other way). > > That is totally broken, because I may mount the disk in between > the suspend and resume. I might even: > > 1. boot kernel X > 2. suspend kernel X > 3. boot kernel Y > 4. suspend kernel Y > 5. resume kernel X > 6. suspend kernel X > 7. resume kernel Y > 8. suspend kernel Y > 9. goto #5 > > You really have to close the logs and mark the disks clean > when you suspend. The problems here are similar the the ones > NFS faces. Between the suspend and resume, filesystems may be > modified in arbitrary ways. I missed the rest of the thread, but if you are talking about what I think you are talking about, I'll go <AOL>Me too</AOL> A horrible combination of accidents with scripts that set lilo to boot to the hibernated partition if last suspended, and an apparent BIOS bug that allowed me to boot out of a hibernated partition for a second time meant that my laptop came out of regular hibernation mode (as opposed to using swsusp for "hibernation") 2 months after I originally suspended the machine. After I had gone through numerous kernel upgrades and reboots, and after I had partially repartioned the drive. Needless to say, there were a number of partitions that were toast after this issue. Fortunately, I had made a backup of my drive (including me thesis!) only a week beforehand, and /home was fine. Not bad concidering the last backup was from 3 months ago! -- TimC -- http://www.physics.usyd.edu.au/~tcon/ This is a dirty hack! It might burn your PC and kill your cat! -- mpg123.c source ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: resume before mounting root [diff against vanilla 2.4.9] 2001-09-27 4:51 ` Tim Connors @ 2001-09-29 22:23 ` Pavel Machek 0 siblings, 0 replies; 11+ messages in thread From: Pavel Machek @ 2001-09-29 22:23 UTC (permalink / raw) To: Tim Connors, Albert D. Cahalan; +Cc: kernel list Hi! > > That is totally broken, because I may mount the disk in between > > the suspend and resume. I might even: > > > > 1. boot kernel X > > 2. suspend kernel X > > 3. boot kernel Y > > 4. suspend kernel Y > > 5. resume kernel X > > 6. suspend kernel X > > 7. resume kernel Y > > 8. suspend kernel Y > > 9. goto #5 > > > > You really have to close the logs and mark the disks clean > > when you suspend. The problems here are similar the the ones > > NFS faces. Between the suspend and resume, filesystems may be > > modified in arbitrary ways. > > I missed the rest of the thread, but if you are talking about what I think > you are talking about, I'll go <AOL>Me too</AOL> > > A horrible combination of accidents with scripts that set lilo to boot > to the hibernated partition if last suspended, and an apparent BIOS bug > that allowed me to boot out of a hibernated partition for a second > time meant that my laptop came out of regular hibernation mode (as swsusp code will not allow you to restore from one partition twice. Pavel -- I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care." Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-27 3:02 ` Albert D. Cahalan 2001-09-27 4:29 ` Andreas Dilger 2001-09-27 4:51 ` Tim Connors @ 2001-09-27 14:34 ` Pavel Machek 2001-09-28 3:56 ` Albert D. Cahalan 2 siblings, 1 reply; 11+ messages in thread From: Pavel Machek @ 2001-09-27 14:34 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: kernel list Hi! > >> Solution for the filesystem problems: > >> > >> 1. at suspend, basically unmount the filesystem (keep the mount tree) > >> 2. at resume, re-validate open files > > > > Wrong solution. ;-). > > > > Solution to filesystem problems: at suspend, sync but don't do > > anything more. At resume, don't try to mount anything (so that you > > don't replay transactions or damage disk in any other way). > > That is totally broken, because I may mount the disk in between > the suspend and resume. I might even: > > 1. boot kernel X > 2. suspend kernel X > 3. boot kernel Y > 4. suspend kernel Y > 5. resume kernel X > 6. suspend kernel X > 7. resume kernel Y > 8. suspend kernel Y > 9. goto #5 > > You really have to close the logs and mark the disks clean > when you suspend. The problems here are similar the the ones I can't do that: open deleted files. > NFS faces. Between the suspend and resume, filesystems may be > modified in arbitrary ways. No, you don't want to do that. This is swsusp package, meant to replace suspend-to-disk on your notebook. If you choose random notebook, it will allow you to suspend to disk, but not to suspend, boot X, poweron, boot Y, reboot, boot X. If you do what you described, you'll corrupt your filesystem. It is designed that way. Pavel -- Casualities in World Trade Center: 6453 dead inside the building, cryptography in U.S.A. and free speech in Czech Republic. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-27 14:34 ` swsusp: move " Pavel Machek @ 2001-09-28 3:56 ` Albert D. Cahalan 2001-09-28 20:40 ` Pavel Machek 0 siblings, 1 reply; 11+ messages in thread From: Albert D. Cahalan @ 2001-09-28 3:56 UTC (permalink / raw) To: Pavel Machek; +Cc: Albert D. Cahalan, kernel list Pavel Machek writes: >>>> Solution for the filesystem problems: >>>> >>>> 1. at suspend, basically unmount the filesystem (keep the mount tree) >>>> 2. at resume, re-validate open files >>> >>> Wrong solution. ;-). >>> >>> Solution to filesystem problems: at suspend, sync but don't do >>> anything more. At resume, don't try to mount anything (so that you >>> don't replay transactions or damage disk in any other way). >> >> That is totally broken, because I may mount the disk in between >> the suspend and resume. I might even: >> >> 1. boot kernel X >> 2. suspend kernel X >> 3. boot kernel Y >> 4. suspend kernel Y >> 5. resume kernel X >> 6. suspend kernel X >> 7. resume kernel Y >> 8. suspend kernel Y >> 9. goto #5 >> >> You really have to close the logs and mark the disks clean >> when you suspend. The problems here are similar the the ones > > I can't do that: open deleted files. Tough luck. Either use the same hack as NFS, or have such files return -EIO for all operations and give SIGBUS for mappings. Maybe just refuse to suspend when there are open deleted files. Oh, just create a name in the filesystem root and use that. Something like ".8fe4a979.swsusp" would be fine. Whatever! >> NFS faces. Between the suspend and resume, filesystems may be >> modified in arbitrary ways. > > No, you don't want to do that. This is swsusp package, meant to > replace suspend-to-disk on your notebook. If you choose random > notebook, it will allow you to suspend to disk, but not to suspend, > boot X, poweron, boot Y, reboot, boot X. > > If you do what you described, you'll corrupt your filesystem. It is > designed that way. Not "If", but "When". Somebody has already posted a report of doing exactly that, by accident, with a 3-month-old suspension. The filesystems were destroyed. Right now, swsusp is a serious hazard. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-28 3:56 ` Albert D. Cahalan @ 2001-09-28 20:40 ` Pavel Machek 2001-09-29 7:55 ` Albert D. Cahalan 0 siblings, 1 reply; 11+ messages in thread From: Pavel Machek @ 2001-09-28 20:40 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: kernel list Hi! > > I can't do that: open deleted files. > > Tough luck. Either use the same hack as NFS, or have such files > return -EIO for all operations and give SIGBUS for mappings. > Maybe just refuse to suspend when there are open deleted files. > Oh, just create a name in the filesystem root and use that. > Something like ".8fe4a979.swsusp" would be fine. Whatever! ...and break locking and similar stuff. NFS is not as good as local filesystem. > >> NFS faces. Between the suspend and resume, filesystems may be > >> modified in arbitrary ways. > > > > No, you don't want to do that. This is swsusp package, meant to > > replace suspend-to-disk on your notebook. If you choose random > > notebook, it will allow you to suspend to disk, but not to suspend, > > boot X, poweron, boot Y, reboot, boot X. > > > > If you do what you described, you'll corrupt your filesystem. It is > > designed that way. > > Not "If", but "When". Somebody has already posted a report of > doing exactly that, by accident, with a 3-month-old suspension. > The filesystems were destroyed. > > Right now, swsusp is a serious hazard. That's why its called experimental ;-). Currently we have "SWSUSP" signature, SWAP-FILE gets replaced with SWSUSP on suspend, and SWAP-FILE is written back on resume. That way, you can not resume two times from one image. Additional safety measure could be added: on every swapon, check if "SWSUSP" is there, and replace it with "SWAP-FILE" if so. (Currently it says -EINVAL). That should make it pretty safe. Of course, you'll still be able to shoot yourself in the foot even with added "security". Just don't do it, then. Pavel -- I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care." Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-28 20:40 ` Pavel Machek @ 2001-09-29 7:55 ` Albert D. Cahalan 2001-09-29 8:40 ` Pavel Machek 0 siblings, 1 reply; 11+ messages in thread From: Albert D. Cahalan @ 2001-09-29 7:55 UTC (permalink / raw) To: Pavel Machek; +Cc: Albert D. Cahalan, kernel list Pavel Machek writes: > [Albert Cahalan] >> [Pavel Machek] >>> I can't do that: open deleted files. >> >> Tough luck. Either use the same hack as NFS, or have such files >> return -EIO for all operations and give SIGBUS for mappings. >> Maybe just refuse to suspend when there are open deleted files. >> Oh, just create a name in the filesystem root and use that. >> Something like ".8fe4a979.swsusp" would be fine. Whatever! > > ...and break locking and similar stuff. NFS is not as good as local > filesystem. Oh well. Network connections die and real-time apps fail too. It is important to have safe and useful behavior in the presence of arbitrary filesystem modifications. It is very nice to be able to use suspend/resume to alternate between two running kernels. I wouldn't worry about locking. Write/discard all data on suspend, then examine the inode on resume. As long as the inode doesn't change by more than the atime, the lock can survive. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: swsusp: move resume before mounting root [diff against vanilla 2.4.9] 2001-09-29 7:55 ` Albert D. Cahalan @ 2001-09-29 8:40 ` Pavel Machek 0 siblings, 0 replies; 11+ messages in thread From: Pavel Machek @ 2001-09-29 8:40 UTC (permalink / raw) To: Albert D. Cahalan; +Cc: kernel list Hi! > > [Albert Cahalan] > >> [Pavel Machek] > > >>> I can't do that: open deleted files. > >> > >> Tough luck. Either use the same hack as NFS, or have such files > >> return -EIO for all operations and give SIGBUS for mappings. > >> Maybe just refuse to suspend when there are open deleted files. > >> Oh, just create a name in the filesystem root and use that. > >> Something like ".8fe4a979.swsusp" would be fine. Whatever! > > > > ...and break locking and similar stuff. NFS is not as good as local > > filesystem. > > Oh well. Network connections die and real-time apps fail too. > It is important to have safe and useful behavior in the presence > of arbitrary filesystem modifications. It is very nice to be able > to use suspend/resume to alternate between two running kernels. > > I wouldn't worry about locking. Write/discard all data on suspend, > then examine the inode on resume. As long as the inode doesn't > change by more than the atime, the lock can survive. And if did? So now semantics is "it somehow works in presence of FS modifications, but not completely"? I look at it this way: ability to survive filesystem modifications would be nice, but it is quite hard to do. (Probably bigger diff than what I have, now.) Admitedly, it would also be nice to be able for kernel *to survive arbitrary fs modifications without suspend-to-disk* -- imagine two machines sharing one SCSI disk. No other suspend-to-disk implementation I know of does what you describe. So I treat problems orthogonal. What you want is usefull (you can do forced unmount that way), but it is not required for software suspend. Pavel -- Casualities in World Trade Center: 6453 dead inside the building, cryptography in U.S.A. and free speech in Czech Republic. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2001-09-30 18:25 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-09-18 16:42 swsusp: move resume before mounting root [diff against vanilla 2.4.9] Pavel Machek
[not found] ` <200109260602.f8Q62TM420328@saturn.cs.uml.edu>
2001-09-26 8:19 ` Pavel Machek
2001-09-27 3:02 ` Albert D. Cahalan
2001-09-27 4:29 ` Andreas Dilger
2001-09-27 4:51 ` Tim Connors
2001-09-29 22:23 ` Pavel Machek
2001-09-27 14:34 ` swsusp: move " Pavel Machek
2001-09-28 3:56 ` Albert D. Cahalan
2001-09-28 20:40 ` Pavel Machek
2001-09-29 7:55 ` Albert D. Cahalan
2001-09-29 8:40 ` Pavel Machek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox