git: kernel - Fix performance issue due to buffer fragmentation
dillon at crater.dragonflybsd.org
Thu Feb 21 22:41:05 PST 2013
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Feb 21 22:32:11 2013 -0800
kernel - Fix performance issue due to buffer fragmentation
* Systems with a lot of memory have very large buffer pools. Defragmenting
these pools can be expensive. Often the buffer_map becomes full well
before the bufspace actually hits its limits. Filesystems such as HAMMER
which use large buffer sizes (64K) are more likely to cause the problem.
The result is extremely bad I/O performance for data not in the buffer
cache which requires a new buffer to be instantiated.
* To solve this we double the size of the buffer_map's KVA area on
64-bit systems while leaving the maximum buffer space allowed the
same. The larger virtual space greatly reduces KVA allocation
failures due to fragmentation.
* This solves significant performance issues on monster with its 64G
of ram, but should improve performance on any 64-bit system by
reducing buffer cache defrag iterations.
* Also fix a possible intermediate value overflow in vlrureclaim().
Summary of changes:
sys/kern/vfs_mount.c | 8 ++++++--
sys/platform/pc64/x86_64/machdep.c | 10 ++++++++--
sys/platform/vkernel64/x86_64/autoconf.c | 4 ++--
3 files changed, 16 insertions(+), 6 deletions(-)
DragonFly BSD source repository
More information about the Commits