• Home
  • Raw
  • Download

Lines Matching refs:io_u

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()
142 io_u->offset + io_u->buflen < fmd->mmap_off + fmd->mmap_sz) in fio_mmapio_prep()
154 if (fio_mmapio_prep_full(td, io_u)) { in fio_mmapio_prep()
156 ret = fio_mmapio_prep_limited(td, io_u); in fio_mmapio_prep()
162 io_u->mmap_data = fmd->mmap_ptr + io_u->offset - fmd->mmap_off - in fio_mmapio_prep()
167 static int fio_mmapio_queue(struct thread_data *td, struct io_u *io_u) in fio_mmapio_queue() argument
169 struct fio_file *f = io_u->file; in fio_mmapio_queue()
172 fio_ro_check(td, io_u); in fio_mmapio_queue()
174 if (io_u->ddir == DDIR_READ) in fio_mmapio_queue()
175 memcpy(io_u->xfer_buf, io_u->mmap_data, io_u->xfer_buflen); in fio_mmapio_queue()
176 else if (io_u->ddir == DDIR_WRITE) in fio_mmapio_queue()
177 memcpy(io_u->mmap_data, io_u->xfer_buf, io_u->xfer_buflen); in fio_mmapio_queue()
178 else if (ddir_sync(io_u->ddir)) { in fio_mmapio_queue()
180 io_u->error = errno; in fio_mmapio_queue()
181 td_verror(td, io_u->error, "msync"); in fio_mmapio_queue()
183 } else if (io_u->ddir == DDIR_TRIM) { in fio_mmapio_queue()
184 int ret = do_io_u_trim(td, io_u); in fio_mmapio_queue()
187 td_verror(td, io_u->error, "trim"); in fio_mmapio_queue()
194 if (td->o.odirect && ddir_rw(io_u->ddir)) { in fio_mmapio_queue()
195 if (msync(io_u->mmap_data, io_u->xfer_buflen, MS_SYNC) < 0) { in fio_mmapio_queue()
196 io_u->error = errno; in fio_mmapio_queue()
197 td_verror(td, io_u->error, "msync"); in fio_mmapio_queue()
199 if (posix_madvise(io_u->mmap_data, io_u->xfer_buflen, POSIX_MADV_DONTNEED) < 0) { in fio_mmapio_queue()
200 io_u->error = errno; in fio_mmapio_queue()
201 td_verror(td, io_u->error, "madvise"); in fio_mmapio_queue()