Kill io_u timeout handling
authorJens Axboe <jens.axboe@oracle.com>
Thu, 16 Oct 2008 18:36:51 +0000 (20:36 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Thu, 16 Oct 2008 18:36:51 +0000 (20:36 +0200)
It has never been enabled, get rid of it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fio.c
fio.h
io_u.c
ioengines.c

diff --git a/fio.c b/fio.c
index 773f10698c83433748e78791431dcbf5a78883bc..7fb9490f64994aed541994cd0e0f8457decd9799 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -750,8 +750,6 @@ static int init_io_u(struct thread_data *td)
                flist_add(&io_u->list, &td->io_u_freelist);
        }
 
-       io_u_init_timeout();
-
        return 0;
 }
 
@@ -972,7 +970,6 @@ static void *thread_main(void *data)
        }
 
        fio_gettime(&td->epoch, NULL);
-       memcpy(&td->timeout_end, &td->epoch, sizeof(td->epoch));
        getrusage(RUSAGE_SELF, &td->ts.ru_start);
 
        runtime[0] = runtime[1] = 0;
diff --git a/fio.h b/fio.h
index 63cd83f5e1be23d4548739a682947667f131533e..1484749862d6aa181521e0719145674b3374ecfc 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -632,12 +632,6 @@ struct thread_data {
         */
        struct flist_head io_log_list;
 
-       /*
-        * timeout handling
-        */
-       struct timeval timeout_end;
-       struct itimerval timer;
-
        /*
         * for fileservice, how often to switch to a new file
         */
@@ -668,13 +662,6 @@ enum {
        FIO_ETA_NEVER,
 };
 
-/*
- * 30 second per-io_u timeout, with 5 second intervals to avoid resetting
- * the timer on each queue operation.
- */
-#define IO_U_TIMEOUT_INC       5
-#define IO_U_TIMEOUT           30
-
 #define __td_verror(td, err, msg, func)                                        \
        do {                                                            \
                if ((td)->error)                                        \
@@ -937,8 +924,6 @@ extern long __must_check io_u_sync_complete(struct thread_data *, struct io_u *)
 extern long __must_check io_u_queued_complete(struct thread_data *, int);
 extern void io_u_queued(struct thread_data *, struct io_u *);
 extern void io_u_log_error(struct thread_data *, struct io_u *);
-extern void io_u_init_timeout(void);
-extern void io_u_set_timeout(struct thread_data *);
 extern void io_u_mark_depth(struct thread_data *, unsigned int);
 extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned int);
 void io_u_mark_complete(struct thread_data *, unsigned int);
diff --git a/io_u.c b/io_u.c
index e7d1efa6dac80f86da7dd41309557d2416d7d1e2..08969427dd41b3753058b831987492e845ac27f5 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -8,11 +8,6 @@
 #include "fio.h"
 #include "hash.h"
 
-/*
- * Change this define to play with the timeout handling
- */
-#undef FIO_USE_TIMEOUT
-
 struct io_completion_data {
        int nr;                         /* input */
 
@@ -1035,86 +1030,3 @@ void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
        } else
                memset(ptr, 0, max_bs);
 }
-
-#ifdef FIO_USE_TIMEOUT
-void io_u_set_timeout(struct thread_data *td)
-{
-       assert(td->cur_depth);
-
-       td->timer.it_interval.tv_sec = 0;
-       td->timer.it_interval.tv_usec = 0;
-       td->timer.it_value.tv_sec = IO_U_TIMEOUT + IO_U_TIMEOUT_INC;
-       td->timer.it_value.tv_usec = 0;
-       setitimer(ITIMER_REAL, &td->timer, NULL);
-       fio_gettime(&td->timeout_end, NULL);
-}
-
-static void io_u_dump(struct io_u *io_u)
-{
-       unsigned long t_start = mtime_since_now(&io_u->start_time);
-       unsigned long t_issue = mtime_since_now(&io_u->issue_time);
-
-       log_err("io_u=%p, t_start=%lu, t_issue=%lu\n", io_u, t_start, t_issue);
-       log_err("  buf=%p/%p, len=%lu/%lu, offset=%llu\n", io_u->buf,
-                                               io_u->xfer_buf, io_u->buflen,
-                                               io_u->xfer_buflen,
-                                               io_u->offset);
-       log_err("  ddir=%d, fname=%s\n", io_u->ddir, io_u->file->file_name);
-}
-#else
-void io_u_set_timeout(struct thread_data fio_unused *td)
-{
-}
-#endif
-
-#ifdef FIO_USE_TIMEOUT
-static void io_u_timeout_handler(int fio_unused sig)
-{
-       struct thread_data *td, *__td;
-       pid_t pid = getpid();
-       struct flist_head *entry;
-       struct io_u *io_u;
-       int i;
-
-       log_err("fio: io_u timeout\n");
-
-       /*
-        * TLS would be nice...
-        */
-       td = NULL;
-       for_each_td(__td, i) {
-               if (__td->pid == pid) {
-                       td = __td;
-                       break;
-               }
-       }
-
-       if (!td) {
-               log_err("fio: io_u timeout, can't find job\n");
-               exit(1);
-       }
-
-       if (!td->cur_depth) {
-               log_err("fio: timeout without pending work?\n");
-               return;
-       }
-
-       log_err("fio: io_u timeout: job=%s, pid=%d\n", td->o.name, td->pid);
-
-       flist_for_each(entry, &td->io_u_busylist) {
-               io_u = flist_entry(entry, struct io_u, list);
-
-               io_u_dump(io_u);
-       }
-
-       td_verror(td, ETIMEDOUT, "io_u timeout");
-       exit(1);
-}
-#endif
-
-void io_u_init_timeout(void)
-{
-#ifdef FIO_USE_TIMEOUT
-       signal(SIGALRM, io_u_timeout_handler);
-#endif
-}
index 1688c633db66233fe55caf8284f195d4a7bac8a0..3ef0d032938a11062ba513fe5154ba9b6b04d678 100644 (file)
@@ -234,13 +234,6 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
                if (td->o.read_iolog_file)
                        memcpy(&td->last_issue, &io_u->issue_time,
                                        sizeof(struct timeval));
-
-               /*
-                * for a sync engine, set the timeout upfront
-                */
-               if (mtime_since(&td->timeout_end, &io_u->issue_time)
-                   < IO_U_TIMEOUT)
-                       io_u_set_timeout(td);
        }
 
        if (io_u->ddir != DDIR_SYNC)
@@ -284,15 +277,6 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
                if (td->o.read_iolog_file)
                        memcpy(&td->last_issue, &io_u->issue_time,
                                        sizeof(struct timeval));
-
-               /*
-                * async engine, set the timeout here
-                */
-               if (ret == FIO_Q_QUEUED &&
-                   (mtime_since(&td->timeout_end, &io_u->issue_time)
-                       < IO_U_TIMEOUT)) {
-                       io_u_set_timeout(td);
-               }
        }
 
        return ret;