/external/fio/ |
H A D | trim.h | 7 extern bool __must_check get_next_trim(struct thread_data *td, struct io_u *io_u); 8 extern bool io_u_should_trim(struct thread_data *td, struct io_u *io_u); 11 * Determine whether a given io_u should be logged for verify or 23 static inline bool get_next_trim(struct thread_data *td, struct io_u *io_u) argument 27 static inline bool io_u_should_trim(struct thread_data *td, struct io_u *io_u) argument
|
H A D | trim.c | 14 bool get_next_trim(struct thread_data *td, struct io_u *io_u) argument 19 * this io_u is from a requeue, we already filled the offsets 21 if (io_u->file) 30 io_u->offset = ipo->offset; 31 io_u->buflen = ipo->len; 32 io_u->file = ipo->file; 50 if (!fio_file_open(io_u->file)) { 51 int r = td_io_open_file(td, io_u->file); 55 io_u 70 io_u_should_trim(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | io_u_queue.h | 6 struct io_u; 9 struct io_u **io_us; 14 static inline struct io_u *io_u_qpop(struct io_u_queue *q) 18 struct io_u *io_u = q->io_us[next]; local 21 return io_u; 27 static inline void io_u_qpush(struct io_u_queue *q, struct io_u *io_u) argument 30 q->io_us[q->nr++] = io_u; 42 #define io_u_qiter(q, io_u, 58 io_u_rpush(struct io_u_ring *r, struct io_u *io_u) argument 72 struct io_u *io_u = r->ring[r->tail]; local [all...] |
H A D | ioengines.c | 191 int td_io_prep(struct thread_data *td, struct io_u *io_u) argument 193 dprint_io_u(io_u, "prep"); 194 fio_ro_check(td, io_u); 196 lock_file(td, io_u->file, io_u->ddir); 199 int ret = td->io_ops->prep(td, io_u); 201 dprint(FD_IO, "->prep(%p)=%d\n", io_u, ret); 203 unlock_file(td, io_u->file); 253 int td_io_queue(struct thread_data *td, struct io_u *io_ argument [all...] |
H A D | rate-submit.c | 15 struct io_u *io_u = container_of(work, struct io_u, work); local 16 const enum fio_ddir ddir = io_u->ddir; 20 dprint(FD_RATE, "io_u %p queued by %u\n", io_u, gettid()); 22 io_u_set(td, io_u, IO_U_F_NO_FILE_PUT); 27 ret = td_io_queue(td, io_u); 33 io_u_clear(td, io_u, IO_U_F_FLIGHT); 36 dprint(FD_RATE, "io_u [all...] |
/external/fio/engines/ |
H A D | ftruncate.c | 20 static int fio_ftruncate_queue(struct thread_data *td, struct io_u *io_u) argument 22 struct fio_file *f = io_u->file; 24 fio_ro_check(td, io_u); 26 if (io_u->ddir != DDIR_WRITE) { 27 io_u->error = EINVAL; 30 ret = ftruncate(f->fd, io_u->offset); 33 io_u->error = errno;
|
H A D | falloc.c | 73 static int fio_fallocate_queue(struct thread_data *td, struct io_u *io_u) argument 75 struct fio_file *f = io_u->file; 79 fio_ro_check(td, io_u); 81 if (io_u->ddir == DDIR_READ) 83 else if (io_u->ddir == DDIR_WRITE) 85 else if (io_u->ddir == DDIR_TRIM) 88 ret = fallocate(f->fd, flags, io_u->offset, io_u->xfer_buflen); 91 io_u [all...] |
H A D | glusterfs_sync.c | 11 static int fio_gf_prep(struct thread_data *td, struct io_u *io_u) argument 13 struct fio_file *f = io_u->file; 18 if (!ddir_rw(io_u->ddir)) 21 if (LAST_POS(f) != -1ULL && LAST_POS(f) == io_u->offset) 24 if (glfs_lseek(g->fd, io_u->offset, SEEK_SET) < 0) { 32 static int fio_gf_queue(struct thread_data *td, struct io_u *io_u) argument 37 dprint(FD_FILE, "fio queue len %lu\n", io_u->xfer_buflen); 38 fio_ro_check(td, io_u); [all...] |
H A D | cpu.c | 56 static int fio_cpuio_queue(struct thread_data *td, struct io_u fio_unused *io_u) argument
|
H A D | skeleton_external.c | 24 * The ->event() hook is called to match an event number with an io_u. 29 static struct io_u *fio_skeleton_event(struct thread_data *td, int event) 47 * The ->cancel() hook attempts to cancel the io_u. Only relevant for 50 static int fio_skeleton_cancel(struct thread_data *td, struct io_u *io_u) argument 56 * The ->queue() hook is responsible for initiating io on the io_u 60 * The io engine must transfer in the direction noted by io_u->ddir 61 * to the buffer pointed to by io_u->xfer_buf for as many bytes as 62 * io_u->xfer_buflen. Residual data count may be set in io_u 65 fio_skeleton_queue(struct thread_data *td, struct io_u *io_u) argument 86 fio_skeleton_prep(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | fusion-aw.c | 37 static int queue(struct thread_data *td, struct io_u *io_u) argument 39 struct fas_data *d = FILE_ENG_DATA(io_u->file); 42 if (io_u->ddir != DDIR_WRITE) { 43 td_vmsg(td, EINVAL, "only writes supported", "io_u->ddir"); 48 if ((size_t) io_u->xfer_buf % d->xfer_buf_align) { 49 td_vmsg(td, EINVAL, "unaligned data buffer", "io_u->xfer_buf"); 54 if (io_u->xfer_buflen % d->xfer_buflen_align) { 55 td_vmsg(td, EINVAL, "unaligned data size", "io_u->xfer_buflen"); 60 if (io_u [all...] |
H A D | mmap.c | 84 static int fio_mmapio_prep_limited(struct thread_data *td, struct io_u *io_u) argument 86 struct fio_file *f = io_u->file; 89 if (io_u->buflen > mmap_map_size) { 98 fmd->mmap_off = io_u->offset; 106 static int fio_mmapio_prep_full(struct thread_data *td, struct io_u *io_u) argument 108 struct fio_file *f = io_u->file; 114 if (io_u->offset != (size_t) io_u 130 fio_mmapio_prep(struct thread_data *td, struct io_u *io_u) argument 165 fio_mmapio_queue(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | mtd.c | 27 struct io_u *io_u, int eb) 31 ret = mtd_mark_bad(&fmd->info, io_u->file->fd, eb); 33 io_u->error = errno; 43 struct io_u *io_u, int eb) 45 int ret = mtd_is_bad(&fmd->info, io_u->file->fd, eb); 47 io_u->error = errno; 50 io_u->error = EIO; /* Silent failure--don't flood stderr */ 54 static int fio_mtd_queue(struct thread_data *td, struct io_u *io_ argument 25 fio_mtd_maybe_mark_bad(struct thread_data *td, struct fio_mtd_data *fmd, struct io_u *io_u, int eb) argument 41 fio_mtd_is_bad(struct thread_data *td, struct fio_mtd_data *fmd, struct io_u *io_u, int eb) argument [all...] |
H A D | null.c | 21 struct io_u **io_us; 26 static struct io_u *fio_null_event(struct thread_data *td, int event) 63 static int fio_null_queue(struct thread_data *td, struct io_u *io_u) argument 67 fio_ro_check(td, io_u); 74 nd->io_us[nd->queued++] = io_u; 101 nd->io_us = (struct io_u **) malloc(td->o.iodepth * sizeof(struct io_u *)); 102 memset(nd->io_us, 0, td->o.iodepth * sizeof(struct io_u *));
|
H A D | dev-dax.c | 103 static int fio_devdax_prep_limited(struct thread_data *td, struct io_u *io_u) argument 105 struct fio_file *f = io_u->file; 108 if (io_u->buflen > f->real_file_size) { 117 fdd->devdax_off = io_u->offset; 125 static int fio_devdax_prep_full(struct thread_data *td, struct io_u *io_u) argument 127 struct fio_file *f = io_u->file; 134 if (io_u->offset != (size_t) io_u 150 fio_devdax_prep(struct thread_data *td, struct io_u *io_u) argument 185 fio_devdax_queue(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | e4defrag.c | 134 static int fio_e4defrag_queue(struct thread_data *td, struct io_u *io_u) argument 140 struct fio_file *f = io_u->file; 144 fio_ro_check(td, io_u); 150 if (io_u->ddir != DDIR_WRITE) { 151 io_u->error = EINVAL; 156 ret = fallocate(ed->donor_fd, 0, io_u->offset, io_u->xfer_buflen); 163 me.orig_start = io_u->offset / ed->bsz; 165 len = (io_u [all...] |
H A D | glusterfs_async.c | 10 struct io_u *io_u; member in struct:fio_gf_iou 14 static struct io_u *fio_gf_event(struct thread_data *td, int event) 27 struct io_u *io_u; local 32 io_u_qiter(&td->io_u_all, io_u, i) { 35 if (!(io_u->flags & IO_U_F_FLIGHT)) 38 io = io_u->engine_data; 41 g->aio_events[events] = io_u; 59 static void fio_gf_io_u_free(struct thread_data *td, struct io_u *io_ argument 71 fio_gf_io_u_init(struct thread_data *td, struct io_u *io_u) argument 92 struct io_u *io_u = data; local 99 fio_gf_async_queue(struct thread_data fio_unused * td, struct io_u *io_u) argument [all...] |
H A 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) argument 45 GDBG_PRINT(("fio_guasi_prep(%p)\n", io_u)); 46 io_u->greq = NULL; 51 static struct io_u *fio_guasi_event(struct thread_data *td, int event) 54 struct io_u *io_u; local 62 io_u = rinf.asid; 63 io_u 116 fio_guasi_queue(struct thread_data *td, struct io_u *io_u) argument 134 struct io_u *io_u; local 153 struct io_u *io_u; local 189 fio_guasi_cancel(struct thread_data fio_unused *td, struct io_u *io_u) argument [all...] |
H A D | solarisaio.c | 16 struct io_u **aio_events; 23 struct io_u *io_u) 25 return aiocancel(&io_u->resultp); 29 struct io_u *io_u) 33 io_u->resultp.aio_return = AIO_INPROGRESS; 34 io_u->engine_data = sd; 41 struct io_u *io_u; local 22 fio_solarisaio_cancel(struct thread_data fio_unused *td, struct io_u *io_u) argument 28 fio_solarisaio_prep(struct thread_data fio_unused *td, struct io_u *io_u) argument 108 fio_solarisaio_queue(struct thread_data fio_unused *td, struct io_u *io_u) argument [all...] |
H A D | splice.c | 29 static int fio_splice_read_old(struct thread_data *td, struct io_u *io_u) argument 32 struct fio_file *f = io_u->file; 37 offset = io_u->offset; 38 buflen = io_u->xfer_buflen; 39 p = io_u->xfer_buf; 66 return io_u->xfer_buflen; 73 static int fio_splice_read(struct thread_data *td, struct io_u *io_u) argument 76 struct fio_file *f = io_u 167 fio_splice_write(struct thread_data *td, struct io_u *io_u) argument 202 fio_spliceio_queue(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | binject.c | 24 struct io_u **events; 35 static void binject_buc_init(struct binject_data *bd, struct io_u *io_u) argument 37 struct b_user_cmd *buc = &io_u->buc; 42 buc->buf = (unsigned long) io_u->xfer_buf; 43 buc->len = io_u->xfer_buflen; 44 buc->offset = io_u->offset; 45 buc->usr_ptr = (unsigned long) io_u; 150 bd->events[ev_index] = (struct io_u *) (unsigned long) buc->usr_ptr; 173 static int fio_binject_doio(struct thread_data *td, struct io_u *io_ argument 186 fio_binject_prep(struct thread_data *td, struct io_u *io_u) argument 216 fio_binject_queue(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | libaio.c | 24 struct io_u **io_us; 70 static int fio_libaio_prep(struct thread_data fio_unused *td, struct io_u *io_u) argument 72 struct fio_file *f = io_u->file; 74 if (io_u->ddir == DDIR_READ) 75 io_prep_pread(&io_u->iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); 76 else if (io_u 88 struct io_u *io_u; local 182 fio_libaio_queue(struct thread_data *td, struct io_u *io_u) argument 232 struct io_u *io_u = io_us[i]; local 309 fio_libaio_cancel(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | libhdfs.c | 123 static int fio_hdfsio_prep(struct thread_data *td, struct io_u *io_u) argument 132 f_id = floor(io_u->offset / options-> chunck_size); 147 if (io_u->ddir == DDIR_READ || io_u->ddir == DDIR_SYNC) { 149 } else if (io_u->ddir == DDIR_WRITE) { 156 get_chunck_name(fname, io_u->file->file_name, f_id); 168 static int fio_hdfsio_queue(struct thread_data *td, struct io_u *io_u) argument 175 offset = io_u 351 fio_hdfsio_io_u_init(struct thread_data *td, struct io_u *io_u) argument 386 fio_hdfsio_io_u_free(struct thread_data *td, struct io_u *io_u) argument [all...] |
H A D | pmemblk.c | 345 static int fio_pmemblk_queue(struct thread_data *td, struct io_u *io_u) argument 347 struct fio_file *f = io_u->file; 354 fio_ro_check(td, io_u); 356 switch (io_u->ddir) { 359 off = io_u->offset; 360 len = io_u->xfer_buflen; 362 io_u->error = EINVAL; 370 io_u->error = 0; 371 buf = io_u [all...] |
H A D | posixaio.c | 16 struct io_u **aio_events; 64 struct io_u *io_u) 66 struct fio_file *f = io_u->file; 67 int r = aio_cancel(f->fd, &io_u->aiocb); 76 struct io_u *io_u) 78 os_aiocb_t *aiocb = &io_u->aiocb; 79 struct fio_file *f = io_u->file; 82 aiocb->aio_buf = io_u 63 fio_posixaio_cancel(struct thread_data fio_unused *td, struct io_u *io_u) argument 75 fio_posixaio_prep(struct thread_data fio_unused *td, struct io_u *io_u) argument 101 struct io_u *io_u; local 169 fio_posixaio_queue(struct thread_data *td, struct io_u *io_u) argument [all...] |