git: kernel - Fix some clustering issues
dillon at crater.dragonflybsd.org
Wed Jun 8 16:01:27 PDT 2016
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
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
* 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(-)
DragonFly BSD source repository
More information about the Commits