From 0c5df5f9adccf9e3d8aaba88258ae9a4e0d3b643 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 7 Dec 2015 22:09:24 -0700 Subject: [PATCH] workqueue: remove knowledge of io issue (and others) stats This doesn't belong in the workqueue code, let the caller deal with it instead. Signed-off-by: Jens Axboe --- backend.c | 10 ++++++++++ workqueue.c | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend.c b/backend.c index 10622efe..63d47a29 100644 --- a/backend.c +++ b/backend.c @@ -928,10 +928,20 @@ static uint64_t do_io(struct thread_data *td) log_io_piece(td, io_u); if (td->o.io_submit_mode == IO_MODE_OFFLOAD) { + const unsigned long blen = io_u->xfer_buflen; + const enum fio_ddir ddir = acct_ddir(io_u); + if (td->error) break; + ret = workqueue_enqueue(&td->io_wq, io_u); + if (ret == FIO_Q_QUEUED && ddir_rw(ddir)) { + td->io_issues[ddir]++; + td->io_issue_bytes[ddir] += blen; + td->rate_io_issue_bytes[ddir] += blen; + } + if (should_check_rate(td)) td->rate_next_io_time[ddir] = usec_for_io(td, ddir); diff --git a/workqueue.c b/workqueue.c index 8d43b090..5265a001 100644 --- a/workqueue.c +++ b/workqueue.c @@ -118,15 +118,6 @@ int workqueue_enqueue(struct workqueue *wq, struct io_u *io_u) sw = get_submit_worker(wq); if (sw) { - const enum fio_ddir ddir = acct_ddir(io_u); - struct thread_data *parent = wq->td; - - if (ddir_rw(ddir)) { - parent->io_issues[ddir]++; - parent->io_issue_bytes[ddir] += io_u->xfer_buflen; - parent->rate_io_issue_bytes[ddir] += io_u->xfer_buflen; - } - pthread_mutex_lock(&sw->lock); flist_add_tail(&io_u->verify_list, &sw->work_list); sw->seq = ++wq->work_seq; -- 2.25.1