diff options
author | Pádraig Brady <P@draigBrady.com> | 2011-02-22 21:14:00 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2011-03-05 02:33:53 +0000 |
commit | 5f3115535b32a9c0cc5aee5cf5b4001f684ad56e (patch) | |
tree | 601be66ec898ecbd0276d7258191c5468c775a6b /doc | |
parent | 433a7c614f0fbce3ba3346409af847d82670d284 (diff) | |
download | coreutils-5f3115535b32a9c0cc5aee5cf5b4001f684ad56e.tar.xz |
dd: add a flag to discard cached data
* src/dd.c (FFS_MASK): A new macro (Find First Set) refactored
from the following enum as it's now used twice.
(usage): Mention the new 'nocache' flag.
(cache_round): A new function to help ignore requests
to drop cache, that are less than page_size.
(invalidate_cache): A new function to call posix_fadvise()
with the appropriate offset and length. Note we don't
use fdadvise() so we can detect errors when count=0.
(dd_copy): Call invalidate_cache() for the portions read.
(iwrite): Likewise for the portions written.
(main): Call invalidate_cache for page_size slop or
for full file when count=0.
* cfg.mk (sc_dd_O_FLAGS): Adjust to pass.
* doc/coreutils.texi (dd invocation): Describe the 'nocache' flag,
and give some examples of how it can be used.
* tests/dd/nocache: A new test.
* tests/Makefile.am: Reference the new test.
* NEWS: Mention the new feature.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/coreutils.texi | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/doc/coreutils.texi b/doc/coreutils.texi index ae3712dba..8dd1ed8ba 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -8174,6 +8174,31 @@ last-access and last-modified time) is not necessarily synchronized. @cindex synchronized data and metadata I/O Use synchronized I/O for both data and metadata. +@item nocache +@opindex nocache +@cindex discarding file cache +Discard the data cache for a file. +When count=0 all cache is discarded, +otherwise the cache is dropped for the processed +portion of the file. Also when count=0 +failure to discard the cache is diagnosed +and reflected in the exit status. +Here as some usage examples: + +@example +# Advise to drop cache for whole file +dd if=ifile iflag=nocache count=0 + +# Ensure drop cache for the whole file +dd of=ofile oflag=nocache conv=notrunc,fdatasync count=0 + +# Drop cache for part of file +dd if=ifile iflag=nocache skip=10 count=10 of=/dev/null + +# Stream data using just the read-ahead cache +dd if=ifile of=ofile iflag=nocache oflag=nocache +@end example + @item nonblock @opindex nonblock @cindex nonblocking I/O |