Home
last modified time | relevance | path

Searched refs:io_u (Results 1 – 25 of 39) sorted by relevance

12

/external/fio/engines/
Dsync.c24 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 …]
Dglusterfs_async.c10 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 …]
Dguasi.c37 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 …]
Dglusterfs_sync.c11 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 …]
Dsolarisaio.c16 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 …]
Drbd.c13 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 …]
Dmmap.c86 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 …]
Dposixaio.c16 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 …]
Dsplice.c29 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 …]
Dlibaio.c22 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 …]
Dwindowsaio.c21 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 …]
Dsg.c25 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 …]
Dlibhdfs.c58 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 …]
Dnet.c329 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 …]
Dbinject.c24 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 …]
De4defrag.c131 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 …]
Dfalloc.c73 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/
Dio_u.c36 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 …]
Dioengine.h34 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 …]
Dioengines.c203 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 …]
Dverify.c28 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 …]
Dio_u_queue.h6 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 …]
Dtrim.c14 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 …]
Dbackend.c266 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 …]
Dtrim.h7 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

12