Lines Matching refs:sd
77 struct syncio_data *sd = td->io_ops->data; in fio_pvsyncio_queue() local
78 struct iovec *iov = &sd->iovecs[0]; in fio_pvsyncio_queue()
145 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_getevents() local
149 ret = sd->events; in fio_vsyncio_getevents()
150 sd->events = 0; in fio_vsyncio_getevents()
160 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_event() local
162 return sd->io_us[event]; in fio_vsyncio_event()
167 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_append() local
172 if (io_u->offset == sd->last_offset && io_u->file == sd->last_file && in fio_vsyncio_append()
173 io_u->ddir == sd->last_ddir) in fio_vsyncio_append()
179 static void fio_vsyncio_set_iov(struct syncio_data *sd, struct io_u *io_u, in fio_vsyncio_set_iov() argument
182 sd->io_us[idx] = io_u; in fio_vsyncio_set_iov()
183 sd->iovecs[idx].iov_base = io_u->xfer_buf; in fio_vsyncio_set_iov()
184 sd->iovecs[idx].iov_len = io_u->xfer_buflen; in fio_vsyncio_set_iov()
185 sd->last_offset = io_u->offset + io_u->xfer_buflen; in fio_vsyncio_set_iov()
186 sd->last_file = io_u->file; in fio_vsyncio_set_iov()
187 sd->last_ddir = io_u->ddir; in fio_vsyncio_set_iov()
188 sd->queued_bytes += io_u->xfer_buflen; in fio_vsyncio_set_iov()
189 sd->queued++; in fio_vsyncio_set_iov()
194 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_queue() local
199 dprint(FD_IO, "vsyncio_queue: no append (%d)\n", sd->queued); in fio_vsyncio_queue()
204 if (sd->queued) in fio_vsyncio_queue()
212 sd->queued = 0; in fio_vsyncio_queue()
213 sd->queued_bytes = 0; in fio_vsyncio_queue()
214 fio_vsyncio_set_iov(sd, io_u, 0); in fio_vsyncio_queue()
216 if (sd->queued == td->o.iodepth) { in fio_vsyncio_queue()
217 dprint(FD_IO, "vsyncio_queue: max depth %d\n", sd->queued); in fio_vsyncio_queue()
222 fio_vsyncio_set_iov(sd, io_u, sd->queued); in fio_vsyncio_queue()
225 dprint(FD_IO, "vsyncio_queue: depth now %d\n", sd->queued); in fio_vsyncio_queue()
234 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_end() local
242 if (bytes == sd->queued_bytes) in fio_vsyncio_end()
246 for (i = 0; i < sd->queued; i++) { in fio_vsyncio_end()
247 io_u = sd->io_us[i]; in fio_vsyncio_end()
274 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_commit() local
278 if (!sd->queued) in fio_vsyncio_commit()
281 io_u_mark_submit(td, sd->queued); in fio_vsyncio_commit()
282 f = sd->last_file; in fio_vsyncio_commit()
284 if (lseek(f->fd, sd->io_us[0]->offset, SEEK_SET) == -1) { in fio_vsyncio_commit()
291 if (sd->last_ddir == DDIR_READ) in fio_vsyncio_commit()
292 ret = readv(f->fd, sd->iovecs, sd->queued); in fio_vsyncio_commit()
294 ret = writev(f->fd, sd->iovecs, sd->queued); in fio_vsyncio_commit()
297 sd->events = sd->queued; in fio_vsyncio_commit()
298 sd->queued = 0; in fio_vsyncio_commit()
304 struct syncio_data *sd; in fio_vsyncio_init() local
306 sd = malloc(sizeof(*sd)); in fio_vsyncio_init()
307 memset(sd, 0, sizeof(*sd)); in fio_vsyncio_init()
308 sd->last_offset = -1ULL; in fio_vsyncio_init()
309 sd->iovecs = malloc(td->o.iodepth * sizeof(struct iovec)); in fio_vsyncio_init()
310 sd->io_us = malloc(td->o.iodepth * sizeof(struct io_u *)); in fio_vsyncio_init()
312 td->io_ops->data = sd; in fio_vsyncio_init()
318 struct syncio_data *sd = td->io_ops->data; in fio_vsyncio_cleanup() local
320 free(sd->iovecs); in fio_vsyncio_cleanup()
321 free(sd->io_us); in fio_vsyncio_cleanup()
322 free(sd); in fio_vsyncio_cleanup()