Lines Matching refs:sd
100 struct syncio_data *sd = td->io_ops_data;
101 struct iovec *iov = &sd->iovecs[0];
127 struct syncio_data *sd = td->io_ops_data;
129 struct iovec *iov = &sd->iovecs[0];
200 struct syncio_data *sd = td->io_ops_data;
204 ret = sd->events;
205 sd->events = 0;
215 struct syncio_data *sd = td->io_ops_data;
217 return sd->io_us[event];
222 struct syncio_data *sd = td->io_ops_data;
227 if (io_u->offset == sd->last_offset && io_u->file == sd->last_file &&
228 io_u->ddir == sd->last_ddir)
234 static void fio_vsyncio_set_iov(struct syncio_data *sd, struct io_u *io_u,
237 sd->io_us[idx] = io_u;
238 sd->iovecs[idx].iov_base = io_u->xfer_buf;
239 sd->iovecs[idx].iov_len = io_u->xfer_buflen;
240 sd->last_offset = io_u->offset + io_u->xfer_buflen;
241 sd->last_file = io_u->file;
242 sd->last_ddir = io_u->ddir;
243 sd->queued_bytes += io_u->xfer_buflen;
244 sd->queued++;
249 struct syncio_data *sd = td->io_ops_data;
254 dprint(FD_IO, "vsyncio_queue: no append (%d)\n", sd->queued);
259 if (sd->queued)
267 sd->queued = 0;
268 sd->queued_bytes = 0;
269 fio_vsyncio_set_iov(sd, io_u, 0);
271 if (sd->queued == td->o.iodepth) {
272 dprint(FD_IO, "vsyncio_queue: max depth %d\n", sd->queued);
277 fio_vsyncio_set_iov(sd, io_u, sd->queued);
280 dprint(FD_IO, "vsyncio_queue: depth now %d\n", sd->queued);
289 struct syncio_data *sd = td->io_ops_data;
297 if (bytes == sd->queued_bytes)
301 for (i = 0; i < sd->queued; i++) {
302 io_u = sd->io_us[i];
329 struct syncio_data *sd = td->io_ops_data;
333 if (!sd->queued)
336 io_u_mark_submit(td, sd->queued);
337 f = sd->last_file;
339 if (lseek(f->fd, sd->io_us[0]->offset, SEEK_SET) == -1) {
346 if (sd->last_ddir == DDIR_READ)
347 ret = readv(f->fd, sd->iovecs, sd->queued);
349 ret = writev(f->fd, sd->iovecs, sd->queued);
352 sd->events = sd->queued;
353 sd->queued = 0;
359 struct syncio_data *sd;
361 sd = malloc(sizeof(*sd));
362 memset(sd, 0, sizeof(*sd));
363 sd->last_offset = -1ULL;
364 sd->iovecs = malloc(td->o.iodepth * sizeof(struct iovec));
365 sd->io_us = malloc(td->o.iodepth * sizeof(struct io_u *));
367 td->io_ops_data = sd;
373 struct syncio_data *sd = td->io_ops_data;
375 if (sd) {
376 free(sd->iovecs);
377 free(sd->io_us);
378 free(sd);