From: Jens Axboe Date: Sat, 1 Mar 2008 17:09:49 +0000 (+0100) Subject: Remove the file->last_completed_pos variable X-Git-Tag: fio-1.20-rc1~23 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=f85ac25a7d5c9d5ba4d5c73363a6a2a461a9b013;hp=126d65c6fc97d6acdc568aa5a969c012018daf15 Remove the file->last_completed_pos variable This tracks where we last did IO to this file, however with file sharing that may break. So just remove this optimization, it'll cost an extra lseek() for the sync engine but doesn't do much else outside of that. Signed-off-by: Jens Axboe --- diff --git a/engines/net.c b/engines/net.c index f6ae3790..60d53bc2 100644 --- a/engines/net.c +++ b/engines/net.c @@ -28,7 +28,6 @@ struct netio_data { static int fio_netio_prep(struct thread_data *td, struct io_u *io_u) { struct netio_data *nd = td->io_ops->data; - struct fio_file *f = io_u->file; /* * Make sure we don't see spurious reads to a receiver, and vice versa @@ -39,17 +38,7 @@ static int fio_netio_prep(struct thread_data *td, struct io_u *io_u) return 1; } - if (io_u->ddir == DDIR_SYNC) - return 0; - if (io_u->offset == f->last_completed_pos) - return 0; - - /* - * If offset is different from last end position, it's a seek. - * As network io is purely sequential, we don't allow seeks. - */ - td_verror(td, EINVAL, "cannot seek"); - return 1; + return 0; } static int splice_io_u(int fdin, int fdout, unsigned int len) diff --git a/engines/sync.c b/engines/sync.c index c5410c7d..46cb864d 100644 --- a/engines/sync.c +++ b/engines/sync.c @@ -30,8 +30,6 @@ static int fio_syncio_prep(struct thread_data *td, struct io_u *io_u) if (io_u->ddir == DDIR_SYNC) return 0; - if (io_u->offset == f->last_completed_pos) - return 0; if (lseek(f->fd, io_u->offset, SEEK_SET) == -1) { td_verror(td, errno, "lseek"); diff --git a/fio.c b/fio.c index c609f55d..c2bc1a67 100644 --- a/fio.c +++ b/fio.c @@ -359,7 +359,6 @@ static void do_verify(struct thread_data *td) io_u->xfer_buflen = io_u->resid; io_u->xfer_buf += bytes; io_u->offset += bytes; - f->last_completed_pos = io_u->offset; td->ts.short_io_u[io_u->ddir]++; @@ -485,7 +484,6 @@ static void do_io(struct thread_data *td) io_u->xfer_buflen = io_u->resid; io_u->xfer_buf += bytes; io_u->offset += bytes; - f->last_completed_pos = io_u->offset; td->ts.short_io_u[io_u->ddir]++; diff --git a/fio.h b/fio.h index ca35ffcd..b0ba0ac4 100644 --- a/fio.h +++ b/fio.h @@ -306,7 +306,6 @@ struct fio_file { unsigned long long io_size; unsigned long long last_pos; - unsigned long long last_completed_pos; /* * block map for random io diff --git a/io_u.c b/io_u.c index 0f455cfd..5a3157a2 100644 --- a/io_u.c +++ b/io_u.c @@ -824,8 +824,6 @@ static void io_completed(struct thread_data *td, struct io_u *io_u, td->io_bytes[idx] += bytes; td->this_io_bytes[idx] += bytes; - io_u->file->last_completed_pos = io_u->endpos; - usec = utime_since(&io_u->issue_time, &icd->time); add_clat_sample(td, idx, usec); diff --git a/ioengines.c b/ioengines.c index a81c7b88..879c5f1c 100644 --- a/ioengines.c +++ b/ioengines.c @@ -303,7 +303,6 @@ int td_io_open_file(struct thread_data *td, struct fio_file *f) } f->last_free_lookup = 0; - f->last_completed_pos = 0; f->last_pos = f->file_offset; f->flags |= FIO_FILE_OPEN; f->flags &= ~FIO_FILE_CLOSING;