diff --git a/sys/src/cmd/aux/mkfile b/sys/src/cmd/aux/mkfile index 943ae06f2..3cc2a3dd0 100644 --- a/sys/src/cmd/aux/mkfile +++ b/sys/src/cmd/aux/mkfile @@ -31,6 +31,7 @@ TARG=\ rdwr\ reboot\ searchfs\ + seek\ statusbar\ stub\ tablet\ diff --git a/sys/src/cmd/aux/seek.c b/sys/src/cmd/aux/seek.c new file mode 100644 index 000000000..134463b91 --- /dev/null +++ b/sys/src/cmd/aux/seek.c @@ -0,0 +1,33 @@ +#include +#include + +void +main(int argc, char **argv) +{ + char buf[512]; + vlong size; + vlong pos; + vlong ns; + int fd; + int i; + + if(argc != 2) { + fprint(2, "usage: %s /dev/sd??/data\n", argv[0]); + exits("usage"); + } + + srand(time(0)); + fd = open(argv[1], OREAD); + if(fd < 0) + sysfatal("open: %r"); + size = seek(fd, 0, 2) / 512; + ns = nsec(); + for(i=0;i<100;i++) { + pos = (vlong)(frand() * size); + if(pread(fd, buf, 512, 512 * pos) < 512) + sysfatal("read: %r"); + } + ns = nsec() - ns; + print("%.3g\n", ((double)ns)/100000000); + exits(nil); +}