summaryrefslogtreecommitdiff
path: root/benchmarks/bonnie/patches
diff options
context:
space:
mode:
authorgarbled <garbled@pkgsrc.org>2005-03-03 08:58:27 +0000
committergarbled <garbled@pkgsrc.org>2005-03-03 08:58:27 +0000
commit9c5eac92b59ee2566212eb3a9cea8754453d43ad (patch)
treef2374008c6ba9f71bf74d41fca87f6bb1555b49a /benchmarks/bonnie/patches
parent314ae767c78b65bcfc3c38652bbb415e31b2f820 (diff)
downloadpkgsrc-9c5eac92b59ee2566212eb3a9cea8754453d43ad.tar.gz
Apply patches to bonnie from PR 21421 by Greg Woods. Fixes a number of
issues with the program. Bumping pkgrevsision to 1.
Diffstat (limited to 'benchmarks/bonnie/patches')
-rw-r--r--benchmarks/bonnie/patches/patch-ab60
-rw-r--r--benchmarks/bonnie/patches/patch-ac110
2 files changed, 165 insertions, 5 deletions
diff --git a/benchmarks/bonnie/patches/patch-ab b/benchmarks/bonnie/patches/patch-ab
new file mode 100644
index 00000000000..6039d62ee5c
--- /dev/null
+++ b/benchmarks/bonnie/patches/patch-ab
@@ -0,0 +1,60 @@
+# $NetBSD: patch-ab,v 1.7 2005/03/03 08:58:27 garbled Exp $
+
+--- bonnie.1.orig Wed Aug 28 21:42:42 1996
++++ bonnie.1 Thu May 1 17:26:39 2003
+@@ -60,26 +60,43 @@
+ .fi
+ .in
+ ..
+-.TH Bonnie 1 "2.0.6" Textuality
++.TH bonnie 1 "2.0.6" Textuality
+ .SH NAME
+-Bonnie - File system benchmark
++Bonnie \- File system benchmark
+ .SH "SYNOPSIS"
+-.B Bonnie
+-.RI "[-d\ scratch-dir]"
+-.RI "[-html]"
+-.RI "[-m\ machine-label]"
+-.RI "[-s\ size-in-Mb]"
++.B bonnie
++.RI "[\-c\ block-in-bytes]"
++.RI "[\-d\ scratch-dir]"
++.RI "[\-html]"
++.RI "[\-m\ machine-label]"
++.RI "[\-s\ size-in-Mb]"
+ .SH "OPTIONS"
+ .PP
+- -d scratch-dir : Write scratch file in named directory (default: ".")
+- -html : Generate HTML output
+- -m machine-label : use <machine-label> to label report
+- -s size-in-Mb : how many Mb to use for testing (default: 100)
++.TP
++\-c block-in-bytes
++how many bytes to make each block for block I/O (default: 16384)
++.TP
++\-d scratch-dir
++Write scratch file in named directory (default: ".")
++.TP
++\-html
++Generate HTML output
++.TP
++\-m machine-label
++use <machine-label> to label report
++.TP
++\-s size-in-Mb
++how many Mb to use for testing (default: 100)
+ .\"-------
+ .SH "DESCRIPTION"
+ .\"-------
+ .I Bonnie
+-measures the performance of UNIX filesystem operations.
++is a file system benchmark which attempts to study bottlenecks.
++It is named `Bonnie' after Bonnie Raitt, who knows how to use one.
++.PP
++.I Bonnie
++measures the performance of sequential filesystem operations.
++.PP
+ For details, see http://www.textuality.com/bonnie/
+ .\"-------
+ .SH "AUTHOR"
diff --git a/benchmarks/bonnie/patches/patch-ac b/benchmarks/bonnie/patches/patch-ac
index 189c1b3c90a..f851e82bfbd 100644
--- a/benchmarks/bonnie/patches/patch-ac
+++ b/benchmarks/bonnie/patches/patch-ac
@@ -1,13 +1,113 @@
-$NetBSD: patch-ac,v 1.1 2002/06/09 00:24:30 grant Exp $
+$NetBSD: patch-ac,v 1.2 2005/03/03 08:58:27 garbled Exp $
---- bonnie.c.orig Thu Aug 29 02:23:49 1996
-+++ bonnie.c Sun Jun 9 10:20:02 2002
-@@ -458,7 +458,7 @@
+--- bonnie.c.orig Wed Aug 28 12:23:49 1996
++++ bonnie.c Tue Apr 29 23:22:39 2003
+@@ -25,6 +25,7 @@
+
+ #include <unistd.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <sys/types.h>
+@@ -49,7 +50,8 @@
+ #define Seeks (4000)
+ #define UpdateSeek (10)
+ #define SeekProcCount (3)
+-#define Chunk (16384)
++
++unsigned int Chunk = 16384;
+
+ /* labels for the tests, used as an array index */
+ typedef enum
+@@ -91,7 +93,7 @@
+ int argc,
+ char * argv[])
+ {
+- int buf[Chunk / IntSize];
++ int *buf;
+ int bufindex;
+ int chars[256];
+ int child;
+@@ -122,6 +124,8 @@
+ for (next = 1; next < argc; next++)
+ if (strcmp(argv[next], "-d") == 0)
+ dir = argv[++next];
++ else if (strcmp(argv[next], "-c") == 0)
++ Chunk = atoi(argv[++next]);
+ else if (strcmp(argv[next], "-s") == 0)
+ size = atol(argv[++next]);
+ else if (strcmp(argv[next], "-m") == 0)
+@@ -146,7 +150,12 @@
+ /* size is in meg, rounded down to multiple of Chunk */
+ size *= (1024 * 1024);
+ size = Chunk * (size / Chunk);
+- fprintf(stderr, "File '%s', size: %ld\n", name, size);
++ fprintf(stderr, "File '%s', size: %qu\n", name, (u_quad_t) size);
++
++ if (!(buf = (int *) malloc(Chunk / IntSize))) {
++ fprintf(stderr, "Error allocating buffer memory: %s\n", strerror(errno));
++ exit(1);
++ }
+
+ /* Fill up a file, writing it a char at a time with the stdio putc() call */
+ fprintf(stderr, "Writing with putc()...");
+@@ -288,6 +297,7 @@
+ { /* child process */
+
+ /* set up and wait for the go-ahead */
++ close(0); /* From FreeBSD */
+ close(seek_feedback[0]);
+ close(seek_control[1]);
+ newfile(name, &fd, &stream, 0);
+@@ -303,7 +313,13 @@
+ /* loop until we read a 0 ticket back from our parent */
+ while(seek_tickets[0])
+ { /* until Mom says stop */
+- doseek((long) (random() % (size / Chunk)), fd,
++ off_t seekto;
++
++ if (size < ((off_t)1 << 32)) /* From FreeBSD */
++ seekto = random() % (size / Chunk);
++ else
++ seekto = ((off_t)random() << 32 + random()) % (size / Chunk);
++ doseek(seekto, fd,
+ ((lseek_count++ % UpdateSeek) == 0));
+ if (read(seek_control[0], seek_tickets, 1) != 1)
+ io_error("read ticket");
+@@ -413,7 +429,7 @@
+ printf("K/sec %%CPU K/sec %%CPU K/sec %%CPU K/sec %%CPU K/sec ");
+ printf("%%CPU /sec %%CPU\n");
+
+- printf("%-8.8s %4d ", machine, size / (1024 * 1024));
++ printf("%-8.8s %4qu ", machine, (u_quad_t) size / (1024 * 1024));
+ printf("%5d %4.1f %5d %4.1f %5d %4.1f ",
+ (int) (((double) size) / (delta[(int) Putc][Elapsed] * 1024.0)),
+ delta[(int) Putc][CPU] / delta[(int) Putc][Elapsed] * 100.0,
+@@ -458,7 +474,7 @@
usage()
{
fprintf(stderr,
- "usage: Bonnie [-d scratch-dir] [-s size-in-Mb] [-html] [-m machine-label]\n");
-+ "usage: bonnie [-d scratch-dir] [-s size-in-Mb] [-html] [-m machine-label]\n");
++ "usage: bonnie [-c chunk-size] [-d scratch-dir] [-s size-in-Mb] [-html] [-m machine-label]\n");
+ exit(1);
+ }
+
+@@ -529,7 +545,7 @@
+ {
+ char buf[Chunk];
+
+- sprintf(buf, "Bonnie: drastic I/O error (%s)", message);
++ sprintf(buf, "\nBonnie: drastic I/O error (%s)", message);
+ perror(buf);
exit(1);
}
+@@ -568,7 +584,7 @@
+ /* touch a word */
+ buf[((int) random() % (size/IntSize - 2)) + 1]--;
+- if (lseek(fd, (long) probe, 0) != probe)
++ if (lseek(fd, probe, 0) != probe)
+ io_error("lseek in doseek update");
+ if (write(fd, (char *) buf, size) == -1)
+ io_error("write in doseek");