projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fio: add additional support for dev-dax ioengine
[fio.git]
/
fio.h
diff --git
a/fio.h
b/fio.h
index 0da0bc5d97442544d2b2269b32c7b8ae64c79ba3..5726befcb9abc1f4423246862a73cdc5affd89d7 100644
(file)
--- a/
fio.h
+++ b/
fio.h
@@
-41,6
+41,7
@@
#include "flow.h"
#include "io_u_queue.h"
#include "workqueue.h"
#include "flow.h"
#include "io_u_queue.h"
#include "workqueue.h"
+#include "steadystate.h"
#ifdef CONFIG_SOLARISAIO
#include <sys/asynch.h>
#ifdef CONFIG_SOLARISAIO
#include <sys/asynch.h>
@@
-269,10
+270,10
@@
struct thread_data {
* Rate state
*/
uint64_t rate_bps[DDIR_RWDIR_CNT];
* Rate state
*/
uint64_t rate_bps[DDIR_RWDIR_CNT];
- u
nsigned long
rate_next_io_time[DDIR_RWDIR_CNT];
+ u
int64_t
rate_next_io_time[DDIR_RWDIR_CNT];
unsigned long rate_bytes[DDIR_RWDIR_CNT];
unsigned long rate_blocks[DDIR_RWDIR_CNT];
unsigned long rate_bytes[DDIR_RWDIR_CNT];
unsigned long rate_blocks[DDIR_RWDIR_CNT];
- unsigned long rate_io_issue_bytes[DDIR_RWDIR_CNT];
+ unsigned long
long
rate_io_issue_bytes[DDIR_RWDIR_CNT];
struct timeval lastrate[DDIR_RWDIR_CNT];
int64_t last_usec;
struct frand_state poisson_state;
struct timeval lastrate[DDIR_RWDIR_CNT];
int64_t last_usec;
struct frand_state poisson_state;
@@
-311,6
+312,7
@@
struct thread_data {
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
+ unsigned long long unix_epoch; /* Time job was started, unix epoch based. */
struct timeval last_issue;
long time_offset;
struct timeval tv_cache;
struct timeval last_issue;
long time_offset;
struct timeval tv_cache;
@@
-394,6
+396,8
@@
struct thread_data {
void *pinned_mem;
void *pinned_mem;
+ struct steadystate_data ss;
+
char verror[FIO_VERROR_SIZE];
};
char verror[FIO_VERROR_SIZE];
};
@@
-475,7
+479,7
@@
static inline void fio_ro_check(const struct thread_data *td, struct io_u *io_u)
assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
}
assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
}
-#define REAL_MAX_JOBS
2048
+#define REAL_MAX_JOBS
4096
static inline int should_fsync(struct thread_data *td)
{
static inline int should_fsync(struct thread_data *td)
{
@@
-563,7
+567,8
@@
enum {
static inline enum fio_ioengine_flags td_ioengine_flags(struct thread_data *td)
{
static inline enum fio_ioengine_flags td_ioengine_flags(struct thread_data *td)
{
- return (td->flags >> TD_ENG_FLAG_SHIFT) & TD_ENG_FLAG_MASK;
+ return (enum fio_ioengine_flags)
+ ((td->flags >> TD_ENG_FLAG_SHIFT) & TD_ENG_FLAG_MASK);
}
static inline void td_set_ioengine_flags(struct thread_data *td)
}
static inline void td_set_ioengine_flags(struct thread_data *td)
@@
-571,9
+576,10
@@
static inline void td_set_ioengine_flags(struct thread_data *td)
td->flags |= (td->io_ops->flags << TD_ENG_FLAG_SHIFT);
}
td->flags |= (td->io_ops->flags << TD_ENG_FLAG_SHIFT);
}
-static inline bool td_ioengine_flagged(struct thread_data *td, unsigned int val)
+static inline bool td_ioengine_flagged(struct thread_data *td,
+ enum fio_ioengine_flags flags)
{
{
- return ((td->flags >> TD_ENG_FLAG_SHIFT) &
val
) != 0;
+ return ((td->flags >> TD_ENG_FLAG_SHIFT) &
flags
) != 0;
}
extern void td_set_runstate(struct thread_data *, int);
}
extern void td_set_runstate(struct thread_data *, int);
@@
-585,7
+591,7
@@
extern const char *runstate_to_name(int runstate);
* Allow 60 seconds for a job to quit on its own, otherwise reap with
* a vengeance.
*/
* Allow 60 seconds for a job to quit on its own, otherwise reap with
* a vengeance.
*/
-#define FIO_REAP_TIMEOUT
6
0
+#define FIO_REAP_TIMEOUT
30
0
#define TERMINATE_ALL (-1U)
extern void fio_terminate_threads(unsigned int);
#define TERMINATE_ALL (-1U)
extern void fio_terminate_threads(unsigned int);