Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Mar 18, 2015

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit 95e564523d502e5a682ae7f6ee793ca4c9ca76ca:

rate: remove redundant code in rate_ddir() (2015-03-12 10:05:25 -0600)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to 7d1bb70f3d85d041b4b7dd926e98054fea980bdc:

Scramble IO buffers unless explicitly told not (2015-03-17 18:11:07 -0600)

----------------------------------------------------------------
Jens Axboe (3):
smalloc: don't crash on being passed a bad pointer
io_u: fix refill, should be random content Scramble IO buffers unless explicitly told not

Zev Weiss (1):
init: fix exit status with bogus arguments

 init.c    |    3 +++
 io_u.c    |    7 +++++--
 smalloc.c |    8 ++++++--
 3 files changed, 14 insertions(+), 4 deletions(-)

---

Diff of recent changes:

init.c +3 -0
index 7aedf2b..95e26b8 100644
@@ -2135,6 +2135,7 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
 						td = NULL;
 					}
 					do_exit++;
+					exit_val = 1;
 					break;
 				}
 				fio_options_set_ioengine_opts(l_opts, td);
@@ -2153,6 +2154,7 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
 					td = NULL;
 				}
 				do_exit++;
+				exit_val = 1;
 			}
 
 			if (!ret && !strcmp(opt, "ioengine")) {
@@ -2161,6 +2163,7 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
 					put_job(td);
 					td = NULL;
 					do_exit++;
+					exit_val = 1;
 					break;
 				}
 				fio_options_set_ioengine_opts(l_opts, td);
io_u.c +5 -2
index 6567e10..a45dd40 100644
@@ -1484,7 +1484,8 @@ struct io_u *get_io_u(struct thread_data *td)
 				io_u_fill_buffer(td, io_u,
 					td->o.min_bs[DDIR_WRITE],
 					io_u->xfer_buflen);
-			} else if ((td->flags & TD_F_SCRAMBLE_BUFFERS) &&
+			}
+			if ((td->flags & TD_F_SCRAMBLE_BUFFERS) &&
 				   !(td->flags & TD_F_COMPRESS))
 				do_scramble = 1;
 			if (td->flags & TD_F_VER_NONE) {
@@ -1895,8 +1896,10 @@ void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
 		} while (left);
 	} else if (o->buffer_pattern_bytes)
 		fill_buffer_pattern(td, buf, max_bs);
-	else
+	else if (o->zero_buffers)
 		memset(buf, 0, max_bs);
+	else
+		fill_random_buf(get_buf_state(td), buf, max_bs);
 }
 
 /*
smalloc.c +6 -2
index b460d65..447d5c5 100644
@@ -363,8 +363,12 @@ void sfree(void *ptr)
 
 	global_read_unlock();
 
-	assert(pool);
-	sfree_pool(pool, ptr);
+	if (pool) {
+		sfree_pool(pool, ptr);
+		return;
+	}
+
+	log_err("smalloc: ptr %p not from smalloc pool\n", ptr);
 }
 
 static void *__smalloc_pool(struct pool *pool, size_t size)