diff options
author | garbled <garbled@pkgsrc.org> | 2005-03-03 08:58:27 +0000 |
---|---|---|
committer | garbled <garbled@pkgsrc.org> | 2005-03-03 08:58:27 +0000 |
commit | 9c5eac92b59ee2566212eb3a9cea8754453d43ad (patch) | |
tree | f2374008c6ba9f71bf74d41fca87f6bb1555b49a /benchmarks/bonnie/patches | |
parent | 314ae767c78b65bcfc3c38652bbb415e31b2f820 (diff) | |
download | pkgsrc-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-ab | 60 | ||||
-rw-r--r-- | benchmarks/bonnie/patches/patch-ac | 110 |
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"); |