From f85ac25a7d5c9d5ba4d5c73363a6a2a461a9b013 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sat, 1 Mar 2008 18:09:49 +0100 Subject: [PATCH] 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 --- engines/net.c | 13 +------------ engines/sync.c | 2 -- fio.c | 2 -- fio.h | 1 - io_u.c | 2 -- ioengines.c | 1 - 6 files changed, 1 insertion(+), 20 deletions(-) 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; -- 2.25.1