From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pavel Machek Subject: Re: [RFC][PATCH -mm 2/5] swsusp: Use memory bitmaps during resume Date: Wed, 9 Aug 2006 13:49:42 +0200 Message-ID: <20060809114942.GS3308@elf.ucw.cz> References: <200608091152.49094.rjw@sisk.pl> <200608091204.36186.rjw@sisk.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <200608091204.36186.rjw@sisk.pl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.osdl.org Errors-To: linux-pm-bounces@lists.osdl.org To: "Rafael J. Wysocki" Cc: Linux PM , LKML List-Id: linux-pm@vger.kernel.org Hi! > Make swsusp use memory bitmaps to store its internal information during t= he > resume phase of the suspend-resume cycle. > = > If the pfns of saveable pages are saved during the suspend phase instead = of > the kernel virtual addresses of these pages, we can use them during the r= esume > phase directly to set the corresponding bits in a memory bitmap. Then, t= his > bitmap is used to mark the page frames corresponding to the pages that we= re > saveable before the suspend (aka "unsafe" page frames). > = > Next, we allocate as many page frames as needed to store the entire suspe= nd > image and make sure that there will be some extra free "safe" page frames= for > the list of PBEs constructed later. Subsequently, the image is loaded an= d, > if possible, the data loaded from it are written into their "original" pa= ge frames > (ie. the ones they had occupied before the suspend). The image data that > cannot be written into their "original" page frames are loaded into "safe= " page > frames and their "original" kernel virtual addresses, as well as the addr= esses > of the "safe" pages containing their copies, are stored in a list of PBEs. > Finally, the list of PBEs is used to copy the remaining image data into t= heir > "original" page frames (this is done atomically, by the architecture-depe= ndent > parts of swsusp). > = > Signed-off-by: Rafael J. Wysocki ACK. If we get bitmap code we may as well use it. Should wait in -mm for a while. > @@ -53,7 +40,7 @@ static inline void pm_restore_console(vo > static inline int software_suspend(void) > { > printk("Warning: fake suspend called\n"); > - return -EPERM; > + return -ENOSYS; > } > #endif /* CONFIG_PM */ > = Heh, yes, it is right.. it is also totally unrelated and changes userland interface ;-)))... which is probably okay here. But separate would be nice. Pavel -- = (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html