From: Pádraig Brady
Date: Thu, 7 Nov 2013 11:57:09 +0000 (+0000) Subject: shred: increase I/O block size for periodic pattern case X-Git-Tag: v8.22~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2eaef2f57153a22b6dc075b1adc9fde1a4eb7bd;p=thirdparty%2Fcoreutils.git 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. --- diff --git a/NEWS b/NEWS index 79665ac8b3..7028c0d69a 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 98dd8726ce..6ff8322c9c 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)