summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2013-11-07 11:57:09 +0000
committerPádraig Brady <P@draigBrady.com>2013-11-08 13:39:35 +0000
commitc2eaef2f57153a22b6dc075b1adc9fde1a4eb7bd (patch)
tree746f4aab9dbb815268574b59ea229a7777f69c47
parentc93d5b4aa7f675dabaebf5e4ee9583162e4c977d (diff)
downloadcoreutils-c2eaef2f57153a22b6dc075b1adc9fde1a4eb7bd.tar.xz
shred: increase I/O block size for periodic pattern case
* src/shred.c (dopass): In the periodic pattern case increase the I/O block size from 12KiB to 60KiB (also a multiple of 3 and 4096). * NEWS: Adjust accordingly.
-rw-r--r--NEWS2
-rw-r--r--src/shred.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 79665ac8b..7028c0d69 100644
--- a/NEWS
+++ b/NEWS
@@ -97,7 +97,7 @@ GNU coreutils NEWS -*- outline -*-
Reservoir sampling is used to limit memory usage based on the number of
outputs, rather than the number of inputs.
- shred increases write block size from 12KiB to 64KiB when possible,
+ shred increases the default write block size from 12KiB to 64KiB
to align with other utilities and reduce the system call overhead.
split --line-bytes=SIZE, now only allocates memory as needed rather
diff --git a/src/shred.c b/src/shred.c
index 98dd8726c..6ff8322c9 100644
--- a/src/shred.c
+++ b/src/shred.c
@@ -380,7 +380,7 @@ dopass (int fd, char const *qname, off_t *sizep, int type,
/* Fill pattern buffer. Aligning it to a page so we can do direct I/O. */
size_t page_size = getpagesize ();
-#define PERIODIC_OUTPUT_SIZE (12 * 1024)
+#define PERIODIC_OUTPUT_SIZE (60 * 1024)
#define NONPERIODIC_OUTPUT_SIZE (64 * 1024)
verify (PERIODIC_OUTPUT_SIZE % 3 == 0);
size_t output_size = periodic_pattern (type)