Constify a few more hot paths
authorJens Axboe <axboe@fb.com>
Tue, 30 Sep 2014 22:04:12 +0000 (16:04 -0600)
committerJens Axboe <axboe@fb.com>
Tue, 30 Sep 2014 22:04:12 +0000 (16:04 -0600)
Signed-off-by: Jens Axboe <axboe@fb.com>
19 files changed:
engines/binject.c
engines/glusterfs_async.c
engines/guasi.c
engines/libaio.c
engines/null.c
engines/posixaio.c
engines/rbd.c
engines/rdma.c
engines/sg.c
engines/skeleton_external.c
engines/solarisaio.c
engines/sync.c
engines/windowsaio.c
fio_time.h
gettime.c
ioengine.h
ioengines.c
iolog.c
iolog.h

index 43e316950be45a3f9c9a183c6e7619b60b980b98..c0baf9d262c87376e10cfc43c7732a742c6b50e6 100644 (file)
@@ -91,7 +91,8 @@ one_more:
 }
 
 static int fio_binject_getevents(struct thread_data *td, unsigned int min,
-                             unsigned int max, struct timespec fio_unused *t)
+                                unsigned int max,
+                                const struct timespec fio_unused *t)
 {
        struct binject_data *bd = td->io_ops->data;
        int left = max, ret, r = 0, ev_index = 0;
index 7b0b30a747fc460c921b4ee0776abfaed5cce4d9..599bc5dfbfc0acc1e3efe72a74d606cdf249e3b8 100644 (file)
@@ -20,7 +20,7 @@ static struct io_u *fio_gf_event(struct thread_data *td, int event)
 }
 
 static int fio_gf_getevents(struct thread_data *td, unsigned int min,
-                           unsigned int max, struct timespec *t)
+                           unsigned int max, const struct timespec *t)
 {
        struct gf_data *g = td->io_ops->data;
        unsigned int events = 0;
index c9c742959902793f34e98f94acb9b61be7a7bb86..c586f09c809dc246a3172f7b27d60a24c7e30ca4 100644 (file)
@@ -80,7 +80,7 @@ static struct io_u *fio_guasi_event(struct thread_data *td, int event)
 }
 
 static int fio_guasi_getevents(struct thread_data *td, unsigned int min,
-                              unsigned int max, struct timespec *t)
+                              unsigned int max, const struct timespec *t)
 {
        struct guasi_data *ld = td->io_ops->data;
        int n, r;
index bcc296ffdbc2c1046e9d91774381c34748b4d1ea..cd10aabfe831c772602cc9523756e27dcc4f310a 100644 (file)
@@ -139,13 +139,19 @@ static int user_io_getevents(io_context_t aio_ctx, unsigned int max,
 }
 
 static int fio_libaio_getevents(struct thread_data *td, unsigned int min,
-                               unsigned int max, struct timespec *t)
+                               unsigned int max, const struct timespec *t)
 {
        struct libaio_data *ld = td->io_ops->data;
        struct libaio_options *o = td->eo;
        unsigned actual_min = td->o.iodepth_batch_complete == 0 ? 0 : min;
+       struct timespec __lt, *lt = NULL;
        int r, events = 0;
 
+       if (t) {
+               __lt = *t;
+               lt = &__lt;
+       }
+
        do {
                if (o->userspace_reap == 1
                    && actual_min == 0
@@ -155,7 +161,7 @@ static int fio_libaio_getevents(struct thread_data *td, unsigned int min,
                                ld->aio_events + events);
                } else {
                        r = io_getevents(ld->aio_ctx, actual_min,
-                               max, ld->aio_events + events, t);
+                               max, ld->aio_events + events, lt);
                }
                if (r >= 0)
                        events += r;
index e7df6a134d479c5ab370f496044619b18f6b15d2..600093052d683bc1d3e5a44d2ecd5e590e5d4786 100644 (file)
@@ -32,7 +32,7 @@ static struct io_u *fio_null_event(struct thread_data *td, int event)
 
 static int fio_null_getevents(struct thread_data *td, unsigned int min_events,
                              unsigned int fio_unused max,
-                             struct timespec fio_unused *t)
+                             const struct timespec fio_unused *t)
 {
        struct null_data *nd = (struct null_data *) td->io_ops->data;
        int ret = 0;
index 2df26af3848eb6b4c14aea90ef16d0e946e8c43e..8ab88fbb1faf2821c442015f85f78e24cb1d244d 100644 (file)
@@ -91,7 +91,7 @@ static int fio_posixaio_prep(struct thread_data fio_unused *td,
 #define SUSPEND_ENTRIES        8
 
 static int fio_posixaio_getevents(struct thread_data *td, unsigned int min,
-                                 unsigned int max, struct timespec *t)
+                                 unsigned int max, const struct timespec *t)
 {
        struct posixaio_data *pd = td->io_ops->data;
        os_aiocb_t *suspend_list[SUSPEND_ENTRIES];
index 85a705fc8bd4d8ae6347f2378a0058e8566c0d2f..6fe87b8d010cc6bd1161655fb1e7684528406ebc 100644 (file)
@@ -222,7 +222,7 @@ static struct io_u *fio_rbd_event(struct thread_data *td, int event)
 }
 
 static int fio_rbd_getevents(struct thread_data *td, unsigned int min,
-                            unsigned int max, struct timespec *t)
+                            unsigned int max, const struct timespec *t)
 {
        struct rbd_data *rbd_data = td->io_ops->data;
        unsigned int events = 0;
index af50187a62bf5f2607cffe25eeb456b12987598c..50812020f64673d400ecb59658a6cfbe8f94d038 100644 (file)
@@ -524,7 +524,7 @@ static struct io_u *fio_rdmaio_event(struct thread_data *td, int event)
 }
 
 static int fio_rdmaio_getevents(struct thread_data *td, unsigned int min,
-                               unsigned int max, struct timespec *t)
+                               unsigned int max, const struct timespec *t)
 {
        struct rdmaio_data *rd = td->io_ops->data;
        enum ibv_wc_opcode comp_opcode;
index 1a027daeb353fca972da13cf8796983024364463..6272b79b568242239ae93cd028e919029b83c7b7 100644 (file)
@@ -62,7 +62,8 @@ static int pollin_events(struct pollfd *pfds, int fds)
 }
 
 static int fio_sgio_getevents(struct thread_data *td, unsigned int min,
-                             unsigned int max, struct timespec fio_unused *t)
+                             unsigned int max,
+                             const struct timespec fio_unused *t)
 {
        struct sgio_data *sd = td->io_ops->data;
        int left = max, ret, r = 0;
index f9a0e1cdddf73011880664cb39e3d133596c7240..63a6f8d177edbd31b0fc913a3c96b63e59a35e33 100644 (file)
@@ -38,7 +38,7 @@ static struct io_u *fio_skeleton_event(struct thread_data *td, int event)
  * numbers. Required.
  */
 static int fio_skeleton_getevents(struct thread_data *td, unsigned int min,
-                                 unsigned int max, struct timespec *t)
+                                 unsigned int max, const struct timespec *t)
 {
        return 0;
 }
index 137dc225d151393959266e0e6e1df51377c67bfc..55a0cb95d133f8b6b85730023bf72172db5ec2f4 100644 (file)
@@ -73,7 +73,7 @@ static void wait_for_event(struct timeval *tv)
 }
 
 static int fio_solarisaio_getevents(struct thread_data *td, unsigned int min,
-                                   unsigned int max, struct timespec *t)
+                                   unsigned int max, const struct timespec *t)
 {
        struct solarisaio_data *sd = td->io_ops->data;
        struct timeval tv;
index 1329946459ae27edc8c45e603faa4b97448eac7c..41612dfa8c31ba0f8fc81436d162fee1ece500da 100644 (file)
@@ -138,7 +138,7 @@ static int fio_syncio_queue(struct thread_data *td, struct io_u *io_u)
 
 static int fio_vsyncio_getevents(struct thread_data *td, unsigned int min,
                                 unsigned int max,
-                                struct timespec fio_unused *t)
+                                const struct timespec fio_unused *t)
 {
        struct syncio_data *sd = td->io_ops->data;
        int ret;
index 16df74035f189e15c3811755b68285795f694aaa..ec8222c90c9f89cba4d16e2f7f5e9f336a639c14 100644 (file)
@@ -37,7 +37,7 @@ struct thread_ctx {
 
 static BOOL timeout_expired(DWORD start_count, DWORD end_count);
 static int fio_windowsaio_getevents(struct thread_data *td, unsigned int min,
-                                       unsigned int max, struct timespec *t);
+                               unsigned int max, const struct timespec *t);
 static struct io_u *fio_windowsaio_event(struct thread_data *td, int event);
 static int fio_windowsaio_queue(struct thread_data *td,
                                  struct io_u *io_u);
@@ -256,7 +256,8 @@ static struct io_u* fio_windowsaio_event(struct thread_data *td, int event)
 }
 
 static int fio_windowsaio_getevents(struct thread_data *td, unsigned int min,
-                                       unsigned int max, struct timespec *t)
+                                   unsigned int max,
+                                   const struct timespec *t)
 {
        struct windowsaio_data *wd = td->io_ops->data;
        unsigned int dequeued = 0;
index 9f7d209a303f7987612923f456162fe5ce5d1d96..5fd3847d37338f3a30c960a762edf65f2eea7077 100644 (file)
@@ -2,11 +2,11 @@
 #define FIO_TIME_H
 
 struct thread_data;
-extern uint64_t utime_since(struct timeval *, struct timeval *);
-extern uint64_t utime_since_now(struct timeval *);
-extern uint64_t mtime_since(struct timeval *, struct timeval *);
-extern uint64_t mtime_since_now(struct timeval *);
-extern uint64_t time_since_now(struct timeval *);
+extern uint64_t utime_since(const struct timeval *,const  struct timeval *);
+extern uint64_t utime_since_now(const struct timeval *);
+extern uint64_t mtime_since(const struct timeval *, const struct timeval *);
+extern uint64_t mtime_since_now(const struct timeval *);
+extern uint64_t time_since_now(const struct timeval *);
 extern uint64_t mtime_since_genesis(void);
 extern uint64_t utime_since_genesis(void);
 extern void usec_spin(unsigned int);
index 8a1392392ab2ff3c92b8698c59fe79ea7cdd9adc..9f8362090095c2d679c2b568274649d931aa8942 100644 (file)
--- a/gettime.c
+++ b/gettime.c
@@ -377,7 +377,7 @@ void fio_clock_init(void)
                log_info("fio: clocksource=cpu may not be reliable\n");
 }
 
-uint64_t utime_since(struct timeval *s, struct timeval *e)
+uint64_t utime_since(const struct timeval *s, const struct timeval *e)
 {
        long sec, usec;
        uint64_t ret;
@@ -400,7 +400,7 @@ uint64_t utime_since(struct timeval *s, struct timeval *e)
        return ret;
 }
 
-uint64_t utime_since_now(struct timeval *s)
+uint64_t utime_since_now(const struct timeval *s)
 {
        struct timeval t;
 
@@ -408,7 +408,7 @@ uint64_t utime_since_now(struct timeval *s)
        return utime_since(s, &t);
 }
 
-uint64_t mtime_since(struct timeval *s, struct timeval *e)
+uint64_t mtime_since(const struct timeval *s, const struct timeval *e)
 {
        long sec, usec, ret;
 
@@ -429,7 +429,7 @@ uint64_t mtime_since(struct timeval *s, struct timeval *e)
        return ret;
 }
 
-uint64_t mtime_since_now(struct timeval *s)
+uint64_t mtime_since_now(const struct timeval *s)
 {
        struct timeval t;
        void *p = __builtin_return_address(0);
@@ -438,7 +438,7 @@ uint64_t mtime_since_now(struct timeval *s)
        return mtime_since(s, &t);
 }
 
-uint64_t time_since_now(struct timeval *s)
+uint64_t time_since_now(const struct timeval *s)
 {
        return mtime_since_now(s) / 1000;
 }
index 0742a8b96753c3bf79edb431c2bd63ee27a46df2..dfe84ac9c1aff37df23c642f6efc6ddd6ab9c2b4 100644 (file)
@@ -137,7 +137,7 @@ struct ioengine_ops {
        int (*prep)(struct thread_data *, struct io_u *);
        int (*queue)(struct thread_data *, struct io_u *);
        int (*commit)(struct thread_data *);
-       int (*getevents)(struct thread_data *, unsigned int, unsigned int, struct timespec *);
+       int (*getevents)(struct thread_data *, unsigned int, unsigned int, const struct timespec *);
        struct io_u *(*event)(struct thread_data *, int);
        int (*cancel)(struct thread_data *, struct io_u *);
        void (*cleanup)(struct thread_data *);
@@ -182,7 +182,7 @@ extern int __must_check td_io_init(struct thread_data *);
 extern int __must_check td_io_prep(struct thread_data *, struct io_u *);
 extern int __must_check td_io_queue(struct thread_data *, struct io_u *);
 extern int __must_check td_io_sync(struct thread_data *, struct fio_file *);
-extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsigned int, struct timespec *);
+extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsigned int, const struct timespec *);
 extern int __must_check td_io_commit(struct thread_data *);
 extern int __must_check td_io_open_file(struct thread_data *, struct fio_file *);
 extern int td_io_close_file(struct thread_data *, struct fio_file *);
index 56149381894abfb56e9bd7a47368cc2773278fde..07d1d5678986cbe86fd3c87eae1c3a413526ba2a 100644 (file)
@@ -220,7 +220,7 @@ int td_io_prep(struct thread_data *td, struct io_u *io_u)
 }
 
 int td_io_getevents(struct thread_data *td, unsigned int min, unsigned int max,
-                   struct timespec *t)
+                   const struct timespec *t)
 {
        int r = 0;
 
diff --git a/iolog.c b/iolog.c
index cfcab2712d1026e20a71c27dcc2428a1a76923f2..4a7d939af251c77ae2de82d2ad57b15a9f04d4b4 100644 (file)
--- a/iolog.c
+++ b/iolog.c
@@ -28,7 +28,7 @@ void queue_io_piece(struct thread_data *td, struct io_piece *ipo)
        td->total_io_size += ipo->len;
 }
 
-void log_io_u(struct thread_data *td, struct io_u *io_u)
+void log_io_u(const struct thread_data *td, const struct io_u *io_u)
 {
        if (!td->o.write_iolog_file)
                return;
@@ -282,7 +282,7 @@ void unlog_io_piece(struct thread_data *td, struct io_u *io_u)
        td->io_hist_len--;
 }
 
-void trim_io_piece(struct thread_data *td, struct io_u *io_u)
+void trim_io_piece(struct thread_data *td, const struct io_u *io_u)
 {
        struct io_piece *ipo = io_u->ipo;
 
diff --git a/iolog.h b/iolog.h
index fcd6794278edd6a39e1c6fd73997370e314b120b..a1e32ae7335b0b439518f3e1940235c041158ab1 100644 (file)
--- a/iolog.h
+++ b/iolog.h
@@ -174,12 +174,12 @@ enum file_log_act {
 
 struct io_u;
 extern int __must_check read_iolog_get(struct thread_data *, struct io_u *);
-extern void log_io_u(struct thread_data *, struct io_u *);
+extern void log_io_u(const struct thread_data *, const struct io_u *);
 extern void log_file(struct thread_data *, struct fio_file *, enum file_log_act);
 extern int __must_check init_iolog(struct thread_data *td);
 extern void log_io_piece(struct thread_data *, struct io_u *);
 extern void unlog_io_piece(struct thread_data *, struct io_u *);
-extern void trim_io_piece(struct thread_data *, struct io_u *);
+extern void trim_io_piece(struct thread_data *, const struct io_u *);
 extern void queue_io_piece(struct thread_data *, struct io_piece *);
 extern void prune_io_piece_log(struct thread_data *);
 extern void write_iolog_close(struct thread_data *);