/external/fio/engines/ |
D | sync.c | 24 struct io_u **io_us; 34 static int fio_syncio_prep(struct thread_data *td, struct io_u *io_u) in fio_syncio_prep() argument 36 struct fio_file *f = io_u->file; in fio_syncio_prep() 38 if (!ddir_rw(io_u->ddir)) in fio_syncio_prep() 41 if (LAST_POS(f) != -1ULL && LAST_POS(f) == io_u->offset) in fio_syncio_prep() 44 if (lseek(f->fd, io_u->offset, SEEK_SET) == -1) { in fio_syncio_prep() 52 static int fio_io_end(struct thread_data *td, struct io_u *io_u, int ret) in fio_io_end() argument 54 if (io_u->file && ret >= 0 && ddir_rw(io_u->ddir)) in fio_io_end() 55 LAST_POS(io_u->file) = io_u->offset + ret; in fio_io_end() 57 if (ret != (int) io_u->xfer_buflen) { in fio_io_end() [all …]
|
D | glusterfs_async.c | 10 struct io_u *io_u; member 14 static struct io_u *fio_gf_event(struct thread_data *td, int event) in fio_gf_event() 27 struct io_u *io_u; in fio_gf_getevents() local 32 io_u_qiter(&td->io_u_all, io_u, i) { in fio_gf_getevents() 35 if (!(io_u->flags & IO_U_F_FLIGHT)) in fio_gf_getevents() 38 io = io_u->engine_data; in fio_gf_getevents() 41 g->aio_events[events] = io_u; in fio_gf_getevents() 59 static void fio_gf_io_u_free(struct thread_data *td, struct io_u *io_u) in fio_gf_io_u_free() argument 61 struct fio_gf_iou *io = io_u->engine_data; in fio_gf_io_u_free() 66 io_u->engine_data = NULL; in fio_gf_io_u_free() [all …]
|
D | guasi.c | 37 struct io_u **io_us; 42 static int fio_guasi_prep(struct thread_data fio_unused *td, struct io_u *io_u) in fio_guasi_prep() argument 45 GDBG_PRINT(("fio_guasi_prep(%p)\n", io_u)); in fio_guasi_prep() 46 io_u->greq = NULL; in fio_guasi_prep() 51 static struct io_u *fio_guasi_event(struct thread_data *td, int event) in fio_guasi_event() 54 struct io_u *io_u; in fio_guasi_event() local 62 io_u = rinf.asid; in fio_guasi_event() 63 io_u->error = EINPROGRESS; in fio_guasi_event() 64 GDBG_PRINT(("fio_guasi_event(%d) -> %p\n", event, io_u)); in fio_guasi_event() 66 io_u->error = rinf.result; in fio_guasi_event() [all …]
|
D | glusterfs_sync.c | 11 static int fio_gf_prep(struct thread_data *td, struct io_u *io_u) in fio_gf_prep() argument 13 struct fio_file *f = io_u->file; in fio_gf_prep() 18 if (!ddir_rw(io_u->ddir)) in fio_gf_prep() 21 if (LAST_POS(f) != -1ULL && LAST_POS(f) == io_u->offset) in fio_gf_prep() 24 if (glfs_lseek(g->fd, io_u->offset, SEEK_SET) < 0) { in fio_gf_prep() 32 static int fio_gf_queue(struct thread_data *td, struct io_u *io_u) in fio_gf_queue() argument 37 dprint(FD_FILE, "fio queue len %lu\n", io_u->xfer_buflen); in fio_gf_queue() 38 fio_ro_check(td, io_u); in fio_gf_queue() 40 if (io_u->ddir == DDIR_READ) in fio_gf_queue() 41 ret = glfs_read(g->fd, io_u->xfer_buf, io_u->xfer_buflen, 0); in fio_gf_queue() [all …]
|
D | solarisaio.c | 16 struct io_u **aio_events; 23 struct io_u *io_u) in fio_solarisaio_cancel() argument 25 return aiocancel(&io_u->resultp); in fio_solarisaio_cancel() 29 struct io_u *io_u) in fio_solarisaio_prep() argument 33 io_u->resultp.aio_return = AIO_INPROGRESS; in fio_solarisaio_prep() 34 io_u->engine_data = sd; in fio_solarisaio_prep() 41 struct io_u *io_u; in wait_for_event() local 56 io_u = container_of(res, struct io_u, resultp); in wait_for_event() 57 sd = io_u->engine_data; in wait_for_event() 59 if (io_u->resultp.aio_return >= 0) { in wait_for_event() [all …]
|
D | rbd.c | 13 struct io_u *io_u; member 23 struct io_u **aio_events; 24 struct io_u **sort_events; 90 rbd->aio_events = calloc(td->o.iodepth, sizeof(struct io_u *)); in _fio_setup_rbd_data() 94 rbd->sort_events = calloc(td->o.iodepth, sizeof(struct io_u *)); in _fio_setup_rbd_data() 180 struct io_u *io_u = fri->io_u; in _fio_rbd_finish_aiocb() local 192 io_u->error = ret; in _fio_rbd_finish_aiocb() 193 io_u->resid = io_u->xfer_buflen; in _fio_rbd_finish_aiocb() 195 io_u->error = 0; in _fio_rbd_finish_aiocb() 198 static struct io_u *fio_rbd_event(struct thread_data *td, int event) in fio_rbd_event() [all …]
|
D | mmap.c | 86 static int fio_mmapio_prep_limited(struct thread_data *td, struct io_u *io_u) in fio_mmapio_prep_limited() argument 88 struct fio_file *f = io_u->file; in fio_mmapio_prep_limited() 91 if (io_u->buflen > mmap_map_size) { in fio_mmapio_prep_limited() 100 fmd->mmap_off = io_u->offset; in fio_mmapio_prep_limited() 108 static int fio_mmapio_prep_full(struct thread_data *td, struct io_u *io_u) in fio_mmapio_prep_full() argument 110 struct fio_file *f = io_u->file; in fio_mmapio_prep_full() 116 if (io_u->offset != (size_t) io_u->offset || in fio_mmapio_prep_full() 132 static int fio_mmapio_prep(struct thread_data *td, struct io_u *io_u) in fio_mmapio_prep() argument 134 struct fio_file *f = io_u->file; in fio_mmapio_prep() 141 if (io_u->offset >= fmd->mmap_off && in fio_mmapio_prep() [all …]
|
D | posixaio.c | 16 struct io_u **aio_events; 64 struct io_u *io_u) in fio_posixaio_cancel() argument 66 struct fio_file *f = io_u->file; in fio_posixaio_cancel() 67 int r = aio_cancel(f->fd, &io_u->aiocb); in fio_posixaio_cancel() 76 struct io_u *io_u) in fio_posixaio_prep() argument 78 os_aiocb_t *aiocb = &io_u->aiocb; in fio_posixaio_prep() 79 struct fio_file *f = io_u->file; in fio_posixaio_prep() 82 aiocb->aio_buf = io_u->xfer_buf; in fio_posixaio_prep() 83 aiocb->aio_nbytes = io_u->xfer_buflen; in fio_posixaio_prep() 84 aiocb->aio_offset = io_u->offset; in fio_posixaio_prep() [all …]
|
D | splice.c | 29 static int fio_splice_read_old(struct thread_data *td, struct io_u *io_u) in fio_splice_read_old() argument 32 struct fio_file *f = io_u->file; in fio_splice_read_old() 37 offset = io_u->offset; in fio_splice_read_old() 38 buflen = io_u->xfer_buflen; in fio_splice_read_old() 39 p = io_u->xfer_buf; in fio_splice_read_old() 66 return io_u->xfer_buflen; in fio_splice_read_old() 73 static int fio_splice_read(struct thread_data *td, struct io_u *io_u) in fio_splice_read() argument 76 struct fio_file *f = io_u->file; in fio_splice_read() 83 offset = io_u->offset; in fio_splice_read() 84 mmap_len = buflen = io_u->xfer_buflen; in fio_splice_read() [all …]
|
D | libaio.c | 22 struct io_u **io_us; 68 static int fio_libaio_prep(struct thread_data fio_unused *td, struct io_u *io_u) in fio_libaio_prep() argument 70 struct fio_file *f = io_u->file; in fio_libaio_prep() 72 if (io_u->ddir == DDIR_READ) in fio_libaio_prep() 73 io_prep_pread(&io_u->iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); in fio_libaio_prep() 74 else if (io_u->ddir == DDIR_WRITE) in fio_libaio_prep() 75 io_prep_pwrite(&io_u->iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); in fio_libaio_prep() 76 else if (ddir_sync(io_u->ddir)) in fio_libaio_prep() 77 io_prep_fsync(&io_u->iocb, f->fd); in fio_libaio_prep() 82 static struct io_u *fio_libaio_event(struct thread_data *td, int event) in fio_libaio_event() [all …]
|
D | windowsaio.c | 21 struct io_u *io_u; member 26 struct io_u **aio_events; 41 static struct io_u *fio_windowsaio_event(struct thread_data *td, int event); 43 struct io_u *io_u); 62 wd->aio_events = malloc(td->o.iodepth * sizeof(struct io_u*)); in fio_windowsaio_init() 252 static struct io_u* fio_windowsaio_event(struct thread_data *td, int event) in fio_windowsaio_event() 264 struct io_u *io_u; in fio_windowsaio_getevents() local 279 io_u_qiter(&td->io_u_all, io_u, i) { in fio_windowsaio_getevents() 280 if (!(io_u->flags & IO_U_F_FLIGHT)) in fio_windowsaio_getevents() 283 fov = (struct fio_overlapped*)io_u->engine_data; in fio_windowsaio_getevents() [all …]
|
D | sg.c | 25 struct io_u **events; 34 struct io_u *io_u, int fs) in sgio_hdr_init() argument 36 struct sgio_cmd *sc = &sd->cmds[io_u->index]; in sgio_hdr_init() 44 hdr->pack_id = io_u->index; in sgio_hdr_init() 45 hdr->usr_ptr = io_u; in sgio_hdr_init() 48 hdr->dxferp = io_u->xfer_buf; in sgio_hdr_init() 49 hdr->dxfer_len = io_u->xfer_buflen; in sgio_hdr_init() 161 struct fio_file *f, struct io_u *io_u) in fio_sgio_ioctl_doio() argument 164 struct sg_io_hdr *hdr = &io_u->hdr; in fio_sgio_ioctl_doio() 167 sd->events[0] = io_u; in fio_sgio_ioctl_doio() [all …]
|
D | libhdfs.c | 58 static int fio_hdfsio_prep(struct thread_data *td, struct io_u *io_u) in fio_hdfsio_prep() argument 74 f_id = (io_u->offset / hd->fsbs) + hd->fid_correction; in fio_hdfsio_prep() 85 if (io_u->ddir == DDIR_READ) { in fio_hdfsio_prep() 87 } else if (io_u->ddir == DDIR_WRITE) { in fio_hdfsio_prep() 97 if (fi->mSize >= hd->fsbs || io_u->ddir == DDIR_WRITE) { in fio_hdfsio_prep() 113 static int fio_io_end(struct thread_data *td, struct io_u *io_u, int ret) in fio_io_end() argument 115 if (ret != (int)io_u->xfer_buflen) { in fio_io_end() 117 io_u->resid = io_u->xfer_buflen - ret; in fio_io_end() 118 io_u->error = 0; in fio_io_end() 121 io_u->error = errno; in fio_io_end() [all …]
|
D | net.c | 329 static int fio_netio_prep(struct thread_data *td, struct io_u *io_u) in fio_netio_prep() argument 339 if ((o->listen && io_u->ddir == DDIR_WRITE) || in fio_netio_prep() 340 (!o->listen && io_u->ddir == DDIR_READ)) { in fio_netio_prep() 374 static int splice_in(struct thread_data *td, struct io_u *io_u) in splice_in() argument 378 return splice_io_u(io_u->file->fd, nd->pipes[1], io_u->xfer_buflen); in splice_in() 384 static int splice_out(struct thread_data *td, struct io_u *io_u, in splice_out() argument 389 return splice_io_u(nd->pipes[0], io_u->file->fd, len); in splice_out() 392 static int vmsplice_io_u(struct io_u *io_u, int fd, unsigned int len) in vmsplice_io_u() argument 395 .iov_base = io_u->xfer_buf, in vmsplice_io_u() 422 static int vmsplice_io_u_out(struct thread_data *td, struct io_u *io_u, in vmsplice_io_u_out() argument [all …]
|
D | binject.c | 24 struct io_u **events; 35 static void binject_buc_init(struct binject_data *bd, struct io_u *io_u) in binject_buc_init() argument 37 struct b_user_cmd *buc = &io_u->buc; in binject_buc_init() 42 buc->buf = (unsigned long) io_u->xfer_buf; in binject_buc_init() 43 buc->len = io_u->xfer_buflen; in binject_buc_init() 44 buc->offset = io_u->offset; in binject_buc_init() 45 buc->usr_ptr = (unsigned long) io_u; in binject_buc_init() 150 bd->events[ev_index] = (struct io_u *) (unsigned long) buc->usr_ptr; in fio_binject_getevents() 173 static int fio_binject_doio(struct thread_data *td, struct io_u *io_u) in fio_binject_doio() argument 175 struct b_user_cmd *buc = &io_u->buc; in fio_binject_doio() [all …]
|
D | e4defrag.c | 131 static int fio_e4defrag_queue(struct thread_data *td, struct io_u *io_u) in fio_e4defrag_queue() argument 137 struct fio_file *f = io_u->file; in fio_e4defrag_queue() 141 fio_ro_check(td, io_u); in fio_e4defrag_queue() 147 if (io_u->ddir != DDIR_WRITE) { in fio_e4defrag_queue() 148 io_u->error = EINVAL; in fio_e4defrag_queue() 153 ret = fallocate(ed->donor_fd, 0, io_u->offset, io_u->xfer_buflen); in fio_e4defrag_queue() 160 me.orig_start = io_u->offset / ed->bsz; in fio_e4defrag_queue() 162 len = (io_u->offset + io_u->xfer_buflen + ed->bsz -1); in fio_e4defrag_queue() 168 if (len > io_u->xfer_buflen) in fio_e4defrag_queue() 169 len = io_u->xfer_buflen; in fio_e4defrag_queue() [all …]
|
D | falloc.c | 73 static int fio_fallocate_queue(struct thread_data *td, struct io_u *io_u) in fio_fallocate_queue() argument 75 struct fio_file *f = io_u->file; in fio_fallocate_queue() 79 fio_ro_check(td, io_u); in fio_fallocate_queue() 81 if (io_u->ddir == DDIR_READ) in fio_fallocate_queue() 83 else if (io_u->ddir == DDIR_WRITE) in fio_fallocate_queue() 85 else if (io_u->ddir == DDIR_TRIM) in fio_fallocate_queue() 88 ret = fallocate(f->fd, flags, io_u->offset, io_u->xfer_buflen); in fio_fallocate_queue() 91 io_u->error = errno; in fio_fallocate_queue()
|
/external/fio/ |
D | io_u.c | 36 static void mark_random_map(struct thread_data *td, struct io_u *io_u) in mark_random_map() argument 39 struct fio_file *f = io_u->file; in mark_random_map() 43 block = (io_u->offset - f->file_offset) / (uint64_t) min_bs; in mark_random_map() 44 nr_blocks = (io_u->buflen + min_bs - 1) / min_bs; in mark_random_map() 46 if (!(io_u->flags & IO_U_F_BUSY_OK)) in mark_random_map() 49 if ((nr_blocks * min_bs) < io_u->buflen) in mark_random_map() 50 io_u->buflen = nr_blocks * min_bs; in mark_random_map() 299 static int get_next_block(struct thread_data *td, struct io_u *io_u, in get_next_block() argument 303 struct fio_file *f = io_u->file; in get_next_block() 318 io_u->flags |= IO_U_F_BUSY_OK; in get_next_block() [all …]
|
D | ioengine.h | 34 struct io_u { struct 93 int (*end_io)(struct thread_data *, struct io_u **); argument 137 int (*prep)(struct thread_data *, struct io_u *); 138 int (*queue)(struct thread_data *, struct io_u *); 141 struct io_u *(*event)(struct thread_data *, int); 142 int (*cancel)(struct thread_data *, struct io_u *); 150 int (*io_u_init)(struct thread_data *, struct io_u *); 151 void (*io_u_free)(struct thread_data *, struct io_u *); 182 extern int __must_check td_io_prep(struct thread_data *, struct io_u *); 183 extern int __must_check td_io_queue(struct thread_data *, struct io_u *); [all …]
|
D | ioengines.c | 203 int td_io_prep(struct thread_data *td, struct io_u *io_u) in td_io_prep() argument 205 dprint_io_u(io_u, "prep"); in td_io_prep() 206 fio_ro_check(td, io_u); in td_io_prep() 208 lock_file(td, io_u->file, io_u->ddir); in td_io_prep() 211 int ret = td->io_ops->prep(td, io_u); in td_io_prep() 213 dprint(FD_IO, "->prep(%p)=%d\n", io_u, ret); in td_io_prep() 215 unlock_file(td, io_u->file); in td_io_prep() 265 int td_io_queue(struct thread_data *td, struct io_u *io_u) in td_io_queue() argument 269 dprint_io_u(io_u, "queue"); in td_io_queue() 270 fio_ro_check(td, io_u); in td_io_queue() [all …]
|
D | verify.c | 28 static void populate_hdr(struct thread_data *td, struct io_u *io_u, 52 struct io_u *io_u, unsigned long seed, int use_seed) in fill_verify_pattern() argument 62 io_u->rand_seed = fill_buffer(td, p, len); in fill_verify_pattern() 66 if (io_u->buf_filled_len >= len) { in fill_verify_pattern() 73 io_u->buf_filled_len = len; in fill_verify_pattern() 76 static unsigned int get_hdr_inc(struct thread_data *td, struct io_u *io_u) in get_hdr_inc() argument 80 hdr_inc = io_u->buflen; in get_hdr_inc() 81 if (td->o.verify_interval && td->o.verify_interval <= io_u->buflen) in get_hdr_inc() 87 static void fill_pattern_headers(struct thread_data *td, struct io_u *io_u, in fill_pattern_headers() argument 92 void *p = io_u->buf; in fill_pattern_headers() [all …]
|
D | io_u_queue.h | 6 struct io_u; 9 struct io_u **io_us; 13 static inline struct io_u *io_u_qpop(struct io_u_queue *q) in io_u_qpop() 17 struct io_u *io_u = q->io_us[next]; in io_u_qpop() local 20 return io_u; in io_u_qpop() 26 static inline void io_u_qpush(struct io_u_queue *q, struct io_u *io_u) in io_u_qpush() argument 28 q->io_us[q->nr++] = io_u; in io_u_qpush() 36 #define io_u_qiter(q, io_u, i) \ argument 37 for (i = 0; i < (q)->nr && (io_u = (q)->io_us[i]); i++) 46 struct io_u **ring; [all …]
|
D | trim.c | 14 int get_next_trim(struct thread_data *td, struct io_u *io_u) in get_next_trim() argument 21 if (io_u->file) in get_next_trim() 30 io_u->offset = ipo->offset; in get_next_trim() 31 io_u->buflen = ipo->len; in get_next_trim() 32 io_u->file = ipo->file; in get_next_trim() 50 if (!fio_file_open(io_u->file)) { in get_next_trim() 51 int r = td_io_open_file(td, io_u->file); in get_next_trim() 55 io_u->file->file_name); in get_next_trim() 60 get_file(io_u->file); in get_next_trim() 61 assert(fio_file_open(io_u->file)); in get_next_trim() [all …]
|
D | backend.c | 266 struct io_u *io_u; in cleanup_pending_aio() local 269 io_u_qiter(&td->io_u_all, io_u, i) { in cleanup_pending_aio() 270 if (io_u->flags & IO_U_F_FLIGHT) { in cleanup_pending_aio() 271 r = td->io_ops->cancel(td, io_u); in cleanup_pending_aio() 273 put_io_u(td, io_u); in cleanup_pending_aio() 288 struct io_u *io_u = __get_io_u(td); in fio_io_sync() local 291 if (!io_u) in fio_io_sync() 294 io_u->ddir = DDIR_SYNC; in fio_io_sync() 295 io_u->file = f; in fio_io_sync() 297 if (td_io_prep(td, io_u)) { in fio_io_sync() [all …]
|
D | trim.h | 7 extern int __must_check get_next_trim(struct thread_data *td, struct io_u *io_u); 8 extern int io_u_should_trim(struct thread_data *td, struct io_u *io_u); 23 static inline int get_next_trim(struct thread_data *td, struct io_u *io_u) in get_next_trim() argument 27 static inline int io_u_should_trim(struct thread_data *td, struct io_u *io_u) in io_u_should_trim() argument
|