public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Jiri Slaby <jirislaby@gmail.com>
Cc: linux-pm@lists.osdl.org,
	Linux kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.21-rc5: swsusp: Not enough free memory
Date: Mon, 2 Apr 2007 23:18:27 +0200	[thread overview]
Message-ID: <200704022318.28451.rjw@sisk.pl> (raw)
In-Reply-To: <4610BDD7.5070201@gmail.com>

On Monday, 2 April 2007 10:24, Jiri Slaby wrote:
> Rafael J. Wysocki napsal(a):
> >>> On Thursday, 29 March 2007 09:44, Jiri Slaby wrote:
> >>>> swsusp: critical section:
> >>>> swsusp: Need to copy 131380 pages
> >>>> swsusp: Not enough free memory
> >>>> Error -12 suspending
> >>>> Enabling non-boot CPUs ...
> 
> > As a workaround, you can try to change the initial image size so that it's
> > smaller than a half of the RAM size.  If that works, I'd like to send you a
> > debug patch, if you don't mind. :-)
> 
> Yes, post it.

Appended.  Please send me the dmesg output from after a failing suspend
(or in case it doesn't fail, from after the first one).

> # cat /sys/power/image_size
> 524288000
> # echo disk >/sys/power/state
> error
> # echo disk >/sys/power/state
> error
> # echo $((400*1024*1024)) > /sys/power/image_size
> # echo disk >/sys/power/state
> ok
> # dmesg|grep Memory:
> Memory: 1027160k/1048256k available (2559k kernel code, 20348k reserved,
> 1114k data, 188k init)
> 
> I don't undestand it too much, but can't be shared video memory involved
> somehow?

No, I don't think so.  There probably is a bug in swsusp_shrink_memory().

Greetings,
Rafael

---
---
 kernel/power/snapshot.c |    2 +-
 kernel/power/swsusp.c   |   10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

Index: linux-2.6.21-rc5/kernel/power/snapshot.c
===================================================================
--- linux-2.6.21-rc5.orig/kernel/power/snapshot.c
+++ linux-2.6.21-rc5/kernel/power/snapshot.c
@@ -1093,7 +1093,7 @@ static int enough_free_mem(unsigned int 
 	}
 
 	nr_pages += count_pages_for_highmem(nr_highmem);
-	pr_debug("swsusp: Normal pages needed: %u + %u + %u, available pages: %u\n",
+	printk("swsusp: Normal pages needed: %u + %u + %u, available pages: %u\n",
 		nr_pages, PAGES_FOR_IO, meta, free);
 
 	return free > nr_pages + PAGES_FOR_IO + meta;
Index: linux-2.6.21-rc5/kernel/power/swsusp.c
===================================================================
--- linux-2.6.21-rc5.orig/kernel/power/swsusp.c
+++ linux-2.6.21-rc5/kernel/power/swsusp.c
@@ -227,22 +227,26 @@ int swsusp_shrink_memory(void)
 		size = count_data_pages() + PAGES_FOR_IO;
 		tmp = size;
 		size += highmem_size;
-		for_each_zone (zone)
+		for_each_zone (zone) {
+			printk("Normal pages needed: %lu\n", tmp);
+			printk("Highmem pages needed: %lu\n", highmem_size);
 			if (populated_zone(zone)) {
+				tmp += snapshot_additional_pages(zone);
 				if (is_highmem(zone)) {
 					highmem_size -=
 					zone_page_state(zone, NR_FREE_PAGES);
 				} else {
 					tmp -= zone_page_state(zone, NR_FREE_PAGES);
 					tmp += zone->lowmem_reserve[ZONE_NORMAL];
-					tmp += snapshot_additional_pages(zone);
 				}
 			}
+		}
 
 		if (highmem_size < 0)
 			highmem_size = 0;
 
 		tmp += highmem_size;
+		printk("Pages needed (total): %lu\n", tmp);
 		if (tmp > 0) {
 			tmp = __shrink_memory(tmp);
 			if (!tmp)
@@ -252,7 +256,7 @@ int swsusp_shrink_memory(void)
 			tmp = __shrink_memory(size - (image_size / PAGE_SIZE));
 			pages += tmp;
 		}
-		printk("\b%c", p[i++%4]);
+		/*printk("\b%c", p[i++%4]);*/
 	} while (tmp > 0);
 	do_gettimeofday(&stop);
 	printk("\bdone (%lu pages freed)\n", pages);

  reply	other threads:[~2007-04-02 21:18 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-29  7:44 2.6.21-rc5: swsusp: Not enough free memory Jiri Slaby
2007-03-29 14:39 ` Rafael J. Wysocki
2007-03-29 14:39   ` Jiri Slaby
2007-04-01 18:17   ` Jiri Slaby
2007-04-01 19:23     ` Rafael J. Wysocki
2007-04-02  8:24       ` Jiri Slaby
2007-04-02 21:18         ` Rafael J. Wysocki [this message]
2007-04-03  7:37           ` Jiri Slaby
2007-04-03 10:50             ` Rafael J. Wysocki
2007-04-03 19:59               ` Jiri Slaby
2007-04-09 20:07               ` Jiri Slaby
2007-04-09 20:20                 ` Rafael J. Wysocki
2007-04-11  7:36                   ` Jiri Slaby
2007-04-11  9:55                     ` Rafael J. Wysocki
2007-04-11 10:45                       ` Jiri Slaby
2007-04-11 14:40                         ` Rafael J. Wysocki
2007-04-11 15:02                           ` Jiri Slaby
2007-04-12 21:36                             ` Rafael J. Wysocki
2007-04-13 10:14                               ` Jiri Slaby
2007-04-13 12:00                                 ` Rafael J. Wysocki
2007-04-13 12:21                                   ` Nigel Cunningham
2007-04-13 20:41                                     ` [RFD] swsusp problem: Drivers allocate much memory during suspend (was: Re: 2.6.21-rc5: swsusp: Not enough free memory) Rafael J. Wysocki
2007-04-13 21:34                                       ` Nigel Cunningham
2007-04-13 21:40                                       ` [RFD] swsusp problem: Drivers allocate much memory during suspend Chuck Ebbert
2007-04-13 22:10                                       ` [RFD] swsusp problem: Drivers allocate much memory during suspend (was: Re: 2.6.21-rc5: swsusp: Not enough free memory) Pavel Machek
2007-04-13 22:34                                         ` Nigel Cunningham
2007-04-13 22:38                                           ` Pavel Machek
2007-04-13 22:43                                             ` Nigel Cunningham
2007-04-13 22:35                                         ` Rafael J. Wysocki
2007-04-13 22:36                                           ` Nigel Cunningham
2007-04-13 22:40                                           ` Pavel Machek
2007-04-13 22:45                                             ` Nigel Cunningham
2007-04-13 22:57                                               ` Rafael J. Wysocki
2007-04-13 23:03                                                 ` Nigel Cunningham
2007-04-14  9:33                                                   ` Rafael J. Wysocki
2007-04-14 22:53                                           ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200704022318.28451.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=jirislaby@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox