git: kernel - Add swap block allocation iterator
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Mar 2 17:17:03 PST 2013
commit 7fa8d3ba49288bc90bd4d3f654520d236f8a999b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Mar 2 17:03:17 2013 -0800
kernel - Add swap block allocation iterator
* Instead of allocating the first available block the swap allocator
now has an iterator and attempts to allocate a block near the iterator.
On failure the iterator resets to the beginning of swap (0) and it
tries again.
* This theoretically should result in more linearized allocations of
swap space, allowing the pageout daemon to flush memory to a
hard-drive-based swap at much higher bandwidth.
* Greatly improves poudriere when using stressful memory parameters,
at least in the first pass.
* There are still some obvious linearity issues that can occur once
the iterator recycles back to 0 which need to be addressed. However,
this change is certainly not going to be worse and should
prevent degenerative swap situations where performance winds up
being permanently bad due to fragmented data laid down earlier that
is never paged back into memory.
Summary of changes:
sys/kern/subr_blist.c | 53 +++++++++++++++++++++++++++++++++++++++------------
sys/sys/blist.h | 1 +
sys/vm/swap_pager.c | 11 ++++++++++-
3 files changed, 52 insertions(+), 13 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7fa8d3ba49288bc90bd4d3f654520d236f8a999b
--
DragonFly BSD source repository
More information about the Commits
mailing list