"Rafael J. Wysocki" <rjw at sisk.pl> writes: > > The code that restores the memory state from the suspend image in step > (11) also uses the kernel identity mapping to address memory, so it cannot > access highmem pages on i386, but it practically has no other limitations as > far as the image size is concerned. In other words, it would be possible to > restore suspend images as big as 80% or even 90% of RAM, or the normal zone > on i386, if the 'snapshotting' code were able to create them. Why can't you just kmap or ioremap them as needed and pass the pfns/struct page * for IO? > The code that performs steps (5) and (11) of the suspend-resume cycle is > quite robust and there is only one known problem with it, which seems to > be x86_64-specific. Namely, on x86_64 machines with more than 2 GB of RAM > there are memory gaps and/or reserved memory areas between the 2nd and 3rd > Gbyte of physical memory and swsusp tries to save these areas as though > they were RAM which leads to oopses. This issue is now being worked on. I guess we could just borrow a new struct page flags bit again and set it during memory setup. That would fix your problem I guess. Should be fairly easy to do. Let me know if you need it. -Andi