Blame


1 7763a61a 2003-11-23 devnull #include "stdinc.h"
2 7763a61a 2003-11-23 devnull
3 7763a61a 2003-11-23 devnull enum {
4 7763a61a 2003-11-23 devnull Nblock = 300000,
5 7763a61a 2003-11-23 devnull BlockSize = 8*1024,
6 7763a61a 2003-11-23 devnull };
7 7763a61a 2003-11-23 devnull
8 7763a61a 2003-11-23 devnull uchar data[Nblock*VtScoreSize];
9 7763a61a 2003-11-23 devnull int rflag;
10 7763a61a 2003-11-23 devnull int nblock = 10000;
11 7763a61a 2003-11-23 devnull int perm[Nblock];
12 7763a61a 2003-11-23 devnull
13 7763a61a 2003-11-23 devnull void
14 7763a61a 2003-11-23 devnull main(int argc, char *argv[])
15 7763a61a 2003-11-23 devnull {
16 7763a61a 2003-11-23 devnull VtSession *z;
17 7763a61a 2003-11-23 devnull int i, j, t;
18 7763a61a 2003-11-23 devnull int start;
19 7763a61a 2003-11-23 devnull uchar buf[BlockSize];
20 7763a61a 2003-11-23 devnull
21 7763a61a 2003-11-23 devnull srand(time(0));
22 7763a61a 2003-11-23 devnull
23 7763a61a 2003-11-23 devnull ARGBEGIN{
24 7763a61a 2003-11-23 devnull case 'r':
25 7763a61a 2003-11-23 devnull rflag++;
26 7763a61a 2003-11-23 devnull break;
27 7763a61a 2003-11-23 devnull case 'n':
28 7763a61a 2003-11-23 devnull nblock = atoi(ARGF());
29 7763a61a 2003-11-23 devnull break;
30 7763a61a 2003-11-23 devnull }ARGEND
31 7763a61a 2003-11-23 devnull
32 7763a61a 2003-11-23 devnull for(i=0; i<nblock; i++)
33 7763a61a 2003-11-23 devnull perm[i] = i;
34 7763a61a 2003-11-23 devnull
35 7763a61a 2003-11-23 devnull if(rflag) {
36 7763a61a 2003-11-23 devnull for(i=0; i<nblock; i++) {
37 7763a61a 2003-11-23 devnull j = nrand(nblock);
38 7763a61a 2003-11-23 devnull t = perm[j];
39 7763a61a 2003-11-23 devnull perm[j] = perm[i];
40 7763a61a 2003-11-23 devnull perm[i] = t;
41 7763a61a 2003-11-23 devnull }
42 7763a61a 2003-11-23 devnull }
43 7763a61a 2003-11-23 devnull
44 7763a61a 2003-11-23 devnull if(readn(0, data, VtScoreSize*nblock) < VtScoreSize*nblock)
45 7763a61a 2003-11-23 devnull sysfatal("read failed: %r");
46 7763a61a 2003-11-23 devnull
47 7763a61a 2003-11-23 devnull vtAttach();
48 7763a61a 2003-11-23 devnull
49 7763a61a 2003-11-23 devnull z = vtDial("iolaire2");
50 7763a61a 2003-11-23 devnull if(z == nil)
51 7763a61a 2003-11-23 devnull sysfatal("cound not connect to venti");
52 7763a61a 2003-11-23 devnull if(!vtConnect(z, 0))
53 7763a61a 2003-11-23 devnull vtFatal("vtConnect: %s", vtGetError());
54 7763a61a 2003-11-23 devnull
55 7763a61a 2003-11-23 devnull print("starting\n");
56 7763a61a 2003-11-23 devnull
57 7763a61a 2003-11-23 devnull start = times(0);
58 7763a61a 2003-11-23 devnull
59 7763a61a 2003-11-23 devnull if(rflag && nblock > 10000)
60 7763a61a 2003-11-23 devnull nblock = 10000;
61 7763a61a 2003-11-23 devnull
62 7763a61a 2003-11-23 devnull for(i=0; i<nblock; i++) {
63 7763a61a 2003-11-23 devnull if(vtRead(z, data+perm[i]*VtScoreSize, VtDataType, buf, BlockSize) < 0)
64 7763a61a 2003-11-23 devnull vtFatal("vtRead failed: %d: %s", i, vtGetError());
65 7763a61a 2003-11-23 devnull }
66 7763a61a 2003-11-23 devnull
67 7763a61a 2003-11-23 devnull print("time = %f\n", (times(0) - start)*0.001);
68 7763a61a 2003-11-23 devnull
69 7763a61a 2003-11-23 devnull vtClose(z);
70 7763a61a 2003-11-23 devnull vtDetach();
71 7763a61a 2003-11-23 devnull }