On Sat, 2010-07-31 at 09:40 +1000, Nigel Cunningham wrote: > How about vmallocing the cmp as well? That would greatly reduce the > potential for page allocation failures while still letting you use an > order 6 area. In save_image(), that worked. In load_image() it would cause a crash (something about kernel not being able to satisfy paging request). So, I just made it __get_free_pages() instead. But, yeah good point. Keep in mind that I have absolutely no idea how kernel memory allocation works. I'm kinda coping and pasting code and hoping it doesn't crash :-) > > PS. I guess with this, read_sync can simply disappear as well. > > I haven't looked at the code for a while, but it might still be needed > for the header? I know that in TuxOnIce, I need to read the first page > synchronously when bootstrapping reading the image (can't read the next > page until you know where it is, and its location is on the first page). > Since swsusp uses those index pages, I think it would have the same > issue - they would need to be read before it could read the following > pages. Of course I'm going off memory :) I think it can go, because the header is already read/written with &bio set to NULL (sync read). See patch to remove read_sync. -- Bojan