From 6ceb7ef87fdf138f0553f32a95567920cc51ae1a Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Mon, 11 Jan 2016 22:31:45 +0000 Subject: doc: suggest dd "sync" flag to maximize "nocache" effectiveness doc/coreutils.texi (dd invocation): Add oflag=sync to the streaming example. Also reference the "direct" flag. Mention this is only a request to the system. * src/dd.c (usage): Mention the "sync" flag along with "nocache". Also mention that it's only a request to drop the cache. * THANKS.in: Add reporter Francois Rigault. --- THANKS.in | 1 + doc/coreutils.texi | 17 ++++++++++++----- src/dd.c | 3 ++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/THANKS.in b/THANKS.in index 5c49006a2..4593f6c0d 100644 --- a/THANKS.in +++ b/THANKS.in @@ -207,6 +207,7 @@ Florian Schlichting fschlich@cis.fu-berlin.de Florin Iucha fiucha@hsys.mic.ro Francesco Montorsi fr_m@hotmail.com François Pinard pinard@iro.umontreal.ca +François Rigault rigault.francois@gmail.com Frank Adler fadler@allesklar.de Frank T Lofaro ftlofaro@snooks.Egr.UNLV.EDU Fred Fish fnf@ninemoons.com diff --git a/doc/coreutils.texi b/doc/coreutils.texi index eb5159a44..01791be5b 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -8677,12 +8677,18 @@ 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, +Request to discard the system data cache for a file. +When count=0 all cached data for the file is specified, otherwise the cache is dropped for the processed -portion of the file. Also when count=0 +portion of the file. Also when count=0, failure to discard the cache is diagnosed and reflected in the exit status. + +Note data that is not already persisted to storage will not +be discarded from cache, so note the use of the ``sync'' options +in the examples below, which are used to maximize the +effectiveness of the @samp{nocache} flag. + Here are some usage examples: @example @@ -8695,8 +8701,9 @@ 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 +# Stream data using just the read-ahead cache. +# See also the @samp{direct} flag. +dd if=ifile of=ofile iflag=nocache oflag=nocache,sync @end example @item nonblock diff --git a/src/dd.c b/src/dd.c index d5d01f38a..440950ab7 100644 --- a/src/dd.c +++ b/src/dd.c @@ -632,7 +632,8 @@ Each FLAG symbol may be:\n\ fputs (_(" noatime do not update access time\n"), stdout); #if HAVE_POSIX_FADVISE if (O_NOCACHE) - fputs (_(" nocache discard cached data\n"), stdout); + fputs (_(" nocache Request to drop cache. See also oflag=sync\n"), + stdout); #endif if (O_NOCTTY) fputs (_(" noctty do not assign controlling terminal from file\n"), -- cgit v1.2.3-54-g00ecf