diff options
author | Pádraig Brady <P@draigBrady.com> | 2010-07-20 18:51:01 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2010-07-22 01:04:47 +0100 |
commit | 47076e3c7c22fc7557f388ad3d47228b922da71e (patch) | |
tree | 94f785d628a11e6c786f5aa85daa88d2a672b2fe /src/paste.c | |
parent | 63b5e8164847285f5d3c1dbc9f7c41ad8c17ccc6 (diff) | |
download | coreutils-47076e3c7c22fc7557f388ad3d47228b922da71e.tar.xz |
provide POSIX_FADV_SEQUENTIAL hint to appropriate utils
Following on from commit dae35bac, 01-03-2010,
"sort: inform the system about our input access pattern"
apply the same hint to all appropriate utils.
This currently gives around a 5% speedup for reading
large files from fast flash devices on GNU/Linux.
* src/base64.c: Call fadvise (..., FADVISE_SEQUENTIAL);
* src/cat.c: Likewise.
* src/cksum.c: Likewise.
* src/comm.c: Likewise.
* src/cut.c: Likewise.
* src/expand.c: Likewise.
* src/fmt.c: Likewise.
* src/fold.c: Likewise.
* src/join.c: Likewise.
* src/md5sum.c: Likewise.
* src/nl.c: Likewise.
* src/paste.c: Likewise.
* src/pr.c: Likewise.
* src/ptx.c: Likewise.
* src/shuf.c: Likewise.
* src/sum.c: Likewise.
* src/tee.c: Likewise.
* src/tr.c: Likewise.
* src/tsort.c: Likewise.
* src/unexpand.c: Likewise.
* src/uniq.c: Likewise.
* src/wc.c: Likewise, unless we don't actually read().
Diffstat (limited to 'src/paste.c')
-rw-r--r-- | src/paste.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/paste.c b/src/paste.c index 36e1cfbc0..dbbf52df5 100644 --- a/src/paste.c +++ b/src/paste.c @@ -42,6 +42,7 @@ #include <sys/types.h> #include "system.h" #include "error.h" +#include "fadvise.h" #include "quotearg.h" /* The official name of this program (e.g., no `g' prefix). */ @@ -211,6 +212,7 @@ paste_parallel (size_t nfiles, char **fnamptr) error (EXIT_FAILURE, errno, "%s", fnamptr[files_open]); else if (fileno (fileptr[files_open]) == STDIN_FILENO) opened_stdin = true; + fadvise (fileptr[files_open], FADVISE_SEQUENTIAL); } } @@ -367,6 +369,7 @@ paste_serial (size_t nfiles, char **fnamptr) ok = false; continue; } + fadvise (fileptr, FADVISE_SEQUENTIAL); } delimptr = delims; /* Set up for delimiter string. */ |