git: kernel - Fix some clustering issues
Matthew Dillon
dillon at crater.dragonflybsd.org
Wed Jun 8 16:01:27 PDT 2016
commit cb1fa82f72b10f6f4cdab274c21edf668dd4d068
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Wed Jun 8 15:53:31 2016 -0700
kernel - Fix some clustering issues
* Change B_RAM functionality. We were previously setting B_RAM
on the last async buffer and doing some cruft to probe ahead.
Instead, set B_RAM in the middle and use a simple heuristic to
estimate where to pick-up the read-ahead again.
* Clean-up the read-ahead. When the caller of cluster_read() asks for
read-ahead, we do the read-ahead whether or not BMAP says it is
contiguous. All a failed BMAP does now is prevent cluster_rbuild()
from getting called (that is, it doesn't try to gang multiple buffers
together).
When thinking about this, the logical buffer cache sequential heuristic
is telling us that userland is going to read the data, so why stop and
then have to stall on an I/O read later when userland actually reads
the data?
* This will improve pipelining for both hammer1 and hammer2.
Summary of changes:
sys/kern/vfs_bio.c | 9 +-
sys/kern/vfs_cluster.c | 254 ++++++++++++++++++++++++++++++++-----------------
2 files changed, 175 insertions(+), 88 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cb1fa82f72b10f6f4cdab274c21edf668dd4d068
--
DragonFly BSD source repository
More information about the Commits
mailing list