static void fio_guasi_queued(struct thread_data *td, struct io_u **io_us, int nr) { int i; struct io_u *io_u; struct timeval now; if (!fio_fill_issue_time(td)) return; io_u_mark_submit(td, nr); fio_gettime(&now, NULL); for (i = 0; i < nr; i++) { io_u = io_us[i]; memcpy(&io_u->issue_time, &now, sizeof(now)); io_u_queued(td, io_u); } }
static void fio_ioring_queued(struct thread_data *td, int start, int nr) { struct ioring_data *ld = td->io_ops_data; struct timespec now; if (!fio_fill_issue_time(td)) return; fio_gettime(&now, NULL); while (nr--) { struct io_sq_ring *ring = &ld->sq_ring; int index = ring->array[start & ld->sq_ring_mask]; struct io_u *io_u = ld->io_u_index[index]; memcpy(&io_u->issue_time, &now, sizeof(now)); io_u_queued(td, io_u); start++; } }
static void fio_rdmaio_queued(struct thread_data *td, struct io_u **io_us, unsigned int nr) { struct rdmaio_data *rd = td->io_ops->data; struct timeval now; unsigned int i; if (!fio_fill_issue_time(td)) return; fio_gettime(&now, NULL); for (i = 0; i < nr; i++) { struct io_u *io_u = io_us[i]; /* queued -> flight */ rd->io_us_flight[rd->io_u_flight_nr] = io_u; rd->io_u_flight_nr++; memcpy(&io_u->issue_time, &now, sizeof(now)); io_u_queued(td, io_u); } }