Recent changes (master)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following changes since commit 239a11de15959849a69508ff7cb46be114599baf:

  android: use ashmem (2013-05-01 21:28:49 +0200)

are available in the git repository at:
  git://git.kernel.dk/fio.git master

Jens Axboe (1):
      Honor random/zero/compressible settings for filling an initial file

 filesetup.c |    3 ++-
 io_u.c      |   28 ++++++++++++++++++----------
 ioengine.h  |    1 +
 3 files changed, 21 insertions(+), 11 deletions(-)

---

Diff of recent changes:

diff --git a/filesetup.c b/filesetup.c
index 9f186fb..6427f3e 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -127,7 +127,6 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
 	}
 
 	b = malloc(td->o.max_bs[DDIR_WRITE]);
-	memset(b, 0, td->o.max_bs[DDIR_WRITE]);
 
 	left = f->real_file_size;
 	while (left && !td->terminate) {
@@ -135,6 +134,8 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
 		if (bs > left)
 			bs = left;
 
+		fill_io_buffer(td, b, bs, bs);
+
 		r = write(f->fd, b, bs);
 
 		if (r > 0) {
diff --git a/io_u.c b/io_u.c
index d03049e..2cf2b8d 100644
--- a/io_u.c
+++ b/io_u.c
@@ -1602,14 +1602,9 @@ void io_u_queued(struct thread_data *td, struct io_u *io_u)
 	}
 }
 
-/*
- * "randomly" fill the buffer contents
- */
-void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
-		      unsigned int min_write, unsigned int max_bs)
+void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
+		    unsigned int max_bs)
 {
-	io_u->buf_filled_len = 0;
-
 	if (!td->o.zero_buffers) {
 		unsigned int perc = td->o.compress_percentage;
 
@@ -1617,10 +1612,23 @@ void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
 			unsigned int seg = min_write;
 
 			seg = min(min_write, td->o.compress_chunk);
-			fill_random_buf_percentage(&td->buf_state, io_u->buf,
+			if (!seg)
+				seg = min_write;
+
+			fill_random_buf_percentage(&td->buf_state, buf,
 						perc, seg, max_bs);
 		} else
-			fill_random_buf(&td->buf_state, io_u->buf, max_bs);
+			fill_random_buf(&td->buf_state, buf, max_bs);
 	} else
-		memset(io_u->buf, 0, max_bs);
+		memset(buf, 0, max_bs);
+}
+
+/*
+ * "randomly" fill the buffer contents
+ */
+void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u,
+		      unsigned int min_write, unsigned int max_bs)
+{
+	io_u->buf_filled_len = 0;
+	fill_io_buffer(td, io_u->buf, min_write, max_bs);
 }
diff --git a/ioengine.h b/ioengine.h
index d52b2b9..362ab3e 100644
--- a/ioengine.h
+++ b/ioengine.h
@@ -198,6 +198,7 @@ extern int __must_check io_u_queued_complete(struct thread_data *, int, uint64_t
 extern void io_u_queued(struct thread_data *, struct io_u *);
 extern void io_u_log_error(struct thread_data *, struct io_u *);
 extern void io_u_mark_depth(struct thread_data *, unsigned int);
+extern void fill_io_buffer(struct thread_data *, void *, unsigned int, unsigned int);
 extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned int, unsigned int);
 void io_u_mark_complete(struct thread_data *, unsigned int);
 void io_u_mark_submit(struct thread_data *, unsigned int);
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux