You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(33) |
Nov
(15) |
Dec
(28) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(13) |
Feb
(61) |
Mar
(5) |
Apr
|
May
(19) |
Jun
(22) |
Jul
|
Aug
(17) |
Sep
(7) |
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2010 |
Jan
|
Feb
(48) |
Mar
(10) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Luke M. <lu...@us...> - 2005-09-13 04:04:24
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4003/src/tests/nfs_latency Modified Files: nfs_glue.c Log Message: pre-generate nfs requests Index: nfs_glue.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_glue.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** nfs_glue.c 22 Aug 2005 23:55:51 -0000 1.4 --- nfs_glue.c 13 Sep 2005 04:04:15 -0000 1.5 *************** *** 106,109 **** --- 106,113 ---- } + struct read_request{ + struct pbuf pbuf; + }; + /* * instead of using nfs_read(), we generate ourselves a read with a *************** *** 112,118 **** static int generate_read_request(uint64_t timestamp){ ! struct pbuf pbuf; struct callback c; ! readargs_t args; /* set up callback */ --- 116,142 ---- static int generate_read_request(uint64_t timestamp){ ! static struct read_request *rr = NULL; struct callback c; ! ! if(rr==NULL){ ! /* initialise write request */ ! readargs_t args; ! ! rr = malloc(sizeof(struct read_request)); ! assert(rr!=NULL); ! ! /* set up buffer */ ! initbuf(&rr->pbuf, NFS_NUMBER, NFS_VERSION, NFSPROC_READ); ! ! args.file = nfs_file_handle; ! args.offset = READ_OFFSET; ! args.count = READ_SIZE; ! args.totalcount = 0; /* unused as per RFC */ ! ! addtobuf(&rr->pbuf, &args, sizeof(args), 1); ! }else{ ! /* just set a new xid */ ! reset_xid(rr->pbuf.buf); ! } /* set up callback */ *************** *** 120,134 **** c.param.time.timestamp = timestamp; ! /* set up buffer */ ! initbuf(&pbuf, NFS_NUMBER, NFS_VERSION, NFSPROC_READ); ! args.file = nfs_file_handle; ! args.offset = READ_OFFSET; ! args.count = READ_SIZE; ! args.totalcount = 0; /* unused as per RFC */ ! addtobuf(&pbuf, &args, sizeof(args), 1); ! return rpc_send(&pbuf, nfs_fd, &c); } --- 144,208 ---- c.param.time.timestamp = timestamp; ! return rpc_send(&rr->pbuf, nfs_fd, &c); ! } ! static void ! write_callback(struct callback *c, struct pbuf *pbuf){ ! assert(c->func==write_callback); ! assert(last_sample==0); ! /* XXX we should really check the NFS error code here */ ! last_sample = c->param.time.timestamp; ! } ! ! struct write_request{ ! struct pbuf pbuf; ! uint8_t data[READ_SIZE]; ! }; ! ! /* ! * instead of using nfs_write(), we generate ourselves a read with a ! * special timing callback. ! */ ! static int ! generate_write_request(uint64_t timestamp){ ! static struct write_request *wr = NULL; ! struct callback c; ! ! if(wr==NULL){ ! /* initialise write request */ ! int i; ! writeargs_t args; ! ! wr = malloc(sizeof(struct write_request)); ! assert(wr!=NULL); ! ! printf("generating write data...\n"); ! for(i=0; i<READ_SIZE; i++){ ! wr->data[i] = (uint8_t)(random() & 0xFF); ! } ! printf("generating write data done.\n"); ! ! /* set up buffer */ ! initbuf(&wr->pbuf, NFS_NUMBER, NFS_VERSION, NFSPROC_WRITE); ! ! args.file = nfs_file_handle; ! args.offset = READ_OFFSET; ! args.beginoffset = 0; /* unused as per RFC */ ! args.totalcount = 0; /* unused as per RFC */ ! ! addtobuf(&wr->pbuf, &args, sizeof(args), 1); ! adddata(&wr->pbuf, wr->data, READ_SIZE, 0); ! }else{ ! /* just set a new xid */ ! reset_xid(wr->pbuf.buf); ! } ! ! /* set up callback */ ! c.func = write_callback; ! c.param.time.timestamp = timestamp; ! ! return rpc_send(&wr->pbuf, nfs_fd, &c); } *************** *** 139,143 **** generate_request(uint64_t timestamp){ assert(initialised==1); ! return generate_read_request(timestamp); } --- 213,228 ---- generate_request(uint64_t timestamp){ assert(initialised==1); ! ! //switch(random()&1){ ! switch(1){ ! case 0: ! return generate_read_request(timestamp); ! case 1: ! return generate_write_request(timestamp); ! } ! ! assert(!"should not get here\n"); ! ! return -1; } |
From: Luke M. <lu...@us...> - 2005-09-13 04:03:02
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3699/src/tests/nfs_latency Modified Files: nfs_latency.c Log Message: change order of output fields Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** nfs_latency.c 24 Aug 2005 03:04:45 -0000 1.11 --- nfs_latency.c 13 Sep 2005 04:02:53 -0000 1.12 *************** *** 160,164 **** requests++; }else{ ! dbprintf("generate request failed\n"); } } --- 160,164 ---- requests++; }else{ ! //dbprintf("generate request failed\n"); } } *************** *** 368,382 **** printf("#"); ! printf("Min runtime,"); ! printf("Average runtime,"); ! printf("Median runtime,"); ! printf("Max runtime,"); printf("Min latency,"); printf("Average latency,"); printf("Median latency,"); printf("Max latency,"); ! printf("Samples,"); ! printf("Achieved request rate,"); ! printf("Achieved reply rate"); for (i = 0; i < nelem; i++) { --- 368,383 ---- printf("#"); ! printf("Achieved request rate,"); ! printf("Achieved reply rate,"); printf("Min latency,"); printf("Average latency,"); printf("Median latency,"); printf("Max latency,"); ! printf("Samples"); ! printf("Min runtime,"); ! printf("Average runtime,"); ! printf("Median runtime,"); ! printf("Max runtime"); ! printf("\n"); for (i = 0; i < nelem; i++) { *************** *** 426,433 **** avg_latency = average_uint64(aggregate, aggregate_count); ! printf("%lld,", runtime[0]); ! printf("%lld,", avg_runtime); ! printf("%lld,", runtime[nelem/2]); ! printf("%lld,", runtime[nelem-1]); printf("%lld,", aggregate[0]); printf("%lld,", avg_latency); --- 427,432 ---- avg_latency = average_uint64(aggregate, aggregate_count); ! printf("%lld,", (tot_requests*1000000) / avg_runtime); ! printf("%lld,", (tot_replies*1000000) / avg_runtime); printf("%lld,", aggregate[0]); printf("%lld,", avg_latency); *************** *** 435,440 **** printf("%lld,", aggregate[aggregate_count-1]); printf("%lld,", aggregate_count); ! printf("%lld,", (tot_requests*1000000) / avg_runtime); ! printf("%lld", (tot_replies*1000000) / avg_runtime); printf("\n"); --- 434,441 ---- printf("%lld,", aggregate[aggregate_count-1]); printf("%lld,", aggregate_count); ! printf("%lld,", runtime[0]); ! printf("%lld,", avg_runtime); ! printf("%lld,", runtime[nelem/2]); ! printf("%lld", runtime[nelem-1]); printf("\n"); |
From: Luke M. <lu...@us...> - 2005-09-13 04:02:06
|
Update of /cvsroot/ipbench/ipbench2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3568/src Modified Files: ipbench.py Log Message: print python errors to stderr Index: ipbench.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbench.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ipbench.py 23 Aug 2005 00:21:37 -0000 1.33 --- ipbench.py 13 Sep 2005 04:01:55 -0000 1.34 *************** *** 18,22 **** global options if options.debug: ! print >> sys.stderr, msg class IpbenchError(Exception): --- 18,23 ---- global options if options.debug: ! sys.stderr.write(msg + "\n") ! # print >> sys.stderr, msg class IpbenchError(Exception): *************** *** 83,88 **** self.s.connect((self.hostname, self.port)) except: ! print("Can't connect to " + self.hostname + " on port " + ! `self.port` + " ... invalid host or port?") sys.exit(1) status = self.parse_return_code() --- 84,90 ---- self.s.connect((self.hostname, self.port)) except: ! sys.stderr.write("Can't connect to " + self.hostname + ! " on port " + `self.port` + ! " ... invalid host or port?\n") sys.exit(1) status = self.parse_return_code() |
From: Luke M. <lu...@us...> - 2005-08-24 03:04:53
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9550 Modified Files: nfs_latency.c Log Message: print a hash at start of column descriptions Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** nfs_latency.c 23 Aug 2005 00:13:25 -0000 1.10 --- nfs_latency.c 24 Aug 2005 03:04:45 -0000 1.11 *************** *** 367,370 **** --- 367,371 ---- assert(runtime!=NULL); + printf("#"); printf("Min runtime,"); printf("Average runtime,"); |
From: Ian W. <del...@us...> - 2005-08-23 00:21:46
|
Update of /cvsroot/ipbench/ipbench2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6673 Modified Files: ipbench.py Log Message: make debug go to stderr Index: ipbench.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbench.py,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** ipbench.py 3 Aug 2005 23:44:25 -0000 1.32 --- ipbench.py 23 Aug 2005 00:21:37 -0000 1.33 *************** *** 18,22 **** global options if options.debug: ! print msg class IpbenchError(Exception): --- 18,22 ---- global options if options.debug: ! print >> sys.stderr, msg class IpbenchError(Exception): |
From: Luke M. <lu...@us...> - 2005-08-23 00:13:34
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3826 Modified Files: nfs_latency.c Log Message: improve output Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** nfs_latency.c 19 Aug 2005 06:11:01 -0000 1.9 --- nfs_latency.c 23 Aug 2005 00:13:25 -0000 1.10 *************** *** 160,164 **** requests++; }else{ ! printf("generate request failed\n"); } } --- 160,164 ---- requests++; }else{ ! dbprintf("generate request failed\n"); } } *************** *** 167,171 **** replies++; sample[i] = now - then; - //dbprintf("delta = %ld\n", sample[i]); i++; } --- 167,170 ---- *************** *** 225,230 **** } - printf("marshalling %lld samples\n", samples); - for(i=0; i<samples; i++){ /* XXX is sample[i] in uS? */ --- 224,227 ---- *************** *** 277,284 **** --- 274,283 ---- theresult->recvs = ntohll(theresult->recvs); + #if 0 printf("got %lld time\n", theresult->time); printf("got %lld samples\n", theresult->samples); printf("got %lld sends\n", theresult->sends); printf("got %lld recvs\n", theresult->recvs); + #endif for(i=0; i<theresult->samples; i++){ *************** *** 294,299 **** } - printf("input_len=%d, *data_len=%d\n", input_len, *data_len); - assert(input_len==*data_len); --- 293,296 ---- *************** *** 370,373 **** --- 367,382 ---- assert(runtime!=NULL); + printf("Min runtime,"); + printf("Average runtime,"); + printf("Median runtime,"); + printf("Max runtime,"); + printf("Min latency,"); + printf("Average latency,"); + printf("Median latency,"); + printf("Max latency,"); + printf("Samples,"); + printf("Achieved request rate,"); + printf("Achieved reply rate"); + for (i = 0; i < nelem; i++) { int j; *************** *** 376,379 **** --- 385,389 ---- theresult = (struct marshalled_result*)data[i].data; + #if 0 printf("load generator %d...\n", i); printf("size is %d\n", data[i].size); *************** *** 383,386 **** --- 393,397 ---- printf("reples=%lld\n", theresult->recvs); printf("samples=%lld\n", theresult->samples); + #endif tot_requests += theresult->sends; *************** *** 414,430 **** avg_latency = average_uint64(aggregate, aggregate_count); ! printf("Min runtime: %lld\n", runtime[0]); ! printf("Average runtime: %lld\n", avg_runtime); ! printf("Median runtime: %lld\n", runtime[nelem/2]); ! printf("Max runtime: %lld\n", runtime[nelem-1]); ! printf("Min latency: %lld\n", aggregate[0]); ! printf("Average latency: %lld\n", avg_latency); ! printf("Median latency: %lld\n", aggregate[aggregate_count/2]); ! printf("Max latency: %lld\n", aggregate[aggregate_count-1]); ! printf("Samples: %lld\n", aggregate_count); ! printf("Achieved request rate (avg): %lld\n", ! (tot_requests*1000000) / avg_runtime); ! printf("Achieved reply rate (avg): %lld\n", ! (tot_replies*1000000) / avg_runtime); dbprintf ("NFS_LATENCY DONE\n"); --- 425,440 ---- avg_latency = average_uint64(aggregate, aggregate_count); ! printf("%lld,", runtime[0]); ! printf("%lld,", avg_runtime); ! printf("%lld,", runtime[nelem/2]); ! printf("%lld,", runtime[nelem-1]); ! printf("%lld,", aggregate[0]); ! printf("%lld,", avg_latency); ! printf("%lld,", aggregate[aggregate_count/2]); ! printf("%lld,", aggregate[aggregate_count-1]); ! printf("%lld,", aggregate_count); ! printf("%lld,", (tot_requests*1000000) / avg_runtime); ! printf("%lld", (tot_replies*1000000) / avg_runtime); ! printf("\n"); dbprintf ("NFS_LATENCY DONE\n"); |
From: Luke M. <lu...@us...> - 2005-08-22 23:55:59
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31958 Modified Files: nfs_glue.c Log Message: added comment Index: nfs_glue.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_glue.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** nfs_glue.c 15 Aug 2005 06:56:23 -0000 1.3 --- nfs_glue.c 22 Aug 2005 23:55:51 -0000 1.4 *************** *** 68,71 **** --- 68,72 ---- } + /* XXX these should be dynamically controlled */ callback_init(10,100000); |
From: Luke M. <lu...@us...> - 2005-08-19 06:11:09
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2101/libnfs Modified Files: rpc.c Log Message: Lots of features --- mostly working now Index: rpc.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rpc.c 18 Aug 2005 07:03:32 -0000 1.5 --- rpc.c 19 Aug 2005 06:11:01 -0000 1.6 *************** *** 70,80 **** r = send(fd, pbuf->buf, pbuf->pos, 0); ! if(r<0){ ! if(errno==EAGAIN){ ! return 0; /* sent 0 bytes successfully */ ! }else{ ! return -1; ! } ! } return r; --- 70,80 ---- r = send(fd, pbuf->buf, pbuf->pos, 0); ! //if(r<0){ ! // if(errno==EAGAIN){ ! // return 0; /* sent 0 bytes successfully */ ! // }else{ ! // return -1; ! // } ! //} return r; |
From: Luke M. <lu...@us...> - 2005-08-19 06:11:09
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2101 Modified Files: nfs_latency.c Log Message: Lots of features --- mostly working now Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** nfs_latency.c 18 Aug 2005 07:04:28 -0000 1.8 --- nfs_latency.c 19 Aug 2005 06:11:01 -0000 1.9 *************** *** 27,30 **** --- 27,81 ---- }; + struct nfs_options{ + char *path; + char *filename; + uint64_t rate; + } nfs_options; + + static int parse_arg(char *arg) + { + char *p, cmd[200], *val; + + /* set up default values */ + nfs_options.path = "/tmp"; + nfs_options.filename = "bench.file"; + nfs_options.rate = 10000; + + /* parse parameters */ + while (next_token(&arg, cmd, " \t,")){ + if ((p = strchr(cmd, '='))) { + *p = '\0'; + val = p+1; + }else{ + val = NULL; + } + + /* test arguments */ + dbprintf("Got cmd %s val %s\n", cmd, val); + + if (!strcmp(cmd, "path")){ + nfs_options.path = strdup(val); + continue; + } + if (!strcmp(cmd, "filename")){ + nfs_options.filename = strdup(val); + continue; + } + if (!strcmp(cmd, "rate")){ + nfs_options.rate = strtoll(val, NULL, 10); + continue; + } + + dbprintf("Invalid argument %s=%s.\n", cmd, val); + } + + dbprintf("parse_arg: using: path=%s,filename=%s,rate=%lld\n", + nfs_options.path, + nfs_options.filename, + nfs_options.rate); + + return 0; + } + /* * Setup your test. After this is complete you should be ready to *************** *** 36,40 **** { int x; - char *tmp, *path, *filename; dbprintf("nfs_latency_setup - %s - %d - %s\n", hostname, port, arg); --- 87,90 ---- *************** *** 43,74 **** * port you can ignore. * arg is just a string that you need to parse however you want ! */ ! ! tmp = strdup(arg); ! path = filename = tmp; ! while(*tmp!='\0'){ ! if(*tmp=='/') ! filename=tmp; ! tmp++; ! } ! ! if(filename==path){ ! /* no / found, just a filename */ ! path="/"; ! }else{ ! /* split the filename and path */ ! *filename='\0'; ! filename++; ! } ! ! assert(*path!='\0' && *filename!='\0'); ! dbprintf("nfs_latency_setup - path=%s filename=%s\n", path, filename); ! x = init_and_open(hostname, path, filename); assert(x==0); - free(tmp); - return 0; } --- 93,106 ---- * port you can ignore. * arg is just a string that you need to parse however you want ! */ ! /* configure nfs options */ ! if (strlen(arg) != 0) ! if (parse_arg(arg)) ! return -1; ! x = init_and_open(hostname, nfs_options.path, nfs_options.filename); assert(x==0); return 0; } *************** *** 96,102 **** int target=200000; int r; ! uint64_t now, then; uint64_t start_time, end_time; uint64_t requests, replies; dbprintf("NFS_LATENCY START\n"); --- 128,135 ---- int target=200000; int r; ! uint64_t now, then, delta; uint64_t start_time, end_time; uint64_t requests, replies; + uint64_t predicted_requests; dbprintf("NFS_LATENCY START\n"); *************** *** 118,123 **** while(i<target){ now = time_stamp(); ! r = generate_request(now); ! requests++; if(process_reply(&then)==0){ replies++; --- 151,167 ---- while(i<target){ now = time_stamp(); ! ! delta = tick_to_usec(now - start_time); ! predicted_requests = (delta * nfs_options.rate) / US_PER_S; ! ! if(predicted_requests > requests){ ! r = generate_request(now); ! if(r>0){ ! requests++; ! }else{ ! printf("generate request failed\n"); ! } ! } ! if(process_reply(&then)==0){ replies++; *************** *** 130,134 **** end_time = time_stamp(); ! result.microseconds = tick_to_usec(start_time - end_time); result.sends = requests; result.recvs = replies; --- 174,178 ---- end_time = time_stamp(); ! result.microseconds = tick_to_usec(end_time - start_time); result.sends = requests; result.recvs = replies; *************** *** 269,272 **** --- 313,350 ---- } + /* needed for qsort */ + static int + compare_uint64(const void *a, const void *b){ + uint64_t *x, *y; + + x = (uint64_t*)a; + y = (uint64_t*)b; + + if(*x < *y) + return -1; + + if(*x > *y) + return 1; + + return 0; + } + + static uint64_t + average_uint64(uint64_t *x, uint64_t n){ + uint64_t i, total, new_total; + + assert(n>0); + + total = 0; + + for(i=0; i<n; i++){ + new_total = total + x[i]; + assert(new_total >= total); + total = new_total; + } + + return (total / n); + } + /* * data[] is an array that has whatever was passed back from each *************** *** 282,288 **** { int i; ! uint64_t c=0, *s=NULL, *tmp; dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { int j; --- 360,373 ---- { int i; ! uint64_t aggregate_count=0, *aggregate=NULL, *tmp; ! uint64_t *runtime=NULL; ! uint64_t avg_latency, avg_runtime; ! uint64_t tot_requests=0, tot_replies=0; dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); + + runtime = malloc(nelem*sizeof(uint64_t)); + assert(runtime!=NULL); + for (i = 0; i < nelem; i++) { int j; *************** *** 299,320 **** printf("samples=%lld\n", theresult->samples); ! if(theresult->samples<=0){ ! dbprintf("No samples from client %d\n", i); ! continue; ! } ! tmp = realloc(s, (c + theresult->samples) * sizeof(uint64_t)); if(tmp==NULL){ dbprintf("Out of memory!\n"); return -1; } ! s = tmp; for(j=0; j<theresult->samples; j++){ ! s[c++] = theresult->data[j]; } } ! printf("c==%lld\n", c); dbprintf ("NFS_LATENCY DONE\n"); --- 384,430 ---- printf("samples=%lld\n", theresult->samples); ! tot_requests += theresult->sends; ! tot_replies += theresult->recvs; ! /* aggregate runtime */ ! runtime[i] = theresult->time; ! ! /* aggreagate samples */ ! assert(theresult->samples>0); ! tmp = realloc(aggregate, ! (aggregate_count + theresult->samples) ! * sizeof(uint64_t)); if(tmp==NULL){ dbprintf("Out of memory!\n"); return -1; } ! aggregate = tmp; for(j=0; j<theresult->samples; j++){ ! aggregate[aggregate_count++] = theresult->data[j]; } } ! /* sort the runtimes */ ! qsort(runtime, nelem, sizeof(uint64_t), compare_uint64); ! avg_runtime = average_uint64(runtime, nelem); ! ! /* sort the samples */ ! qsort(aggregate, aggregate_count, sizeof(uint64_t), compare_uint64); ! avg_latency = average_uint64(aggregate, aggregate_count); ! ! printf("Min runtime: %lld\n", runtime[0]); ! printf("Average runtime: %lld\n", avg_runtime); ! printf("Median runtime: %lld\n", runtime[nelem/2]); ! printf("Max runtime: %lld\n", runtime[nelem-1]); ! printf("Min latency: %lld\n", aggregate[0]); ! printf("Average latency: %lld\n", avg_latency); ! printf("Median latency: %lld\n", aggregate[aggregate_count/2]); ! printf("Max latency: %lld\n", aggregate[aggregate_count-1]); ! printf("Samples: %lld\n", aggregate_count); ! printf("Achieved request rate (avg): %lld\n", ! (tot_requests*1000000) / avg_runtime); ! printf("Achieved reply rate (avg): %lld\n", ! (tot_replies*1000000) / avg_runtime); dbprintf ("NFS_LATENCY DONE\n"); |
From: Luke M. <lu...@us...> - 2005-08-18 22:31:12
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv683/src/tests/nfs_latency Modified Files: nfs_latency.c Log Message: fix bugs --- marshal/unmarshal/output now working Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** nfs_latency.c 15 Aug 2005 06:56:23 -0000 1.7 --- nfs_latency.c 18 Aug 2005 07:04:28 -0000 1.8 *************** *** 94,98 **** { int i=0; ! int target=1000; int r; uint64_t now, then; --- 94,98 ---- { int i=0; ! int target=200000; int r; uint64_t now, then; *************** *** 123,127 **** replies++; sample[i] = now - then; ! dbprintf("delta = %ld\n", sample[i]); i++; } --- 123,127 ---- replies++; sample[i] = now - then; ! //dbprintf("delta = %ld\n", sample[i]); i++; } *************** *** 181,184 **** --- 181,185 ---- } + printf("marshalling %lld samples\n", samples); for(i=0; i<samples; i++){ *************** *** 232,235 **** --- 233,241 ---- theresult->recvs = ntohll(theresult->recvs); + printf("got %lld time\n", theresult->time); + printf("got %lld samples\n", theresult->samples); + printf("got %lld sends\n", theresult->sends); + printf("got %lld recvs\n", theresult->recvs); + for(i=0; i<theresult->samples; i++){ theresult->data[i] = ntohll(theresult->data[i]); *************** *** 244,247 **** --- 250,257 ---- } + printf("input_len=%d, *data_len=%d\n", input_len, *data_len); + + assert(input_len==*data_len); + memcpy(*data, input, input_len); *************** *** 272,284 **** { int i; dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { struct marshalled_result *theresult; ! theresult = (struct marshalled_result*)&data[i].data; printf("load generator %d...\n", i); ! printf("time=%d\n", (int)theresult->time); ! printf("requests=%d\n", (int)theresult->sends); ! printf("reples=%d\n", (int)theresult->recvs); } dbprintf ("NFS_LATENCY DONE\n"); return 0; --- 282,321 ---- { int i; + uint64_t c=0, *s=NULL, *tmp; + dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { + int j; struct marshalled_result *theresult; ! ! theresult = (struct marshalled_result*)data[i].data; ! printf("load generator %d...\n", i); ! printf("size is %d\n", data[i].size); ! printf("valid is %d\n", data[i].valid); ! printf("time=%lld\n", theresult->time); ! printf("requests=%lld\n", theresult->sends); ! printf("reples=%lld\n", theresult->recvs); ! printf("samples=%lld\n", theresult->samples); ! ! if(theresult->samples<=0){ ! dbprintf("No samples from client %d\n", i); ! continue; ! } ! ! tmp = realloc(s, (c + theresult->samples) * sizeof(uint64_t)); ! if(tmp==NULL){ ! dbprintf("Out of memory!\n"); ! return -1; ! } ! s = tmp; ! ! for(j=0; j<theresult->samples; j++){ ! s[c++] = theresult->data[j]; ! } } + + printf("c==%lld\n", c); + dbprintf ("NFS_LATENCY DONE\n"); return 0; |
From: Luke M. <lu...@us...> - 2005-08-18 22:15:09
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv451/src/tests/nfs_latency/libnfs Modified Files: rpc.c Log Message: remove extraneous printfs Index: rpc.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rpc.c 15 Aug 2005 06:56:23 -0000 1.4 --- rpc.c 18 Aug 2005 07:03:32 -0000 1.5 *************** *** 56,61 **** assert(pbuf && pbuf->pos >=0 && pbuf->pos <= PBUF_SIZE); - printf("rpc_send() called\n"); - /* we always add the callback */ /* anything after here is just packet loss */ --- 56,59 ---- *************** *** 90,95 **** struct callback c; - printf("rpc_recv() called\n"); - if(timeout!=0){ int r; --- 88,91 ---- *************** *** 106,110 **** /* receive new packet */ - //printf("receiving:\n"); x = recv(fd, pbuf->buf, PBUF_SIZE, 0); switch(x){ --- 102,105 ---- |
From: Luke M. <lu...@us...> - 2005-08-15 06:56:31
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18694/src/tests/nfs_latency/libnfs Modified Files: nfs.c rpc.c rpc.h test.c Log Message: nfs updates Index: rpc.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** rpc.c 4 Aug 2005 05:09:03 -0000 1.3 --- rpc.c 15 Aug 2005 06:56:23 -0000 1.4 *************** *** 50,54 **** int ! rpc_send(struct pbuf *pbuf, int fd, struct callback c) { int xid, r; --- 50,54 ---- int ! rpc_send(struct pbuf *pbuf, int fd, struct callback *c) { int xid, r; *************** *** 56,63 **** assert(pbuf && pbuf->pos >=0 && pbuf->pos <= PBUF_SIZE); /* we always add the callback */ /* anything after here is just packet loss */ ! xid = extract_xid(pbuf->buf); ! callback_add(xid, c); if(pbuf->pos==0) --- 56,67 ---- assert(pbuf && pbuf->pos >=0 && pbuf->pos <= PBUF_SIZE); + printf("rpc_send() called\n"); + /* we always add the callback */ /* anything after here is just packet loss */ ! if(c!=NULL){ ! xid = extract_xid(pbuf->buf); ! callback_add(xid, *c); ! } if(pbuf->pos==0) *************** *** 79,94 **** } int ! rpc_recv(struct pbuf *pbuf, int fd, int block) { int x, xid; struct callback c; ! if(block){ ! #ifndef INFTIM ! #define INFTIM -1 ! #endif struct pollfd p = {fd, POLLIN, 0}; ! assert(poll(&p, 1, INFTIM)==1); } --- 83,102 ---- } + /* returns 0 on success, -1 on error */ int ! rpc_recv(struct pbuf *pbuf, int fd, int timeout) { int x, xid; struct callback c; ! printf("rpc_recv() called\n"); ! ! if(timeout!=0){ ! int r; struct pollfd p = {fd, POLLIN, 0}; ! r = poll(&p, 1, timeout); ! if(poll<=0){ ! return -1; ! } } *************** *** 139,143 **** rpc_call(struct pbuf *snd, struct pbuf *rcv, int fd) { ! struct callback c; int notify = 0; struct pbuf *result; --- 147,151 ---- rpc_call(struct pbuf *snd, struct pbuf *rcv, int fd) { ! struct callback c, *tx; int notify = 0; struct pbuf *result; *************** *** 146,154 **** c.param.call.notify = ¬ify; c.param.call.result = &result; ! assert(rpc_send(snd, fd, c)==snd->pos); ! while(notify==0){ ! rpc_recv(rcv, fd, 1); } --- 154,164 ---- c.param.call.notify = ¬ify; c.param.call.result = &result; + tx = &c; ! /* retransmit every 100ms until success */ while(notify==0){ ! assert(rpc_send(snd, fd, tx)==snd->pos); ! tx = NULL; ! rpc_recv(rcv, fd, 100); } Index: rpc.h =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** rpc.h 21 Jun 2005 02:57:38 -0000 1.1 --- rpc.h 15 Aug 2005 06:56:23 -0000 1.2 *************** *** 33,38 **** }; ! int rpc_send(struct pbuf *pbuf, int fd, struct callback c); ! int rpc_recv(struct pbuf *pbuf, int fd, int block); int rpc_call(struct pbuf *snd, struct pbuf *rcv, int fd); --- 33,38 ---- }; ! int rpc_send(struct pbuf *pbuf, int fd, struct callback *c); ! int rpc_recv(struct pbuf *pbuf, int fd, int timeout); int rpc_call(struct pbuf *snd, struct pbuf *rcv, int fd); Index: test.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/test.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test.c 4 Aug 2005 05:09:03 -0000 1.2 --- test.c 15 Aug 2005 06:56:23 -0000 1.3 *************** *** 131,135 **** printf("receive loop\n"); ! rpc_recv(&buf, nfs_fd, 1); } --- 131,135 ---- printf("receive loop\n"); ! rpc_recv(&buf, nfs_fd, -1); } Index: nfs.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/nfs.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** nfs.c 21 Jun 2005 02:57:38 -0000 1.1 --- nfs.c 15 Aug 2005 06:56:23 -0000 1.2 *************** *** 106,109 **** --- 106,110 ---- { struct pbuf pbuf; + struct callback c; /* now the user data struct is setup, do some call stuff! */ *************** *** 114,119 **** /* send it! */ ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_getattr_cb, func, token)); } --- 115,120 ---- /* send it! */ ! c = create_nfs_callback(nfs_getattr_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } *************** *** 157,160 **** --- 158,162 ---- { struct pbuf pbuf; + struct callback c; /* now the user data struct is setup, do some call stuff! */ *************** *** 168,173 **** /* send it! */ ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_lookup_cb, func, token)); } --- 170,175 ---- /* send it! */ ! c = create_nfs_callback(nfs_lookup_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } *************** *** 217,220 **** --- 219,223 ---- struct pbuf pbuf; + struct callback c; readargs_t args; *************** *** 233,238 **** addtobuf(&pbuf, (char *)&args, sizeof(args), 1); ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_read_cb, func, token)); } --- 236,241 ---- addtobuf(&pbuf, (char *)&args, sizeof(args), 1); ! c = create_nfs_callback(nfs_read_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } *************** *** 272,275 **** --- 275,279 ---- { struct pbuf pbuf; + struct callback c; writeargs_t args; *************** *** 290,295 **** adddata(&pbuf, data, count, 0); ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_write_cb, func, token)); } --- 294,299 ---- adddata(&pbuf, data, count, 0); ! c = create_nfs_callback(nfs_write_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } *************** *** 336,339 **** --- 340,344 ---- { struct pbuf pbuf; + struct callback c; /* now the user data struct is setup, do some call stuff! */ *************** *** 347,352 **** addtobuf(&pbuf, (char *)sat, sizeof(sattr_t), 1); ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_create_cb, func, token)); } --- 352,357 ---- addtobuf(&pbuf, (char *)sat, sizeof(sattr_t), 1); ! c = create_nfs_callback(nfs_create_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } *************** *** 455,458 **** --- 460,464 ---- { struct pbuf pbuf; + struct callback c; readdirargs_t args; *************** *** 471,476 **** /* make the call! */ ! return rpc_send(&pbuf, nfs_fd, ! create_nfs_callback(nfs_readdir_cb, func, token)); } --- 477,482 ---- /* make the call! */ ! c = create_nfs_callback(nfs_readdir_cb, func, token); ! return rpc_send(&pbuf, nfs_fd, &c); } |
From: Luke M. <lu...@us...> - 2005-08-15 06:56:31
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18694/src/tests/nfs_latency Modified Files: nfs_glue.c nfs_latency.c Log Message: nfs updates Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** nfs_latency.c 12 Aug 2005 02:29:58 -0000 1.6 --- nfs_latency.c 15 Aug 2005 06:56:23 -0000 1.7 *************** *** 276,283 **** struct marshalled_result *theresult; theresult = (struct marshalled_result*)&data[i].data; ! printf("load generator %ld...\n", i); ! printf("time=%ld\n", theresult->time); ! printf("requests=%ld\n", theresult->sends); ! printf("reples=%ld\n", theresult->recvs); } dbprintf ("NFS_LATENCY DONE\n"); --- 276,283 ---- struct marshalled_result *theresult; theresult = (struct marshalled_result*)&data[i].data; ! printf("load generator %d...\n", i); ! printf("time=%d\n", (int)theresult->time); ! printf("requests=%d\n", (int)theresult->sends); ! printf("reples=%d\n", (int)theresult->recvs); } dbprintf ("NFS_LATENCY DONE\n"); Index: nfs_glue.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_glue.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** nfs_glue.c 27 Jun 2005 04:23:22 -0000 1.2 --- nfs_glue.c 15 Aug 2005 06:56:23 -0000 1.3 *************** *** 80,84 **** while(initialised==0){ struct pbuf buf; ! rpc_recv(&buf, nfs_fd, 1); } --- 80,84 ---- while(initialised==0){ struct pbuf buf; ! rpc_recv(&buf, nfs_fd, -1); } *************** *** 129,133 **** addtobuf(&pbuf, &args, sizeof(args), 1); ! return rpc_send(&pbuf, nfs_fd, c); } --- 129,133 ---- addtobuf(&pbuf, &args, sizeof(args), 1); ! return rpc_send(&pbuf, nfs_fd, &c); } |
From: Luke M. <lu...@us...> - 2005-08-12 02:30:07
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7638/src/tests/nfs_latency Modified Files: nfs_latency.c Log Message: Move toward marshalling implementation Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** nfs_latency.c 4 Aug 2005 05:09:03 -0000 1.5 --- nfs_latency.c 12 Aug 2005 02:29:58 -0000 1.6 *************** *** 7,10 **** --- 7,30 ---- */ + static struct result{ + uint64_t microseconds; + uint64_t sends; + uint64_t recvs; + uint64_t rtt_av; + uint64_t rtt_min; + uint64_t rtt_max; + uint64_t rtt_std; + uint64_t rtt_med; + } result; + + /* We marshall the result up into this structure */ + struct marshalled_result { + uint64_t time; + uint64_t samples; + uint64_t sends; + uint64_t recvs; + uint64_t data[]; + }; + /* * Setup your test. After this is complete you should be ready to *************** *** 16,24 **** { int x; dbprintf("nfs_latency_setup - %s - %d - %s\n", hostname, port, arg); ! x = init_and_open("192.168.0.1", "/tmp", "bench.file"); assert(x==0); return 0; } --- 36,74 ---- { int x; + char *tmp, *path, *filename; + dbprintf("nfs_latency_setup - %s - %d - %s\n", hostname, port, arg); ! /* hostname is the machine you want to hit with nfs traffic. ! * port you can ignore. ! * arg is just a string that you need to parse however you want ! */ ! ! tmp = strdup(arg); ! path = filename = tmp; ! while(*tmp!='\0'){ ! if(*tmp=='/') ! filename=tmp; ! tmp++; ! } ! ! if(filename==path){ ! /* no / found, just a filename */ ! path="/"; ! }else{ ! /* split the filename and path */ ! *filename='\0'; ! filename++; ! } ! ! assert(*path!='\0' && *filename!='\0'); ! ! dbprintf("nfs_latency_setup - path=%s filename=%s\n", path, filename); ! ! x = init_and_open(hostname, path, filename); assert(x==0); + free(tmp); + return 0; } *************** *** 31,34 **** --- 81,85 ---- } + uint64_t samples; uint64_t* sample; int nfs_latency_finished = 0; *************** *** 46,49 **** --- 97,102 ---- int r; uint64_t now, then; + uint64_t start_time, end_time; + uint64_t requests, replies; dbprintf("NFS_LATENCY START\n"); *************** *** 53,56 **** --- 106,110 ---- if(nfs_latency_finished==0){ /* allocate memory for samples */ + samples = target; sample = malloc(sizeof(uint64_t) * target); }else{ *************** *** 59,66 **** --- 113,125 ---- } + start_time = time_stamp(); + requests = replies = 0; + while(i<target){ now = time_stamp(); r = generate_request(now); + requests++; if(process_reply(&then)==0){ + replies++; sample[i] = now - then; dbprintf("delta = %ld\n", sample[i]); *************** *** 69,74 **** --- 128,140 ---- } + end_time = time_stamp(); + + result.microseconds = tick_to_usec(start_time - end_time); + result.sends = requests; + result.recvs = replies; + nfs_latency_finished = 1; dbprintf("NFS latency test complete.\n"); + return 0; } *************** *** 100,119 **** nfs_latency_marshall (char **data, int * size, double running_time) { ! char *ok_string = "nfs_latency succeeded\n"; ! char *not_ok_string = "nfs_latency failed\n"; ! dbprintf("NFS_LATENCY MARSHALL\n"); ! if(nfs_latency_finished==1){ ! dbprintf("test was finished\n"); ! *data = ok_string; ! *size = strlen(*data) + 1; ! return 0; } ! /* else */ ! dbprintf("test was not finished\n"); ! *data = not_ok_string; ! *size = strlen(*data) + 1; ! return 1; } --- 166,199 ---- nfs_latency_marshall (char **data, int * size, double running_time) { ! uint64_t i; ! struct marshalled_result *tosend; ! dbprintf("nfs_latency marshall arguments.\n"); ! tosend = malloc(sizeof(struct marshalled_result) + ! sizeof(uint64_t) * samples); ! ! if (tosend == NULL){ ! dbprintf("Can't malloc %d bytes\n", ! sizeof(struct marshalled_result) + ! sizeof(uint64_t) * samples); ! return -1; } ! ! ! for(i=0; i<samples; i++){ ! /* XXX is sample[i] in uS? */ ! tosend->data[i] = htonll(tick_to_usec(sample[i])); ! } ! ! tosend->time = htonll(result.microseconds); ! tosend->samples = htonll(samples); ! tosend->sends = htonll(result.sends); ! tosend->recvs = htonll(result.recvs); ! ! *data = (char*)tosend; ! *size = sizeof(struct marshalled_result) + (sizeof(uint64_t)*samples); ! ! return 0; } *************** *** 125,129 **** nfs_latency_marshall_cleanup(char **data) { ! dbprintf("NFS_LATENCY CLEANUP MARSHALL\n"); } --- 205,209 ---- nfs_latency_marshall_cleanup(char **data) { ! free(*data); } *************** *** 143,152 **** int *data_len) { ! char *buf = malloc (input_len); ! dbprintf("[unmarshall] start\n"); ! *data = buf; ! memcpy(buf, input, input_len); ! *data_len = input_len; ! dbprintf("[unmarshall] end\n"); return 0; } --- 223,249 ---- int *data_len) { ! uint64_t i; ! struct marshalled_result *theresult; ! ! theresult = (struct marshalled_result *)(input); ! theresult->time = ntohll(theresult->time); ! theresult->samples = ntohll(theresult->samples); ! theresult->sends = ntohll(theresult->sends); ! theresult->recvs = ntohll(theresult->recvs); ! ! for(i=0; i<theresult->samples; i++){ ! theresult->data[i] = ntohll(theresult->data[i]); ! } ! ! *data_len = sizeof(struct marshalled_result) + ! (sizeof(uint64_t) * theresult->samples); ! *data = malloc(*data_len); ! if (*data == NULL){ ! dbprintf("Out of buffer space.\n"); ! return -1; ! } ! ! memcpy(*data, input, input_len); ! return 0; } *************** *** 174,187 **** nfs_latency_output(struct client_data data[], int nelem) { ! int i, ret = 0; dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { ! if (!data[i].valid) { ! dbprintf("We got some invalid data! Trying again\n"); ! ret = 1; ! } ! printf ("NFS_LATENCY RETURNED: %s\n", (char*)data[i].data); } dbprintf ("NFS_LATENCY DONE\n"); ! return ret; } --- 271,285 ---- nfs_latency_output(struct client_data data[], int nelem) { ! int i; dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { ! struct marshalled_result *theresult; ! theresult = (struct marshalled_result*)&data[i].data; ! printf("load generator %ld...\n", i); ! printf("time=%ld\n", theresult->time); ! printf("requests=%ld\n", theresult->sends); ! printf("reples=%ld\n", theresult->recvs); } dbprintf ("NFS_LATENCY DONE\n"); ! return 0; } |
From: Ian W. <del...@us...> - 2005-08-11 01:01:39
|
Update of /cvsroot/ipbench/ipbench2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4613 Modified Files: ipbenchd.py Log Message: fix typo in allow_reuse_address flag Index: ipbenchd.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbenchd.py,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** ipbenchd.py 9 Aug 2005 06:08:09 -0000 1.31 --- ipbenchd.py 11 Aug 2005 01:01:31 -0000 1.32 *************** *** 474,478 **** class IpbenchClientServer(SocketServer.ForkingMixIn,SocketServer.TCPServer): ! allow_resue_addr = True def handle_error(self, request, client_address): --- 474,478 ---- class IpbenchClientServer(SocketServer.ForkingMixIn,SocketServer.TCPServer): ! allow_reuse_addr = True def handle_error(self, request, client_address): |
From: Ian W. <del...@us...> - 2005-08-10 01:45:08
|
Update of /cvsroot/ipbench/ipbench2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6454 Modified Files: ipbenchd.py Log Message: by default bind to all addresses Index: ipbenchd.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbenchd.py,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** ipbenchd.py 3 Aug 2005 23:44:25 -0000 1.30 --- ipbenchd.py 9 Aug 2005 06:08:09 -0000 1.31 *************** *** 508,512 **** parser = OptionParser(usage, version="%prog 2.0") parser.add_option("-i", "--ip", dest="ip", ! help="Ip to bind to", type="string", default="127.0.0.1", action="store") parser.add_option("-p", "--port", dest="port", help="Port to listen on", type="int", default=8036, action="store") --- 508,512 ---- parser = OptionParser(usage, version="%prog 2.0") parser.add_option("-i", "--ip", dest="ip", ! help="Ip to bind to", type="string", default="", action="store") parser.add_option("-p", "--port", dest="port", help="Port to listen on", type="int", default=8036, action="store") |
From: Luke M. <lu...@us...> - 2005-08-04 05:09:12
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27316/src/tests/nfs_latency Modified Files: nfs_latency.c Log Message: I don't know. Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** nfs_latency.c 27 Jun 2005 04:23:22 -0000 1.4 --- nfs_latency.c 4 Aug 2005 05:09:03 -0000 1.5 *************** *** 31,34 **** --- 31,37 ---- } + uint64_t* sample; + int nfs_latency_finished = 0; + /* * Start your test -- timestamp start with gettimeofday() as the last *************** *** 39,46 **** nfs_latency_start (struct timeval *start) { ! int samples=0; int target=1000; int r; ! uint64_t now, then, delta; dbprintf("NFS_LATENCY START\n"); --- 42,49 ---- nfs_latency_start (struct timeval *start) { ! int i=0; int target=1000; int r; ! uint64_t now, then; dbprintf("NFS_LATENCY START\n"); *************** *** 48,59 **** dbprintf("NFS latency start,\n"); ! while(samples<target){ now = time_stamp(); r = generate_request(now); ! r = process_reply(&then); ! delta = now - then; ! dbprintf("delta = %ld\n", delta); } dbprintf("NFS latency test complete.\n"); return 0; --- 51,73 ---- dbprintf("NFS latency start,\n"); ! if(nfs_latency_finished==0){ ! /* allocate memory for samples */ ! sample = malloc(sizeof(uint64_t) * target); ! }else{ ! /* re-use old samples */ ! nfs_latency_finished = 0; ! } ! ! while(i<target){ now = time_stamp(); r = generate_request(now); ! if(process_reply(&then)==0){ ! sample[i] = now - then; ! dbprintf("delta = %ld\n", sample[i]); ! i++; ! } } + nfs_latency_finished = 1; dbprintf("NFS latency test complete.\n"); return 0; *************** *** 86,110 **** nfs_latency_marshall (char **data, int * size, double running_time) { ! char *ok_string = "You have successfully called the nfs_latency test!"; ! char *not_ok_string = "You have unsuccessfully called the nfs_latency test!\n"; dbprintf("NFS_LATENCY MARSHALL\n"); ! /* We randomly fail this */ ! srand(time(NULL)); ! int j = 1 + (int)(10.0 * rand()/(RAND_MAX + 1.0));; ! ! if (j % 2) { ! dbprintf("Test Passed!\n"); *data = ok_string; ! } else { ! dbprintf("Test Failed!\n"); ! *data = not_ok_string; ! } ! ! *size = strlen (*data) + 1; ! if (j % 2) return 0; ! return 1; } --- 100,118 ---- nfs_latency_marshall (char **data, int * size, double running_time) { ! char *ok_string = "nfs_latency succeeded\n"; ! char *not_ok_string = "nfs_latency failed\n"; dbprintf("NFS_LATENCY MARSHALL\n"); ! if(nfs_latency_finished==1){ ! dbprintf("test was finished\n"); *data = ok_string; ! *size = strlen(*data) + 1; return 0; ! } ! /* else */ ! dbprintf("test was not finished\n"); ! *data = not_ok_string; ! *size = strlen(*data) + 1; return 1; } *************** *** 133,137 **** int nfs_latency_unmarshall(char *input, int input_len, char **data, ! int * data_len) { char *buf = malloc (input_len); --- 141,145 ---- int nfs_latency_unmarshall(char *input, int input_len, char **data, ! int *data_len) { char *buf = malloc (input_len); |
From: Luke M. <lu...@us...> - 2005-08-04 05:09:12
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27316/src/tests/nfs_latency/libnfs Modified Files: rpc.c test.c Log Message: I don't know. Index: rpc.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rpc.c 27 Jun 2005 04:23:22 -0000 1.2 --- rpc.c 4 Aug 2005 05:09:03 -0000 1.3 *************** *** 147,151 **** c.param.call.result = &result; ! assert(rpc_send(snd, fd, c)==0); while(notify==0){ --- 147,151 ---- c.param.call.result = &result; ! assert(rpc_send(snd, fd, c)==snd->pos); while(notify==0){ Index: test.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/test.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test.c 21 Jun 2005 02:57:38 -0000 1.1 --- test.c 4 Aug 2005 05:09:03 -0000 1.2 *************** *** 100,104 **** mnt_get_export_list(); ! mnt_mount("/home/lukem/nfs", &pfh); nfs_lookup(&pfh, "bench.file", open_cb, token); --- 100,104 ---- mnt_get_export_list(); ! mnt_mount("/tmp", &pfh); nfs_lookup(&pfh, "bench.file", open_cb, token); |
From: Luke M. <lu...@us...> - 2005-08-03 23:44:34
|
Update of /cvsroot/ipbench/ipbench2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24675 Modified Files: ipbench.py ipbenchd.py Log Message: add #!/usr/bin/env python to the start of python files Index: ipbench.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbench.py,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** ipbench.py 9 May 2005 07:09:35 -0000 1.31 --- ipbench.py 3 Aug 2005 23:44:25 -0000 1.32 *************** *** 1,2 **** --- 1,4 ---- + #!/usr/bin/env python + import time import ipbench_client, ipbench_target Index: ipbenchd.py =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/ipbenchd.py,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** ipbenchd.py 7 Mar 2005 06:12:26 -0000 1.29 --- ipbenchd.py 3 Aug 2005 23:44:25 -0000 1.30 *************** *** 1,2 **** --- 1,4 ---- + #!/usr/bin/env python + import SocketServer import time |
From: Luke M. <lu...@us...> - 2005-08-03 23:36:00
|
Update of /cvsroot/ipbench/ipbench2/src/tests/latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22508 Modified Files: ip.c Log Message: fix small type bug Index: ip.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/latency/ip.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ip.c 15 Sep 2004 02:36:43 -0000 1.3 --- ip.c 3 Aug 2005 23:35:52 -0000 1.4 *************** *** 5,9 **** static int ! create_addr(uint8_t *hostname, uint16_t port, struct sockaddr_in *addr) { struct hostent *he; --- 5,9 ---- static int ! create_addr(char *hostname, uint16_t port, struct sockaddr_in *addr) { struct hostent *he; |
From: Ian W. <del...@us...> - 2005-06-29 01:39:29
|
Update of /cvsroot/ipbench/ipbench2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14745 Modified Files: ChangeLog Log Message: update Index: ChangeLog =================================================================== RCS file: /cvsroot/ipbench/ipbench2/ChangeLog,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** ChangeLog 23 Jun 2005 01:57:13 -0000 1.19 --- ChangeLog 29 Jun 2005 01:39:21 -0000 1.20 *************** *** 1,2 **** --- 1,6 ---- + 2005-06-29 Ian Wienand <ia...@ge...> + + * src/pymod/Makefile.am : install libraries in python site-dir + 2005-06-23 Ian Wienand <ia...@ge...> |
From: Ian W. <del...@us...> - 2005-06-29 01:38:00
|
Update of /cvsroot/ipbench/ipbench2/src/pymod In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14149 Modified Files: Makefile.am Log Message: install libraries in the right place Index: Makefile.am =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/pymod/Makefile.am,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Makefile.am 21 Feb 2005 05:35:34 -0000 1.12 --- Makefile.am 29 Jun 2005 01:37:52 -0000 1.13 *************** *** 21,31 **** #we have the shared library, plus we have a .py file that wraps around #the shared library - PYMOD_DIR=$(DESTDIR)/$(pyexecdir) install-exec-hook: ! $(mkinstalldirs) $(PYMOD_DIR) ! cd $(PYMOD_DIR) && rm -f _ipbench_client.so && $(LN_S) libipbenchClientPython.so _ipbench_client.so ! cp ipbench_client.py $(PYMOD_DIR) ! cd $(PYMOD_DIR) && rm -f _ipbench_target.so && $(LN_S) libipbenchTargetPython.so _ipbench_target.so ! cp ipbench_target.py $(PYMOD_DIR) ipbench_client.i: $(srcdir)/ipbench.i.in --- 21,30 ---- #we have the shared library, plus we have a .py file that wraps around #the shared library install-exec-hook: ! $(mkinstalldirs) $(PYTHON_SITE_PKG) ! cd $(PYTHON_SITE_PKG) && rm -f _ipbench_client.so && $(LN_S) libipbenchClientPython.so _ipbench_client.so ! cp ipbench_client.py $(PYTHON_SITE_PKG) ! cd $(PYTHON_SITE_PKG) && rm -f _ipbench_target.so && $(LN_S) libipbenchTargetPython.so _ipbench_target.so ! cp ipbench_target.py $(PYTHON_SITE_PKG) ipbench_client.i: $(srcdir)/ipbench.i.in |
From: Luke M. <lu...@us...> - 2005-06-27 04:23:31
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9702 Modified Files: nfs_glue.c nfs_latency.c Log Message: simple test loop, change rpc_send semantics Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** nfs_latency.c 23 Jun 2005 04:27:33 -0000 1.3 --- nfs_latency.c 27 Jun 2005 04:23:22 -0000 1.4 *************** *** 24,28 **** } ! int nfs_latency_setup_controller(char *arg) { dbprintf("nfs_latency_setup_controller - %s\n", arg); --- 24,29 ---- } ! int ! nfs_latency_setup_controller(char *arg) { dbprintf("nfs_latency_setup_controller - %s\n", arg); *************** *** 38,49 **** nfs_latency_start (struct timeval *start) { ! dbprintf("DUMMY START\n"); gettimeofday(start, NULL); ! /* put test here */ ! dbprintf("Running test (sleep 5)\n"); ! sleep(5); ! dbprintf("Test done!\n"); return 0; } --- 39,60 ---- nfs_latency_start (struct timeval *start) { ! int samples=0; ! int target=1000; ! int r; ! uint64_t now, then, delta; ! ! dbprintf("NFS_LATENCY START\n"); gettimeofday(start, NULL); + dbprintf("NFS latency start,\n"); ! while(samples<target){ ! now = time_stamp(); ! r = generate_request(now); ! r = process_reply(&then); ! delta = now - then; ! dbprintf("delta = %ld\n", delta); ! } + dbprintf("NFS latency test complete.\n"); return 0; } *************** *** 57,61 **** { gettimeofday (stop, NULL); ! dbprintf ("DUMMY STOP\n"); return 0; } --- 68,72 ---- { gettimeofday (stop, NULL); ! dbprintf ("NFS_LATENCY STOP\n"); return 0; } *************** *** 75,82 **** nfs_latency_marshall (char **data, int * size, double running_time) { ! char *ok_string = "You have successfully called the dummy test!"; ! char *not_ok_string = "You have unsuccessfully called the dummy test!\n"; ! dbprintf("DUMMY MARSHALL\n"); /* We randomly fail this */ --- 86,93 ---- nfs_latency_marshall (char **data, int * size, double running_time) { ! char *ok_string = "You have successfully called the nfs_latency test!"; ! char *not_ok_string = "You have unsuccessfully called the nfs_latency test!\n"; ! dbprintf("NFS_LATENCY MARSHALL\n"); /* We randomly fail this */ *************** *** 106,110 **** nfs_latency_marshall_cleanup(char **data) { ! dbprintf("DUMMY CLEANUP MARSHALL\n"); } --- 117,121 ---- nfs_latency_marshall_cleanup(char **data) { ! dbprintf("NFS_LATENCY CLEANUP MARSHALL\n"); } *************** *** 156,160 **** { int i, ret = 0; ! dbprintf("DUMMY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { if (!data[i].valid) { --- 167,171 ---- { int i, ret = 0; ! dbprintf("NFS_LATENCY OUTPUT (nelem %d)\n", nelem); for (i = 0; i < nelem; i++) { if (!data[i].valid) { *************** *** 162,168 **** ret = 1; } ! printf ("DUMMY RETURNED: %s\n", (char *)data[i].data); } ! dbprintf ("DUMMY DONE\n"); return ret; } --- 173,179 ---- ret = 1; } ! printf ("NFS_LATENCY RETURNED: %s\n", (char*)data[i].data); } ! dbprintf ("NFS_LATENCY DONE\n"); return ret; } Index: nfs_glue.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_glue.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** nfs_glue.c 23 Jun 2005 04:27:33 -0000 1.1 --- nfs_glue.c 27 Jun 2005 04:23:22 -0000 1.2 *************** *** 110,114 **** */ static int ! generate_read_request(){ struct pbuf pbuf; struct callback c; --- 110,114 ---- */ static int ! generate_read_request(uint64_t timestamp){ struct pbuf pbuf; struct callback c; *************** *** 117,121 **** /* set up callback */ c.func = read_callback; ! c.param.time.timestamp = time_stamp(); /* set up buffer */ --- 117,121 ---- /* set up callback */ c.func = read_callback; ! c.param.time.timestamp = timestamp; /* set up buffer */ *************** *** 136,142 **** */ int ! generate_request(){ assert(initialised==1); ! return generate_read_request(); } --- 136,142 ---- */ int ! generate_request(uint64_t timestamp){ assert(initialised==1); ! return generate_read_request(timestamp); } |
From: Luke M. <lu...@us...> - 2005-06-27 04:23:31
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9702/libnfs Modified Files: rpc.c Log Message: simple test loop, change rpc_send semantics Index: rpc.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/libnfs/rpc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** rpc.c 21 Jun 2005 02:57:38 -0000 1.1 --- rpc.c 27 Jun 2005 04:23:22 -0000 1.2 *************** *** 52,56 **** rpc_send(struct pbuf *pbuf, int fd, struct callback c) { ! int xid; assert(pbuf && pbuf->pos >=0 && pbuf->pos <= PBUF_SIZE); --- 52,56 ---- rpc_send(struct pbuf *pbuf, int fd, struct callback c) { ! int xid, r; assert(pbuf && pbuf->pos >=0 && pbuf->pos <= PBUF_SIZE); *************** *** 66,75 **** //rpc_print("sending:", pbuf->buf, pbuf->pos); ! if(send(fd, pbuf->buf, pbuf->pos, 0) != pbuf->pos) ! return -1; ! //printf("done\n"); ! return 0; } --- 66,80 ---- //rpc_print("sending:", pbuf->buf, pbuf->pos); ! r = send(fd, pbuf->buf, pbuf->pos, 0); ! if(r<0){ ! if(errno==EAGAIN){ ! return 0; /* sent 0 bytes successfully */ ! }else{ ! return -1; ! } ! } ! return r; } |
From: Luke M. <lu...@us...> - 2005-06-23 04:27:56
|
Update of /cvsroot/ipbench/ipbench2/src/tests/nfs_latency In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19457 Modified Files: Makefile.am nfs_latency.c Added Files: nfs_glue.c nfs_glue.h Log Message: move nfs layer glue code into nfs_glue.c/nfs_glue.h Index: nfs_latency.c =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/nfs_latency.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** nfs_latency.c 22 Jun 2005 00:31:14 -0000 1.2 --- nfs_latency.c 23 Jun 2005 04:27:33 -0000 1.3 *************** *** 1,4 **** #include "nfs_latency.h" ! /* a dummy test */ /* --- 1,4 ---- #include "nfs_latency.h" ! #include "nfs_glue.h" /* *************** *** 15,19 **** --- 15,24 ---- nfs_latency_setup(char *hostname, int port, char *arg) { + int x; dbprintf("nfs_latency_setup - %s - %d - %s\n", hostname, port, arg); + + x = init_and_open("192.168.0.1", "/tmp", "bench.file"); + assert(x==0); + return 0; } --- NEW FILE: nfs_glue.h --- int init_and_open(char *hostname, char *mountpoint, char *filename); int generate_request(); int process_reply(uint64_t *timestamp); --- NEW FILE: nfs_glue.c --- #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <string.h> #include <assert.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include "nfs_latency.h" /* for microuptime stuff */ #include "libnfs/nfs.h" #include "libnfs/rpc.h" #include "libnfs/xdr.h" #include "libnfs/callback.h" static int initialised = 0; static struct cookie nfs_file_handle; int resolve(char *name, struct sockaddr_in *sock){ struct hostent *hp; if((hp = gethostbyname(name))==NULL) return -1; memset(sock, 0, sizeof(struct sockaddr_in)); memcpy(&sock->sin_addr, hp->h_addr, hp->h_length); assert(hp->h_addrtype == PF_INET); sock->sin_family = PF_INET; sock->sin_port = htons(0); return 0; } static void open_cb(uintptr_t token, int status, struct cookie *fh, fattr_t *pattrs){ static int idem = 0; assert(idem==0); idem = 1; if(status==NFS_OK){ nfs_file_handle = *fh; initialised = 1; }else{ initialised = -1; } return; } int init_and_open(char *hostname, char *mountpoint, char *filename){ struct sockaddr_in addr; struct cookie pfh; microuptime_calibrate(); if(resolve(hostname, &addr) < 0){ printf("error resolving \"%s\"\n", hostname); exit(-1); } callback_init(10,100000); map_init(&addr); mnt_init(&addr); nfs_init(&addr); mnt_get_export_list(); mnt_mount(mountpoint, &pfh); nfs_lookup(&pfh, filename, open_cb, 0); while(initialised==0){ struct pbuf buf; rpc_recv(&buf, nfs_fd, 1); } if(initialised < 0){ return -1; } return 0; } #define READ_OFFSET 0 #define READ_SIZE 1024 uint64_t last_sample = 0; static void read_callback(struct callback *c, struct pbuf *pbuf){ assert(c->func==read_callback); assert(last_sample==0); /* XXX we should really check the NFS error code here */ last_sample = c->param.time.timestamp; } /* * instead of using nfs_read(), we generate ourselves a read with a * special timing callback. */ static int generate_read_request(){ struct pbuf pbuf; struct callback c; readargs_t args; /* set up callback */ c.func = read_callback; c.param.time.timestamp = time_stamp(); /* set up buffer */ initbuf(&pbuf, NFS_NUMBER, NFS_VERSION, NFSPROC_READ); args.file = nfs_file_handle; args.offset = READ_OFFSET; args.count = READ_SIZE; args.totalcount = 0; /* unused as per RFC */ addtobuf(&pbuf, &args, sizeof(args), 1); return rpc_send(&pbuf, nfs_fd, c); } /* * In the future this can be used to generate a varied workload. */ int generate_request(){ assert(initialised==1); return generate_read_request(); } int process_reply(uint64_t *timestamp){ struct pbuf pbuf; assert(initialised==1); last_sample=0; /* do a non-blocking recv */ rpc_recv(&pbuf, nfs_fd, 0); if(last_sample==0) return -1; *timestamp = last_sample; return 0; } Index: Makefile.am =================================================================== RCS file: /cvsroot/ipbench/ipbench2/src/tests/nfs_latency/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 22 Jun 2005 00:31:14 -0000 1.3 --- Makefile.am 23 Jun 2005 04:27:33 -0000 1.4 *************** *** 5,11 **** plugin_CPPFLAGS=-I$(top_srcdir)/src ! LIBNFS_FILES=libnfs/callback.c libnfs/init.c libnfs/mount.c libnfs/nfs.c libnfs/portmap.c libnfs/rpc.c libnfs/xdr.c libnfs/callback.h libnfs/init.h libnfs/nfs.h libnfs/nfsrpc.h libnfs/rpc.h libnfs/xdr.h ! libnfs_latency_la_SOURCES=nfs_latency.c plugin.c nfs_latency.h $(LIBNFS_FILES) libnfs_latency_la_LIBADD = ../../lib/libipbench.la --- 5,11 ---- plugin_CPPFLAGS=-I$(top_srcdir)/src ! LIBNFS_FILES=libnfs/callback.c libnfs/mount.c libnfs/nfs.c libnfs/portmap.c libnfs/rpc.c libnfs/xdr.c libnfs/callback.h libnfs/nfs.h libnfs/nfsrpc.h libnfs/rpc.h libnfs/xdr.h ! libnfs_latency_la_SOURCES=nfs_glue.c nfs_latency.c plugin.c nfs_glue.h nfs_latency.h $(LIBNFS_FILES) libnfs_latency_la_LIBADD = ../../lib/libipbench.la |