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....
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
> [email protected]
> http://lists.osdl.org/mailman/listinfo/linux-pm
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]