projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
workqueue/rate-submit: update comments
[fio.git]
/
fio.h
diff --git
a/fio.h
b/fio.h
index b3fe9e1b387e12efa371cb2ead2f5ac52c439914..6f85266c2f695432cb405a6bc260f974a2ced2ea 100644
(file)
--- a/
fio.h
+++ b/
fio.h
@@
-95,12
+95,16
@@
enum {
FIO_RAND_SEQ_RAND_TRIM_OFF,
FIO_RAND_START_DELAY,
FIO_DEDUPE_OFF,
FIO_RAND_SEQ_RAND_TRIM_OFF,
FIO_RAND_START_DELAY,
FIO_DEDUPE_OFF,
+ FIO_RAND_POISSON_OFF,
FIO_RAND_NR_OFFS,
};
enum {
IO_MODE_INLINE = 0,
FIO_RAND_NR_OFFS,
};
enum {
IO_MODE_INLINE = 0,
- IO_MODE_OFFLOAD,
+ IO_MODE_OFFLOAD = 1,
+
+ RATE_PROCESS_LINEAR = 0,
+ RATE_PROCESS_POISSON = 1,
};
/*
};
/*
@@
-125,7
+129,7
@@
struct thread_data {
struct io_log *bw_log;
struct io_log *iops_log;
struct io_log *bw_log;
struct io_log *iops_log;
- struct
tp_data *tp_data
;
+ struct
workqueue log_compress_wq
;
struct thread_data *parent;
struct thread_data *parent;
@@
-243,6
+247,8
@@
struct thread_data {
unsigned long rate_blocks[DDIR_RWDIR_CNT];
unsigned long rate_io_issue_bytes[DDIR_RWDIR_CNT];
struct timeval lastrate[DDIR_RWDIR_CNT];
unsigned long rate_blocks[DDIR_RWDIR_CNT];
unsigned long rate_io_issue_bytes[DDIR_RWDIR_CNT];
struct timeval lastrate[DDIR_RWDIR_CNT];
+ int64_t last_usec;
+ struct frand_state poisson_state;
/*
* Enforced rate submission/completion workqueue
/*
* Enforced rate submission/completion workqueue
@@
-464,7
+470,7
@@
extern int parse_jobs_ini(char *, int, int, int);
extern int parse_cmd_line(int, char **, int);
extern int fio_backend(void);
extern void reset_fio_state(void);
extern int parse_cmd_line(int, char **, int);
extern int fio_backend(void);
extern void reset_fio_state(void);
-extern void clear_io_state(struct thread_data *);
+extern void clear_io_state(struct thread_data *
, int
);
extern int fio_options_parse(struct thread_data *, char **, int, int);
extern void fio_keywords_init(void);
extern void fio_keywords_exit(void);
extern int fio_options_parse(struct thread_data *, char **, int, int);
extern void fio_keywords_init(void);
extern void fio_keywords_exit(void);
@@
-533,8
+539,8
@@
extern void td_restore_runstate(struct thread_data *, int);
*/
#define FIO_REAP_TIMEOUT 60
*/
#define FIO_REAP_TIMEOUT 60
-#define TERMINATE_ALL (-1)
-extern void fio_terminate_threads(int);
+#define TERMINATE_ALL (-1
U
)
+extern void fio_terminate_threads(
unsigned
int);
extern void fio_mark_td_terminate(struct thread_data *);
/*
extern void fio_mark_td_terminate(struct thread_data *);
/*
@@
-559,6
+565,10
@@
extern int is_blktrace(const char *, int *);
extern int load_blktrace(struct thread_data *, const char *, int);
#endif
extern int load_blktrace(struct thread_data *, const char *, int);
#endif
+extern int io_queue_event(struct thread_data *td, struct io_u *io_u, int *ret,
+ enum fio_ddir ddir, uint64_t *bytes_issued, int from_verify,
+ struct timeval *comp_time);
+
/*
* Latency target helpers
*/
/*
* Latency target helpers
*/
@@
-677,10
+687,13
@@
enum {
__FIO_OUTPUT_TERSE = 0,
__FIO_OUTPUT_JSON = 1,
__FIO_OUTPUT_NORMAL = 2,
__FIO_OUTPUT_TERSE = 0,
__FIO_OUTPUT_JSON = 1,
__FIO_OUTPUT_NORMAL = 2,
+ __FIO_OUTPUT_JSON_PLUS = 3,
+ FIO_OUTPUT_NR = 4,
FIO_OUTPUT_TERSE = 1U << __FIO_OUTPUT_TERSE,
FIO_OUTPUT_JSON = 1U << __FIO_OUTPUT_JSON,
FIO_OUTPUT_NORMAL = 1U << __FIO_OUTPUT_NORMAL,
FIO_OUTPUT_TERSE = 1U << __FIO_OUTPUT_TERSE,
FIO_OUTPUT_JSON = 1U << __FIO_OUTPUT_JSON,
FIO_OUTPUT_NORMAL = 1U << __FIO_OUTPUT_NORMAL,
+ FIO_OUTPUT_JSON_PLUS = 1U << __FIO_OUTPUT_JSON_PLUS,
};
enum {
};
enum {