Hello, Thanks for your feedback. Le Thu, 12 Nov 2009 21:52:02 +0100, "Rafael J. Wysocki" <rjw@xxxxxxx> a écrit : > The userspace interface doesn't really allow you to write to a file. > You can write into the area the file occupies on the partition, but > you can't use the filesystem code for the actual writing. At least > you shouldn't do that. Ah. But it seems to work fairly nicely. Why can't the filesystem code could be used to store the resume image ? Note that my file is stored in a separate partition, fully dedicated to storing the resume file and mounted only at very specific points in the system lifetime. I'm doing the following things upon suspend : * SNAPSHOT_FREEZE * SNAPSHOT_ATOMIC_SNAPSHOT, which according to my understanding is making a snapshot of the memory inside a copy, so that once the snapshot is made, the kernel can be used as usual. * SNAPSHOT_UNFREEZE * Mount my YAFFS2 filesystem that will contain the resume image * Read /dev/snapshot and write the result to a file in the YAFFS2 filesystem * Unmount the YAFFS2 filesystem * Shutdown On resume, I'm doing the following operations in a /init application in the kernel initramfs : * Mount the YAFFS2 filesystem * Open the resume image and the /dev/snapshot device * Read the image from the file and write it to /dev/snapshot * Unmount the YAFFS2 filesystem * SNAPSHOT_FREEZE * SNAPSHOT_ATOMIC_RESTORE And done. So my YAFFS2 filesystem is *never* mounted before taking the snapshot or before beginning to restore the snapshot. Isn't this safe ? > swsusp_shrink_memory() is used by both the in-kernel code and the > userspace code more-or-less in the same way, so it looks strange. > How much memory is there in the system? Not that much: # free total used free shared buffers Mem: 26116 11264 14852 0 0 Swap: 0 0 0 Total: 26116 11264 14852 (This is the figure without the heavy applications loaded) > s2disk allocates a few buffers for itself, but I'm not sure if that > matters at all. > > Which version of s2disk do you use, do you have encryption enabled in > s2disk? I'm not using s2disk at all, so no encryption, nothing. I implemented my own suspend/resume applications (I can show the source code if needed, even though the code is pretty ugly). BTW, I've done a little test: compress with LZO each page that needs to be saved as part of the snapshot. Instead of 11419648 bytes in my case, only 5725951 bytes (half!) would be needed to store the snapshot in memory, reducing significantly the memory pressure caused by the allocation of the pages needed to store the snapshot. Has this already been considered ? Thanks again for the feedback, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm