powerpc: disable use of ATBU clock
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index ebf6309b530f3a84f6b2cda5d9a841f70fde4488..e7d5c27c8420de2fae7b25ed784e96e61336869e 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -39,6 +39,7 @@
 #include "server.h"
 #include "stat.h"
 #include "flow.h"
+#include "io_u_queue.h"
 
 #ifdef CONFIG_SOLARISAIO
 #include <sys/asynch.h>
@@ -81,6 +82,9 @@ enum {
        FIO_RAND_FILE_SIZE_OFF,
        FIO_RAND_TRIM_OFF,
        FIO_RAND_BUF_OFF,
+       FIO_RAND_SEQ_RAND_READ_OFF,
+       FIO_RAND_SEQ_RAND_WRITE_OFF,
+       FIO_RAND_SEQ_RAND_TRIM_OFF,
        FIO_RAND_NR_OFFS,
 };
 
@@ -192,9 +196,9 @@ struct thread_data {
        /*
         * List of free and busy io_u's
         */
-       struct flist_head io_u_freelist;
-       struct flist_head io_u_busylist;
-       struct flist_head io_u_requeues;
+       struct io_u_ring io_u_requeues;
+       struct io_u_queue io_u_freelist;
+       struct io_u_queue io_u_all;
        pthread_mutex_t io_u_lock;
        pthread_cond_t free_cond;
 
@@ -255,6 +259,14 @@ struct thread_data {
        enum fio_ddir rwmix_ddir;
        unsigned int ddir_seq_nr;
 
+       /*
+        * rand/seq mixed workload state
+        */
+       union {
+               os_random_state_t seq_rand_state[DDIR_RWDIR_CNT];
+               struct frand_state __seq_rand_state[DDIR_RWDIR_CNT];
+       };
+
        /*
         * IO history logs for verification. We use a tree for sorting,
         * if we are overwriting. Otherwise just use a fifo.
@@ -535,6 +547,14 @@ static inline unsigned int td_max_bs(struct thread_data *td)
        return max(td->o.max_bs[DDIR_TRIM], max_bs);
 }
 
+static inline unsigned int td_min_bs(struct thread_data *td)
+{
+       unsigned int min_bs;
+
+       min_bs = min(td->o.min_bs[DDIR_READ], td->o.min_bs[DDIR_WRITE]);
+       return min(td->o.min_bs[DDIR_TRIM], min_bs);
+}
+
 static inline int is_power_of_2(unsigned int val)
 {
        return (val != 0 && ((val & (val - 1)) == 0));