README: add hint on missing libaio-devel package
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 1997bb7cc8761e28ba9baf9f8d303530805d37ab..b79aa93e644296be9bdf0439863760d8dd4a6cfd 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -49,6 +49,7 @@ int nr_process = 0;
 int nr_thread = 0;
 int shm_id = 0;
 int temp_stall_ts;
+unsigned long done_secs = 0;
 
 static struct fio_mutex *startup_mutex;
 static volatile int fio_abort;
@@ -74,10 +75,12 @@ static void terminate_threads(int group_id)
        struct thread_data *td;
        int i;
 
+       dprint(FD_PROCESS, "terminate group_id=%d\n", group_id);
+
        for_each_td(td, i) {
                if (group_id == TERMINATE_ALL || groupid == td->groupid) {
-                       dprint(FD_PROCESS, "setting terminate on %d\n",
-                                                               td->pid);
+                       dprint(FD_PROCESS, "setting terminate on %s/%d\n",
+                                                       td->o.name, td->pid);
                        td->terminate = 1;
                        td->o.start_delay = 0;
 
@@ -1111,10 +1114,13 @@ reaped:
                (*nr_running)--;
                (*m_rate) -= td->o.ratemin;
                (*t_rate) -= td->o.rate;
-               pending--;
+               if (!td->pid)
+                       pending--;
 
                if (td->error)
                        exit_value++;
+
+               done_secs += mtime_since_now(&td->epoch) / 1000;
        }
 
        if (*nr_running == cputhreads && !pending && realthreads)
@@ -1222,8 +1228,11 @@ static void run_threads(void)
                                        continue;
                        }
 
-                       if (td->o.stonewall && (nr_started || nr_running))
+                       if (td->o.stonewall && (nr_started || nr_running)) {
+                               dprint(FD_PROCESS, "%s: stonewall wait\n",
+                                                       td->o.name);
                                break;
+                       }
 
                        /*
                         * Set state to created. Thread will transition