projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add option to ignore thinktime for rated IO
[fio.git]
/
rate-submit.c
diff --git
a/rate-submit.c
b/rate-submit.c
index 92cb6222cd0512e00dea844b7762e7c0c7250390..fdbece64d877ee0edd1e0f5359e2222db611483d 100644
(file)
--- a/
rate-submit.c
+++ b/
rate-submit.c
@@
-5,7
+5,7
@@
*
*/
#include "fio.h"
*
*/
#include "fio.h"
-#include "ioengine.h"
+#include "ioengine
s
.h"
#include "lib/getrusage.h"
#include "rate-submit.h"
#include "lib/getrusage.h"
#include "rate-submit.h"
@@
-14,12
+14,12
@@
static int io_workqueue_fn(struct submit_worker *sw,
{
struct io_u *io_u = container_of(work, struct io_u, work);
const enum fio_ddir ddir = io_u->ddir;
{
struct io_u *io_u = container_of(work, struct io_u, work);
const enum fio_ddir ddir = io_u->ddir;
- struct thread_data *td = sw->priv
ate
;
+ struct thread_data *td = sw->priv;
int ret;
dprint(FD_RATE, "io_u %p queued by %u\n", io_u, gettid());
int ret;
dprint(FD_RATE, "io_u %p queued by %u\n", io_u, gettid());
- io_u_set(io_u, IO_U_F_NO_FILE_PUT);
+ io_u_set(
td,
io_u, IO_U_F_NO_FILE_PUT);
td->cur_depth++;
td->cur_depth++;
@@
-30,7
+30,7
@@
static int io_workqueue_fn(struct submit_worker *sw,
ret = io_u_queued_complete(td, 1);
if (ret > 0)
td->cur_depth -= ret;
ret = io_u_queued_complete(td, 1);
if (ret > 0)
td->cur_depth -= ret;
- io_u_clear(io_u, IO_U_F_FLIGHT);
+ io_u_clear(
td,
io_u, IO_U_F_FLIGHT);
} while (1);
dprint(FD_RATE, "io_u %p ret %d by %u\n", io_u, ret, gettid());
} while (1);
dprint(FD_RATE, "io_u %p ret %d by %u\n", io_u, ret, gettid());
@@
-61,7
+61,7
@@
static int io_workqueue_fn(struct submit_worker *sw,
static bool io_workqueue_pre_sleep_flush_fn(struct submit_worker *sw)
{
static bool io_workqueue_pre_sleep_flush_fn(struct submit_worker *sw)
{
- struct thread_data *td = sw->priv
ate
;
+ struct thread_data *td = sw->priv;
if (td->io_u_queued || td->cur_depth || td->io_u_in_flight)
return true;
if (td->io_u_queued || td->cur_depth || td->io_u_in_flight)
return true;
@@
-71,7
+71,7
@@
static bool io_workqueue_pre_sleep_flush_fn(struct submit_worker *sw)
static void io_workqueue_pre_sleep_fn(struct submit_worker *sw)
{
static void io_workqueue_pre_sleep_fn(struct submit_worker *sw)
{
- struct thread_data *td = sw->priv
ate
;
+ struct thread_data *td = sw->priv;
int ret;
ret = io_u_quiesce(td);
int ret;
ret = io_u_quiesce(td);
@@
-84,21
+84,20
@@
static int io_workqueue_alloc_fn(struct submit_worker *sw)
struct thread_data *td;
td = calloc(1, sizeof(*td));
struct thread_data *td;
td = calloc(1, sizeof(*td));
- sw->priv
ate
= td;
+ sw->priv = td;
return 0;
}
static void io_workqueue_free_fn(struct submit_worker *sw)
{
return 0;
}
static void io_workqueue_free_fn(struct submit_worker *sw)
{
- free(sw->priv
ate
);
- sw->priv
ate
= NULL;
+ free(sw->priv);
+ sw->priv = NULL;
}
static int io_workqueue_init_worker_fn(struct submit_worker *sw)
{
struct thread_data *parent = sw->wq->td;
}
static int io_workqueue_init_worker_fn(struct submit_worker *sw)
{
struct thread_data *parent = sw->wq->td;
- struct thread_data *td = sw->private;
- int fio_unused ret;
+ struct thread_data *td = sw->priv;
memcpy(&td->o, &parent->o, sizeof(td->o));
memcpy(&td->ts, &parent->ts, sizeof(td->ts));
memcpy(&td->o, &parent->o, sizeof(td->o));
memcpy(&td->ts, &parent->ts, sizeof(td->ts));
@@
-110,9
+109,6
@@
static int io_workqueue_init_worker_fn(struct submit_worker *sw)
if (ioengine_load(td))
goto err;
if (ioengine_load(td))
goto err;
- if (td->o.odirect)
- td->io_ops->flags |= FIO_RAWIO;
-
td->pid = gettid();
INIT_FLIST_HEAD(&td->io_log_list);
td->pid = gettid();
INIT_FLIST_HEAD(&td->io_log_list);
@@
-126,7
+122,7
@@
static int io_workqueue_init_worker_fn(struct submit_worker *sw)
if (td_io_init(td))
goto err_io_init;
if (td_io_init(td))
goto err_io_init;
-
fio_gettime(&td->epoch, NULL
);
+
set_epoch_time(td, td->o.log_unix_epoch
);
fio_getrusage(&td->ru_start);
clear_io_state(td, 1);
fio_getrusage(&td->ru_start);
clear_io_state(td, 1);
@@
-145,7
+141,7
@@
err:
static void io_workqueue_exit_worker_fn(struct submit_worker *sw,
unsigned int *sum_cnt)
{
static void io_workqueue_exit_worker_fn(struct submit_worker *sw,
unsigned int *sum_cnt)
{
- struct thread_data *td = sw->priv
ate
;
+ struct thread_data *td = sw->priv;
(*sum_cnt)++;
sum_thread_stats(&sw->wq->td->ts, &td->ts, *sum_cnt == 1);
(*sum_cnt)++;
sum_thread_stats(&sw->wq->td->ts, &td->ts, *sum_cnt == 1);
@@
-213,7
+209,7
@@
static void sum_ddir(struct thread_data *dst, struct thread_data *src,
static void io_workqueue_update_acct_fn(struct submit_worker *sw)
{
static void io_workqueue_update_acct_fn(struct submit_worker *sw)
{
- struct thread_data *src = sw->priv
ate
;
+ struct thread_data *src = sw->priv;
struct thread_data *dst = sw->wq->td;
if (td_read(src))
struct thread_data *dst = sw->wq->td;
if (td_read(src))