aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2012-06-19 18:42:24 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2012-06-19 18:42:24 +0000
commitcd4ecf3cd26d22549af484b7ac84f6a9c8dae2d8 (patch)
tree141cada499e4a3898e0f0daa125723e411568387 /Makefile.inc1
parentbf7f8bd30ad55afd2df96cd9faf1e6bde87615c8 (diff)
downloadsrc-cd4ecf3cd26d22549af484b7ac84f6a9c8dae2d8.tar.gz
src-cd4ecf3cd26d22549af484b7ac84f6a9c8dae2d8.zip
Further refine the implementation of POSIX_FADV_NOREUSE.
First, extend the changes in r230782 to better handle the common case of using NOREUSE with sequential reads. A NOREUSE file descriptor will now track the last implicit DONTNEED request it made as a result of a NOREUSE read. If a subsequent NOREUSE read is adjacent to the previous range, it will apply the DONTNEED request to the entire range of both the previous read and the current read. The effect is that each read of a file accessed sequentially will apply the DONTNEED request to the entire range that has been read. This allows NOREUSE to properly handle misaligned reads by flushing each buffer to cache once it has been completely read. Second, apply the same changes made to read(2) by r230782 and this change to writes. This provides much better performance in the sequential write case as it allows writes to still be clustered. It also provides much better performance for misaligned writes. It does mean that NOREUSE will be generally ineffective for non-sequential writes as the current implementation relies on a future NOREUSE write's implicit DONTNEED request to flush the dirty buffer from the current write. MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=237274
Diffstat (limited to 'Makefile.inc1')
0 files changed, 0 insertions, 0 deletions