projects
/
fio.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
edffcb9
)
[PATCH] Note when thread is fsyncing
author
Jens Axboe
<axboe@suse.de>
Thu, 8 Jun 2006 12:41:05 +0000
(14:41 +0200)
committer
Jens Axboe
<axboe@suse.de>
Thu, 8 Jun 2006 12:41:05 +0000
(14:41 +0200)
fio.c
patch
|
blob
|
blame
|
history
diff --git
a/fio.c
b/fio.c
index 1248971aca2a75da0fc32074898312ebe0895696..44463350c2acf31dae7d0017d19f7397d4a8148d 100644
(file)
--- a/
fio.c
+++ b/
fio.c
@@
-57,6
+57,7
@@
enum {
TD_INITIALIZED,
TD_RUNNING,
TD_VERIFYING,
TD_INITIALIZED,
TD_RUNNING,
TD_VERIFYING,
+ TD_FSYNCING,
TD_EXITED,
TD_REAPED,
};
TD_EXITED,
TD_REAPED,
};
@@
-747,6
+748,8
@@
static void do_io(struct thread_data *td)
struct timeval s, e;
unsigned long usec;
struct timeval s, e;
unsigned long usec;
+ td_set_runstate(td, TD_RUNNING);
+
while (td->this_io_bytes[td->ddir] < td->io_size) {
struct timespec ts = { .tv_sec = 0, .tv_nsec = 0};
struct timespec *timeout;
while (td->this_io_bytes[td->ddir] < td->io_size) {
struct timespec ts = { .tv_sec = 0, .tv_nsec = 0};
struct timespec *timeout;
@@
-822,8
+825,10
@@
static void do_io(struct thread_data *td)
if (td->cur_depth)
cleanup_pending_aio(td);
if (td->cur_depth)
cleanup_pending_aio(td);
- if (should_fsync(td) && td->end_fsync)
+ if (should_fsync(td) && td->end_fsync) {
+ td_set_runstate(td, TD_FSYNCING);
sync_td(td);
sync_td(td);
+ }
}
static void cleanup_io(struct thread_data *td)
}
static void cleanup_io(struct thread_data *td)
@@
-1447,6
+1452,9
@@
static void check_str_update(struct thread_data *td)
case TD_VERIFYING:
c = 'V';
break;
case TD_VERIFYING:
c = 'V';
break;
+ case TD_FSYNCING:
+ c = 'F';
+ break;
case TD_CREATED:
c = 'C';
break;
case TD_CREATED:
c = 'C';
break;
@@
-1549,7
+1557,7
@@
static int thread_eta(struct thread_data *td, unsigned long elapsed)
eta_sec = INT_MAX;
} else {
/*
eta_sec = INT_MAX;
} else {
/*
- * thread is already done
+ * thread is already done
or waiting for fsync
*/
eta_sec = 0;
}
*/
eta_sec = 0;
}
@@
-1571,7
+1579,8
@@
static void print_thread_status(void)
for (i = 0; i < thread_number; i++) {
struct thread_data *td = &threads[i];
for (i = 0; i < thread_number; i++) {
struct thread_data *td = &threads[i];
- if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING){
+ if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING||
+ td->runstate == TD_FSYNCING) {
nr_running++;
t_rate += td->rate;
m_rate += td->ratemin;
nr_running++;
t_rate += td->rate;
m_rate += td->ratemin;