git: kernel - Remove most buffer_map contention on 64-bit systems
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Nov 6 18:23:04 PST 2013
commit 80e89abc73b34fc5e6520edc451a9f132bfac576
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Wed Nov 6 17:55:06 2013 -0800
kernel - Remove most buffer_map contention on 64-bit systems
* Set BKVASIZE to MAXBSIZE (65536) on 64-bit systems. This has the effect
of always reserving a maximal amount of KVM for each buffer cache buffer.
* The change removes most buffer_map interactions once the system caches
have stabilized.
* The change removes the need to defragment the buffer cache.
* Significant performance improvement for HAMMER1 and HAMMER2 which use
larger buffers and were hitting degenerate fragmentation issues before
this change.
* But also results in lower buffer data density when buffering data for
smaller files, so may have a slight detrimental effect on UFS and on
the amount of time dirty data can be cached before being flushed to
disk.
* NOTE: The 64K limit is for normal buffers and is unrelated to the
physical cluster buffer (pbuf) limit of 128KB (MAXPHYS).
Summary of changes:
sys/cpu/i386/include/param.h | 11 +++++++++--
sys/cpu/x86_64/include/param.h | 4 ++--
sys/kern/vfs_bio.c | 9 +++++++--
sys/platform/pc64/x86_64/machdep.c | 12 +++++-------
sys/sys/param.h | 13 +++++++++----
5 files changed, 32 insertions(+), 17 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/80e89abc73b34fc5e6520edc451a9f132bfac576
--
DragonFly BSD source repository
More information about the Commits
mailing list