Skip to content

Commit

Permalink
- Apply some diffs from repo in code.google.com.
Browse files Browse the repository at this point in the history
- Take maintainership.

Obtained from:	http://code.google.com/p/bonnie-64/source/detail?r=2
  • Loading branch information
kuriyama committed Aug 21, 2009
1 parent 466ee6f commit ea78b90
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 16 deletions.
3 changes: 2 additions & 1 deletion benchmarks/bonnie/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
79 changes: 64 additions & 15 deletions benchmarks/bonnie/files/patch-ab
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -9,33 +19,60 @@

/* 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 */
+ close(0);
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 */
Expand All @@ -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");

0 comments on commit ea78b90

Please sign in to comment.