diff options
author | Jun Kuriyama <kuriyama@FreeBSD.org> | 2009-08-21 14:18:38 +0000 |
---|---|---|
committer | Jun Kuriyama <kuriyama@FreeBSD.org> | 2009-08-21 14:18:38 +0000 |
commit | ea78b90d86c8816cc8361bbfba4fd018090c1555 (patch) | |
tree | bc155d74e45c550d04be9455bd9bb4d908c427c6 /benchmarks/bonnie | |
parent | 466ee6fa5d94520d18738acd27c21b9097b4859b (diff) | |
download | ports-ea78b90d86c8816cc8361bbfba4fd018090c1555.tar.gz ports-ea78b90d86c8816cc8361bbfba4fd018090c1555.zip |
Notes
Diffstat (limited to 'benchmarks/bonnie')
-rw-r--r-- | benchmarks/bonnie/Makefile | 3 | ||||
-rw-r--r-- | benchmarks/bonnie/files/patch-ab | 79 |
2 files changed, 66 insertions, 16 deletions
diff --git a/benchmarks/bonnie/Makefile b/benchmarks/bonnie/Makefile index d2b771723b0a..0269cc450a48 100644 --- a/benchmarks/bonnie/Makefile +++ b/benchmarks/bonnie/Makefile @@ -7,12 +7,13 @@ PORTNAME= bonnie PORTVERSION= 2.0.6 +PORTREVISION= 1 CATEGORIES= benchmarks MASTER_SITES= http://www.acnc.com/benchmarks/ \ http://www.textuality.com/bonnie/ DISTNAME= bonnie -MAINTAINER= ports@FreeBSD.org +MAINTAINER= kuriyama@FreeBSD.org COMMENT= Performance Test of Filesystem I/O NO_WRKSUBDIR= yes diff --git a/benchmarks/bonnie/files/patch-ab b/benchmarks/bonnie/files/patch-ab index 2a1a1800057f..2ac462d48750 100644 --- a/benchmarks/bonnie/files/patch-ab +++ b/benchmarks/bonnie/files/patch-ab @@ -1,6 +1,16 @@ ---- Bonnie.c.orig Wed Aug 28 18:23:49 1996 -+++ Bonnie.c Sun Jun 11 20:26:29 2006 -@@ -49,7 +49,7 @@ +--- Bonnie.c.orig 1996-08-29 01:23:49.000000000 +0900 ++++ Bonnie.c 2009-08-21 23:05:39.000000000 +0900 +@@ -25,6 +25,9 @@ + + #include <unistd.h> + #include <stdio.h> ++#if !defined(SysV) ++#include <stdlib.h> ++#endif + #include <errno.h> + #include <fcntl.h> + #include <sys/types.h> +@@ -49,7 +52,7 @@ #define Seeks (4000) #define UpdateSeek (10) #define SeekProcCount (3) @@ -9,25 +19,52 @@ /* labels for the tests, used as an array index */ typedef enum -@@ -146,7 +146,7 @@ +@@ -87,7 +90,7 @@ + static double last_cpustamp = 0.0; /* for computing delta-t */ + static double last_timestamp = 0.0; /* for computing delta-t */ + +-main( ++int main( + int argc, + char * argv[]) + { +@@ -146,7 +149,7 @@ /* 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: %qd\n", name, (int64_t) size); ++ fprintf(stderr, "File '%s', size: %lld\n", name, size); /* Fill up a file, writing it a char at a time with the stdio putc() call */ fprintf(stderr, "Writing with putc()..."); -@@ -179,7 +179,7 @@ +@@ -167,7 +170,7 @@ + + /* Now read & rewrite it using block I/O. Dirty one word in each block */ + newfile(name, &fd, &stream, 0); +- if (lseek(fd, (off_t) 0, 0) == (off_t) -1) ++ if (lseek(fd, (off_t) 0, SEEK_SET) == (off_t) -1) + io_error("lseek(2) before rewrite"); + fprintf(stderr, "Rewriting..."); + timestamp(); +@@ -179,7 +182,7 @@ if (bufindex == Chunk / IntSize) bufindex = 0; buf[bufindex++]++; - if (lseek(fd, (off_t) -words, 1) == -1) -+ if (lseek(fd, -words, 1) == -1) ++ if (lseek(fd, (off_t) -words, SEEK_CUR) == -1) io_error("relative lseek(2)"); if (write(fd, (char *) buf, words) == -1) io_error("re write(2)"); -@@ -288,6 +288,7 @@ +@@ -235,7 +238,7 @@ + + /* Now suck it in, Chunk at a time, as fast as we can */ + newfile(name, &fd, &stream, 0); +- if (lseek(fd, (off_t) 0, 0) == -1) ++ if (lseek(fd, (off_t) 0, SEEK_SET) == -1) + io_error("lseek before read"); + fprintf(stderr, "Reading intelligently..."); + timestamp(); +@@ -288,6 +291,7 @@ { /* child process */ /* set up and wait for the go-ahead */ @@ -35,7 +72,7 @@ close(seek_feedback[0]); close(seek_control[1]); newfile(name, &fd, &stream, 0); -@@ -303,7 +304,12 @@ +@@ -303,7 +307,12 @@ /* loop until we read a 0 ticket back from our parent */ while(seek_tickets[0]) { /* until Mom says stop */ @@ -49,30 +86,42 @@ ((lseek_count++ % UpdateSeek) == 0)); if (read(seek_control[0], seek_tickets, 1) != 1) io_error("read ticket"); -@@ -413,7 +419,7 @@ +@@ -413,7 +422,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 %4qd ", machine, size / (1024 * 1024)); ++ printf("%-8.8s %4lld ", machine, 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, -@@ -529,7 +535,7 @@ +@@ -529,7 +538,10 @@ { char buf[Chunk]; - sprintf(buf, "Bonnie: drastic I/O error (%s)", message); -+ sprintf(buf, "\nBonnie: drastic I/O error (%s)", message); ++ if((errno == EOVERFLOW) || (errno == EFBIG)) ++ sprintf(buf, "\nBonnie: drastic I/O error (%s): %s", message, strerror(errno)); ++ else ++ sprintf(buf, "\nBonnie: drastic I/O error (%s)", message); perror(buf); exit(1); } -@@ -568,7 +574,7 @@ +@@ -557,7 +569,7 @@ + off_t size; + + probe = where * Chunk; +- if (lseek(fd, probe, 0) != probe) ++ if (lseek(fd, (off_t)probe, SEEK_SET) != probe) + io_error("lseek in doseek"); + if ((size = read(fd, (char *) buf, Chunk)) == -1) + io_error("read in doseek"); +@@ -568,7 +580,7 @@ /* touch a word */ buf[((int) random() % (size/IntSize - 2)) + 1]--; - if (lseek(fd, (long) probe, 0) != probe) -+ if (lseek(fd, probe, 0) != probe) ++ if (lseek(fd, (off_t)probe, SEEK_SET) != probe) io_error("lseek in doseek update"); if (write(fd, (char *) buf, size) == -1) io_error("write in doseek"); |