syslet engine: submission latency numbers
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/engines/syslet-rw.c b/engines/syslet-rw.c
index 4b1b263..8ab217f 100644
--- a/engines/syslet-rw.c
+++ b/engines/syslet-rw.c
@@ -187,6 +187,23 @@
return (unsigned long) malloc(THREAD_STACK_SIZE) + THREAD_STACK_SIZE;
}
+static void fio_syslet_queued(struct thread_data *td, struct syslet_data *sd)
+{
+ struct syslet_uatom *atom;
+ struct timeval now;
+
+ fio_gettime(&now, NULL);
+
+ atom = sd->head;
+ while (atom) {
+ struct io_u *io_u = atom->private;
+
+ memcpy(&io_u->issue_time, &now, sizeof(now));
+ io_u_queued(td, io_u);
+ atom = atom->next;
+ }
+}
+
static int fio_syslet_commit(struct thread_data *td)
{
struct syslet_data *sd = td->io_ops->data;
@@ -200,6 +217,8 @@
if (!sd->ahu.new_thread_stack)
sd->ahu.new_thread_stack = thread_stack_alloc();
+ fio_syslet_queued(td, sd);
+
/*
* On sync completion, the atom is returned. So on NULL return
* it's queued asynchronously.