[PATCH] Support for hugetlb backed shared memory
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index faa06a4f4c280a687e76fc545f2ccb25f775c128..c4facfbe995b2f0ed20e88353fb645a528721ec9 100644 (file)
--- a/fio.h
+++ b/fio.h
 #include "arch.h"
 #include "os.h"
 
+enum fio_ddir {
+       DDIR_READ = 0,
+       DDIR_WRITE,
+       DDIR_SYNC,
+};
+
 struct io_stat {
        unsigned long val;
        unsigned long val_sq;
@@ -29,7 +35,7 @@ struct io_stat {
 struct io_sample {
        unsigned long time;
        unsigned long val;
-       unsigned int ddir;
+       enum fio_ddir ddir;
 };
 
 struct io_log {
@@ -43,7 +49,7 @@ struct io_piece {
        struct fio_file *file;
        unsigned long long offset;
        unsigned int len;
-       int ddir;
+       enum fio_ddir ddir;
 };
 
 /*
@@ -71,7 +77,7 @@ struct io_u {
        unsigned int resid;
        unsigned int error;
 
-       unsigned char ddir;
+       enum fio_ddir ddir;
 
        /*
         * io engine private data
@@ -111,18 +117,13 @@ struct group_run_stats {
        unsigned long long agg[2];
 };
 
-enum fio_ddir {
-       DDIR_READ = 0,
-       DDIR_WRITE,
-       DDIR_SYNC,
-};
-
 /*
  * What type of allocation to use for io buffers
  */
 enum fio_memtype {
        MEM_MALLOC = 0, /* ordinary malloc */
        MEM_SHM,        /* use shared memory segments */
+       MEM_SHMHUGE,    /* use shared memory segments with huge pages */
        MEM_MMAP,       /* use anonynomous mmap */
 };
 
@@ -156,9 +157,12 @@ struct fio_file {
        unsigned long long real_file_size;
        unsigned long long file_offset;
        unsigned long long last_pos;
+       unsigned long long last_completed_pos;
 
        unsigned long *file_map;
        unsigned int num_maps;
+
+       unsigned int unlink;
 };
 
 /*
@@ -307,6 +311,7 @@ struct thread_data {
 
        struct timeval start;   /* start of this loop */
        struct timeval epoch;   /* time job was started */
+       struct timeval end_time;/* time job ended */
 
        /*
         * fio system usage accounting
@@ -356,6 +361,7 @@ extern int terse_output;
 extern FILE *f_out;
 extern FILE *f_err;
 extern int temp_stall_ts;
+extern unsigned long long mlock_size;
 
 extern struct thread_data *threads;
 
@@ -410,6 +416,7 @@ struct io_completion_data {
 
        int error;                      /* output */
        unsigned long bytes_done[2];    /* output */
+       struct timeval time;            /* output */
 };
 
 #define DISK_UTIL_MSEC (250)
@@ -434,9 +441,9 @@ extern void write_iolog_close(struct thread_data *);
 /*
  * Logging
  */
-extern void add_clat_sample(struct thread_data *, int, unsigned long);
-extern void add_slat_sample(struct thread_data *, int, unsigned long);
-extern void add_bw_sample(struct thread_data *, int);
+extern void add_clat_sample(struct thread_data *, enum fio_ddir, unsigned long);
+extern void add_slat_sample(struct thread_data *, enum fio_ddir, unsigned long);
+extern void add_bw_sample(struct thread_data *, enum fio_ddir, struct timeval *);
 extern void show_run_stats(void);
 extern void init_disk_util(struct thread_data *);
 extern void update_rusage_stat(struct thread_data *);
@@ -449,8 +456,8 @@ extern int setup_rate(struct thread_data *);
 /*
  * Time functions
  */
-extern void time_init(void);
 extern unsigned long utime_since(struct timeval *, struct timeval *);
+extern unsigned long utime_since_now(struct timeval *);
 extern unsigned long mtime_since(struct timeval *, struct timeval *);
 extern unsigned long mtime_since_now(struct timeval *);
 extern unsigned long time_since_now(struct timeval *);
@@ -459,6 +466,7 @@ extern void __usec_sleep(unsigned int);
 extern void usec_sleep(struct thread_data *, unsigned long);
 extern void rate_throttle(struct thread_data *, unsigned long, unsigned int, int);
 extern void fill_start_time(struct timeval *);
+extern void fio_gettime(struct timeval *, void *);
 
 /*
  * Init functions