Re: Possible Swapfile bug

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

 



On 03/22/2012 01:46 PM, Andrew Morton wrote:
On Thu, 22 Mar 2012 10:24:22 -0600
Jason Mattax<jmattax@xxxxxxxxxxxxxxx>  wrote:

Swapon very slow with swapfiles.

After upgrading the kernel my swap file loads very slowly, while a swap
partition is unaffected. With the newer kernel (2.6.33.1) I get

# time swapon -v /var/swapfile
swapon on /var/swapfile
swapon: /var/swapfile: found swap signature: version 1, page-size 4,
same byte order
swapon: /var/swapfile: pagesize=4096, swapsize=6442450944,
devsize=6442450944

real    4m35.355s
user    0m0.001s
sys    0m1.786s

while with the older kernel (2.6.32.27) I get
# time swapon -v /var/swapfile
swapon on /var/swapfile
swapon: /var/swapfile: found swap signature: version 1, page-size 4,
same byte order
swapon: /var/swapfile: pagesize=4096, swapsize=6442450944,
devsize=6442450944

real    0m1.158s
user    0m0.000s
sys     0m0.876s

this stays true even for new swapfiles I create with dd.

the file is on an OCZ Vertex2 SSD.
Probably the vertex2 discard problem.

We just merged a patch which will hopefully fix it:

--- a/mm/swapfile.c~swap-dont-do-discard-if-no-discard-option-added
+++ a/mm/swapfile.c
@@ -2103,7 +2103,7 @@ SYSCALL_DEFINE2(swapon, const char __use
  			p->flags |= SWP_SOLIDSTATE;
  			p->cluster_next = 1 + (random32() % p->highest_bit);
  		}
-		if (discard_swap(p) == 0&&  (swap_flags&  SWAP_FLAG_DISCARD))
+		if ((swap_flags&  SWAP_FLAG_DISCARD)&&  discard_swap(p) == 0)
  			p->flags |= SWP_DISCARDABLE;
  	}


But Hugh doesn't like it and won't tell us why :)


Patch worked like a charm for me, thanks.

--
Jason Mattax
575-418-1791
jmattax@xxxxxxxxxxxxxxx

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]