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