|
@@ -1098,7 +1098,7 @@ static void *worker_thread(void *__tdata)
|
|
|
u8 *global_data;
|
|
|
u8 *process_data;
|
|
|
u8 *thread_data;
|
|
|
- u64 bytes_done;
|
|
|
+ u64 bytes_done, secs;
|
|
|
long work_done;
|
|
|
u32 l;
|
|
|
struct rusage rusage;
|
|
@@ -1254,7 +1254,8 @@ static void *worker_thread(void *__tdata)
|
|
|
timersub(&stop, &start0, &diff);
|
|
|
td->runtime_ns = diff.tv_sec * NSEC_PER_SEC;
|
|
|
td->runtime_ns += diff.tv_usec * NSEC_PER_USEC;
|
|
|
- td->speed_gbs = bytes_done / (td->runtime_ns / NSEC_PER_SEC) / 1e9;
|
|
|
+ secs = td->runtime_ns / NSEC_PER_SEC;
|
|
|
+ td->speed_gbs = secs ? bytes_done / secs / 1e9 : 0;
|
|
|
|
|
|
getrusage(RUSAGE_THREAD, &rusage);
|
|
|
td->system_time_ns = rusage.ru_stime.tv_sec * NSEC_PER_SEC;
|