[linux-pm] Re: swsusp: Not enough free pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > > 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?

>
> 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) {


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux