int lfs_test_streamread(){ int i=0; uint64_t bw; pthread_t tids[THREAD_NUMS]; srand(time(0)); uint64_t stime,ctime; fd=open("/dev/sdb",O_RDWR,0666); printf("fd=%d",fd); srand(0); for(i=0;i<MAXSIZE;i++){ offs[i]= AIO_BLKSIZE*(rand() % MAXSIZE); } stime = cur_usec(); for(i=0;i<THREAD_NUMS;i++){ printf("going to read %d\n",fd); pthread_create(&tids[i],NULL,lfs_test_read,(void *)i); } for(i=0;i<THREAD_NUMS;i++){ pthread_join(tids[i],NULL); } ctime = cur_usec(); bw = AIO_BLKSIZE*MAXSIZE; bw = bw / (ctime - stime); printf("bw=%"PRIu64"",bw); bw *= 1000000; bw = bw / 1024; printf("stat: bw = %"PRIu64" kB/s\n",bw); return 1; }
inline uint64_t elapsed_usec() const { compiler_barrier(); const uint64_t t0 = start_; const uint64_t t1 = cur_usec(m_); compiler_barrier(); return t1 - t0; }
inline uint64_t lap() { compiler_barrier(); const uint64_t t0 = start_; const uint64_t t1 = cur_usec(m_); start_ = t1; compiler_barrier(); return t1 - t0; }