X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Fsyslet-rw.c;h=8ab217f40b407e0c628016d8794bd90ed5f1e6aa;hp=4b1b263691f5825ef247b38a564a8c66f6d4f3cb;hb=b2560f3ca4677e2908fc4111f4d04fae5df3b229;hpb=5b38ee84f35c7cf3a3a804e6dbe3621f8980d3bb diff --git a/engines/syslet-rw.c b/engines/syslet-rw.c index 4b1b2636..8ab217f4 100644 --- a/engines/syslet-rw.c +++ b/engines/syslet-rw.c @@ -187,6 +187,23 @@ static unsigned long thread_stack_alloc() 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 @@ static int fio_syslet_commit(struct thread_data *td) 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.