Temporary iodepth_low work-around for syslets

syslet really wants iodepth_low=1 for sequential workloads,
otherwise when fio starts issuing a new sequence of io, we'll
have pending-and-unsubmitted requests from the previous process.
The results is seeky instead of sequential requests.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/init.c b/init.c
index 636e957..33a1c28 100644
--- a/init.c
+++ b/init.c
@@ -708,8 +708,17 @@
 	/*
 	 * The low water mark cannot be bigger than the iodepth
 	 */
-	if (td->iodepth_low > td->iodepth || !td->iodepth_low)
-		td->iodepth_low = td->iodepth;
+	if (td->iodepth_low > td->iodepth || !td->iodepth_low) {
+		/*
+		 * syslet work around - if the workload is sequential,
+		 * we want to let the queue drain all the way down to
+		 * avoid seeking between async threads
+		 */
+		if (!strcmp(td->io_ops->name, "syslet-rw") && !td_random(td))
+			td->iodepth_low = 1;
+		else
+			td->iodepth_low = td->iodepth;
+	}
 
 	/*
 	 * If batch number isn't set, default to the same as iodepth