From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: linux-pm@lists.osdl.org
Cc: Pavel Machek <pavel@ucw.cz>, "Yu, Luming" <luming.yu@intel.com>,
Andrew Morton <akpm@zip.com.au>,
ACPI devel <acpi-devel@lists.sourceforge.net>,
Linux Kernel List <linux-kernel@vger.kernel.org>
Subject: Re: [linux-pm] Re: swsusp: Not enough free pages
Date: Mon, 6 Jun 2005 19:02:33 +0200 [thread overview]
Message-ID: <200506061902.34304.rjw@sisk.pl> (raw)
In-Reply-To: <20050606103936.GA2520@elf.ucw.cz>
Hi,
On Monday, 6 of June 2005 12:39, Pavel Machek wrote:
> Hi!
>
> > > > > So far, yes. I just tried 2 times.
> > > >
> > > > always. (I check that swap dev is on)
> > > >
> > > > Sometimes, my ia32 laptop free 0 pages too.
> > > > I think we should always free some pages
> > > > from various caches.
> > >
> > > Try this hack... it is basically mm problem I don't know how to fix,
> > > but this seems to help.
> > > Pavel
> >
> > Thanks Pavel, this hack works.
> > ..
> > Freeing memory... ^Hdone (0 pages freed)
> > Freeing memory... ^H-^Hdone (4636 pages freed)
> > Freeing memory... ^Hdone (0 pages freed)
> > Freeing memory... ^H-^Hdone (914 pages freed)
> > Freeing memory... ^Hdone (0 pages freed)
> > Freezing CPUs (at 0)...ok
> >
> > Any mm guru know how to fix this?
>
> Andrew, can you help? It seems free_some_memory does not really free
> all reclaimable memory in recent kernels. In fact, it likes to free
> nothing on first invocations....
Actually, on (my) x86-64 it seems to work. It frees even more memory than
I'd like it to (there's 80-90% of RAM free after it's finished). ;-)
If I had to guess, I'd say the problem is related to PAGE_SIZE != 4096.
Greets,
Rafael
> Pausing and trying few times helps, but is *very* ugly.
> Pavel
>
> > > Index: kernel/power/disk.c
> > > ===================================================================
> > > --- 805a02ec2bcff3671d7b1e701bd1981ad2fa196c/kernel/power/disk.c
> > > (mode:100644) +++
> > > ecd8559cc08319bb16a42aac06cf7d664157643a/kernel/power/disk.c (mode:100644)
> > > @@ -88,23 +92,25 @@
> > >
> > > 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]);
> > > - i++;
> > > - if (i > 3)
> > > - i = 0;
> > > + 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);
> > > }
> > >
> > > -
> > > static inline void platform_finish(void)
> > > {
> > > if (pm_disk_mode == PM_DISK_PLATFORM) {
> >
>
> > _______________________________________________
> > linux-pm mailing list
> > linux-pm@lists.osdl.org
> > http://lists.osdl.org/mailman/listinfo/linux-pm
>
>
> --
>
--
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
-- Lewis Carroll "Alice's Adventures in Wonderland"
next prev parent reply other threads:[~2005-06-06 17:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3ACA40606221794F80A5670F0AF15F84041AC1A8@pdsmsx403>
[not found] ` <20050530091419.GA7922@linux.sh.intel.com>
[not found] ` <20050530150157.GC2207@elf.ucw.cz>
2005-06-06 6:39 ` Yu, Luming
2005-06-06 10:39 ` Pavel Machek
2005-06-06 17:02 ` Rafael J. Wysocki [this message]
2005-06-06 17:14 ` Pavel Machek
2005-06-06 21:46 ` Rafael J. Wysocki
2005-06-06 21:58 ` Pavel Machek
2005-06-07 10:39 ` Rafael J. Wysocki
2005-06-08 15:02 ` Rafael J. Wysocki
2005-06-08 16:27 ` Pavel Machek
2005-06-08 21:42 ` Rafael J. Wysocki
2005-06-08 22:03 ` Pavel Machek
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=200506061902.34304.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=acpi-devel@lists.sourceforge.net \
--cc=akpm@zip.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.osdl.org \
--cc=luming.yu@intel.com \
--cc=pavel@ucw.cz \
/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
all inboxes | Powered by JetHome®