Messages in this thread Patch in this message | | | Date | Sat, 25 Feb 2006 00:55:48 +0100 | From | Pavel Machek <> | Subject | Re: Which is simpler? (Was Re: [Suspend2-devel] Re: [ 00/10] [Suspend2] Modules support.) |
| |
Hi!
> > I did try shrink_all_memory() five times, with .5 second delay between > > them, and it freed more memory at later tries. > > I wonder if the delays are essential or if so, whether they may be shorter > than .5 sec.
I was using this with some success... (Warning, against old kernel). But, as I said, I consider it ugly, and it would be better to fix shrink_all_memory. Pavel
diff --git a/kernel/power/disk.c b/kernel/power/disk.c --- a/kernel/power/disk.c +++ b/kernel/power/disk.c @@ -84,20 +84,26 @@ static int in_suspend __nosavedata = 0; static void free_some_memory(void) { - unsigned int i = 0; - unsigned int tmp; - unsigned long pages = 0; - char *p = "-\\|/"; - - printk("Freeing memory... "); - while ((tmp = shrink_all_memory(10000))) { - pages += tmp; - printk("\b%c", p[i++ % 4]); + int i; + for (i=0; i<5; i++) { + int i = 0, tmp; + long pages = 0; + char *p = "-\\|/"; + + printk("Freeing memory... "); + while ((tmp = shrink_all_memory(10000))) { + pages += tmp; + printk("\b%c", p[i]); + i++; + if (i > 3) + i = 0; + } + printk("\bdone (%li pages freed)\n", pages); + msleep_interruptible(200); } - printk("\bdone (%li pages freed)\n", pages); } - +/* FIXME: Call it when appropriate */ static inline void platform_finish(void) { if (pm_disk_mode == PM_DISK_PLATFORM) { -- Web maintainer for suspend.sf.net (www.sf.net/projects/suspend) wanted... - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |