summaryrefslogtreecommitdiff
path: root/benchmarks/rawio/files/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/rawio/files/patch-ad')
-rw-r--r--benchmarks/rawio/files/patch-ad270
1 files changed, 0 insertions, 270 deletions
diff --git a/benchmarks/rawio/files/patch-ad b/benchmarks/rawio/files/patch-ad
deleted file mode 100644
index afd8e208fd2a..000000000000
--- a/benchmarks/rawio/files/patch-ad
+++ /dev/null
@@ -1,270 +0,0 @@
---- rawio.c.orig Mon Nov 27 04:28:19 2000
-+++ rawio.c Tue Jun 20 23:03:20 2006
-@@ -58,6 +58,9 @@
- #endif
- #ifdef BSD4_4
- #include <sys/disklabel.h>
-+#if __FreeBSD__ >= 5
-+#include <sys/disk.h>
-+#endif
- #endif
- #include "randoms.h"
-
-@@ -99,6 +102,7 @@
- char *buf; /* and what we're using, for alignment */
- int file;
- size_t length;
-+u_int sectorsize;
-
- int count;
- enum operation
-@@ -331,13 +335,7 @@
- maxchunk = (size_t) atoi (arg);
- if (maxchunk < (size_t) 512)
- {
-- if (maxchunk <= (size_t) 0)
-- {
-- fprintf (stderr, "I/O transfer max must be at least 1 sector\n");
-- usage ();
-- }
-- else
-- maxchunk *= (size_t) 512;
-+ maxchunk *= (size_t) 512;
- }
- if (maxchunk > (size_t) MAXPHYS)
- {
-@@ -423,7 +421,7 @@
- printf ("No arg to n flag\n");
- break;
- }
-- filesize = sizespec (argv [++i]);
-+ filesize = sizespec (arg);
- break;
-
- case 'S':
-@@ -500,11 +498,6 @@
- buf = (char *) (((int) &physbuf [MAXPHYS]) & ~ (alignment - 1)); /* where to put the aligned buffer */
- if (op == 0) /* no ops specified, */
- op = RandomRead | SequentialRead; /* default to the read tests */
-- if (maxchunk & 0x1ff)
-- {
-- fprintf (stderr, "Invalid transfer size, must be multiple of 512: %d\n", maxchunk);
-- usage ();
-- }
- if (device == NULL)
- {
- fprintf (stderr, "No file name specified\n");
-@@ -565,6 +558,27 @@
- fprintf (stderr, "No file size specified\n");
- usage ();
- }
-+#ifndef DIOCGSECTORSIZE
-+ sectorsize = DEV_BSIZE;
-+#else
-+ if (ioctl (file, DIOCGSECTORSIZE, &sectorsize) == -1) /* failed to find native sector size */
-+ {
-+ if (verbose)
-+ fprintf (stderr, "Can't get sector size of %s: %s\n", device, strerror (errno));
-+ sectorsize = DEV_BSIZE;
-+ }
-+
-+#endif
-+ if (maxchunk <= sectorsize)
-+ {
-+ fprintf (stderr, "I/O transfer max must be at least 1 sector\n");
-+ usage ();
-+ }
-+ if (maxchunk & (sectorsize - 1))
-+ {
-+ fprintf (stderr, "Invalid transfer size, must be multiple of %d: %d\n", sectorsize, maxchunk);
-+ usage ();
-+ }
- if (id == NULL) /* no ID specified, */
- {
- id = strrchr (device, '/'); /* find the basename */
-@@ -580,7 +594,11 @@
- childinfo = mmap (NULL,
- nproc * sizeof (struct childinfo),
- PROT_READ | PROT_WRITE,
-+#ifdef MAP_INHERIT
- MAP_INHERIT | MAP_SHARED | MAP_ANON,
-+#else
-+ MAP_SHARED | MAP_ANON,
-+#endif
- -1,
- (off_t) 0 );
- #else
-@@ -835,14 +853,6 @@
- childinfo [proc].writes = 0;
- childinfo [proc].bytes_written = 0;
-
-- /* Get our own file handle */
-- close(file); /* need our own FD */
-- if ((file = open (device, openflags, 0)) < 0)
-- {
-- fprintf (stderr, "Child %d: Can't open %s: %s\n", proc, device, strerror (errno));
-- exit (1);
-- }
--
- /* Don't jump the gun */
- sigemptyset (&allsigs);
- if (sigaction (SIGUSR1, &ignore, NULL) < 0)
-@@ -863,20 +873,13 @@
- length = maxchunk;
- else
- length = (myrandom (proc + nproc * i * 2)
-- % (maxchunk * 2) + 512) & ~0x1ff; /* length of this transfer */
-- offset = ((((off_t) (myrandom2 (proc + nproc * i)) * DEV_BSIZE)
-- % (filesize - SKIPSTART - length)) & ~0x1ff) + SKIPSTART;
-- if ((pos = lseek (file, offset, SEEK_SET)) != offset)
-- fprintf (stderr,
-- "Child %d can't seek to %" Quad "x (%" Quad "x): %s\n",
-- proc,
-- offset,
-- pos,
-- strerror (errno));
-- else if ((iocount = read (file, buf, length)) != length)
-+ % (maxchunk * 2) + sectorsize) & ~(sectorsize - 1); /* length of this transfer */
-+ offset = (((((off_t) myrandom2 (proc + nproc * i)) * sectorsize)
-+ % (filesize - SKIPSTART - length)) & ~((off_t)sectorsize - 1)) + SKIPSTART;
-+ if ((iocount = pread (file, buf, length, pos = offset)) != length)
- {
- int Errno = errno;
-- pos = lseek (file, 0, SEEK_CUR);
-+ pos = offset + (iocount > 0 ? iocount : 0);
-
- fprintf (stderr,
- "offset %" Quad "d, filesize %" Quad "d\n",
-@@ -915,9 +918,9 @@
- if (fixedoffset)
- offset = SKIPSTART; /* start at the beginning */
- else /* random start */
-- offset = ((((off_t) (myrandom (proc + nproc)) * DEV_BSIZE)
-+ offset = (((((off_t) myrandom (proc + nproc)) * sectorsize)
- % (filesize - SKIPSTART /* decide where to start */
-- - (maxrecs * length))) & ~0x1ff) + SKIPSTART;
-+ - (maxrecs * length))) & ~((off_t)sectorsize - 1)) + SKIPSTART;
- if ((offset + maxrecs * length) > filesize) /* XXX */
- {
- printf ("Overrun: offset %" Quad "d, end %" Quad "d, file size %" Quad "d\n",
-@@ -928,18 +931,12 @@
- }
- if ((verbose > 2) && ! fixedoffset)
- printf ("Child %d reading from %" Quad "d\n", proc, offset);
-- if (lseek (file, offset, SEEK_SET) < 0)
-- fprintf (stderr,
-- "Child %d can't seek to %" Quad "x: %s\n",
-- proc,
-- offset,
-- strerror (errno));
- for (i = 1; i <= maxrecs; i++)
- {
-- if ((iocount = read (file, buf, length)) != length)
-+ if ((iocount = pread (file, buf, length, offset)) != length)
- {
- int Errno = errno;
-- off_t pos = lseek (file, (off_t) 0, SEEK_CUR);
-+ off_t pos = offset + (iocount > 0 ? iocount : 0);
-
- fprintf (stderr,
- "offset %" Quad "d, filesize %" Quad "d\n",
-@@ -965,6 +962,7 @@
- {
- childinfo [proc].reads++;
- childinfo [proc].bytes_read += iocount;
-+ offset += iocount;
- }
- }
- break;
-@@ -976,30 +974,28 @@
- length = maxchunk;
- else
- length = (myrandom (proc + nproc * i * 2)
-- % (maxchunk * 2) + 512) & ~0x1ff; /* length of this transfer */
-- offset = ((((off_t) (myrandom2 (proc + nproc * i)) * DEV_BSIZE)
-- % (filesize - SKIPSTART - length)) & ~0x1ff) + SKIPSTART;
-- if (lseek (file, offset, SEEK_SET) < 0)
-- fprintf (stderr, "Child %d can't seek: %s", proc, strerror (errno));
-- else
-+ % (maxchunk * 2) + sectorsize) & ~(sectorsize - 1); /* length of this transfer */
-+ offset = (((((off_t) myrandom2 (proc + nproc * i)) * sectorsize)
-+ % (filesize - SKIPSTART - length)) & ~((off_t)sectorsize - 1)) + SKIPSTART;
-+ if (1)
- {
- if ((RWfrac == 100)
- || ((myrandom (proc + nproc * i * 2 + 1) % 100) < RWfrac) )
- {
-- iocount = write (file, buf, length);
-+ iocount = pwrite (file, buf, length, offset);
- childinfo [proc].writes++;
- childinfo [proc].bytes_written += iocount;
- }
- else
- {
-- iocount = read (file, buf, length);
-+ iocount = pread (file, buf, length, offset);
- childinfo [proc].reads++;
- childinfo [proc].bytes_read += iocount;
- }
- if (iocount != length)
- {
- int Errno = errno;
-- off_t pos = lseek (file, (off_t) 0, SEEK_CUR);
-+ off_t pos = offset + (iocount > 0 ? iocount : 0);
-
- fprintf (stderr,
- "offset %" Quad "d, filesize %" Quad "d\n", offset,
-@@ -1032,36 +1028,30 @@
- if (fixedoffset)
- offset = SKIPSTART; /* start at the beginning */
- else /* random start */
-- offset = ((((off_t) (myrandom (proc + nproc)) * DEV_BSIZE)
-+ offset = (((((off_t) myrandom (proc + nproc)) * sectorsize)
- % (filesize - SKIPSTART /* decide where to start */
-- - (maxrecs * length))) & ~0x1ff) + SKIPSTART;
-- if (lseek (file, offset, SEEK_SET) < 0)
-- fprintf (stderr,
-- "Child %d can't seek to %" Quad "x: %s\n",
-- proc,
-- offset,
-- strerror (errno));
-- else if ((verbose > 2) && ! fixedoffset)
-+ - (maxrecs * length))) & ~((off_t)sectorsize - 1)) + SKIPSTART;
-+ if ((verbose > 2) && ! fixedoffset)
- printf ("Child %d writing to %" Quad "d\n", proc, offset);
- for (i = 1; i <= maxrecs; i++)
- {
- if ((SWfrac == 100)
- || ((myrandom (proc + nproc * i * 2 + 1) % 100) < SWfrac) )
- {
-- iocount = write (file, buf, length);
-+ iocount = pwrite (file, buf, length, offset);
- childinfo [proc].writes++;
- childinfo [proc].bytes_written += iocount;
- }
- else
- {
-- iocount = read (file, buf, length);
-+ iocount = pread (file, buf, length, offset);
- childinfo [proc].reads++;
- childinfo [proc].bytes_read += iocount;
- }
- if (iocount != length)
- {
- int Errno = errno;
-- off_t pos = lseek (file, (off_t) 0, SEEK_CUR);
-+ off_t pos = offset + (iocount > 0 ? iocount : 0);
-
- fprintf (stderr,
- "offset %" Quad "d, filesize %" Quad "d\n",
-@@ -1082,6 +1072,10 @@
- iocount,
- length );
- exit (1);
-+ }
-+ else
-+ {
-+ offset += iocount;
- }
- }
- break;