The following changes since commit a9bac3f9d414d27a1cd2a32f33df70abbc341021: Include http:// git url location (2011-09-29 09:21:49 -0600) are available in the git repository at: git://git.kernel.dk/fio.git master Jens Axboe (3): Don't overwrite -t timeout setting in fill_def_thread() Fio 1.59 Fix for hosed end-of-run log numbers Martin Steigerwald (1): Escape minus signs in manpage to fix lintian warning: fio.1 | 2 +- init.c | 6 +++- io_u.c | 50 +++++++++++++++++++++++++++++++---------------- os/windows/install.wxs | 2 +- os/windows/version.h | 4 +- 5 files changed, 41 insertions(+), 23 deletions(-) --- Diff of recent changes: diff --git a/fio.1 b/fio.1 index dc10b40..513caa9 100644 --- a/fio.1 +++ b/fio.1 @@ -931,7 +931,7 @@ Enable the reporting of percentiles of completion latencies. Overwrite the default list of percentiles for completion latencies. Each number is a floating number in the range (0,100], and the maximum length of the list is 20. Use ':' to separate the -numbers. For example, --percentile_list=99.5:99.9 will cause fio to +numbers. For example, \-\-percentile_list=99.5:99.9 will cause fio to report the values of completion latency below which 99.5% and 99.9% of the observed latencies fell, respectively. .SH OUTPUT diff --git a/init.c b/init.c index 62c070e..0435dd0 100644 --- a/init.c +++ b/init.c @@ -22,13 +22,14 @@ #include "lib/getopt.h" -static char fio_version_string[] = "fio 1.58"; +static char fio_version_string[] = "fio 1.59"; #define FIO_RANDSEED (0xb1899bedUL) static char **ini_file; static int max_jobs = FIO_MAX_JOBS; static int dump_cmdline; +static int def_timeout; static struct thread_data def_thread; struct thread_data *threads = NULL; @@ -959,6 +960,7 @@ static int fill_def_thread(void) memset(&def_thread, 0, sizeof(def_thread)); fio_getaffinity(getpid(), &def_thread.o.cpumask); + def_thread.o.timeout = def_timeout; /* * fill default options @@ -1173,7 +1175,7 @@ static int parse_cmd_line(int argc, char *argv[]) smalloc_pool_size = atoi(optarg); break; case 't': - def_thread.o.timeout = atoi(optarg); + def_timeout = atoi(optarg); break; case 'l': write_lat_log = 1; diff --git a/io_u.c b/io_u.c index 77069c5..0bc83d2 100644 --- a/io_u.c +++ b/io_u.c @@ -13,6 +13,7 @@ struct io_completion_data { int nr; /* input */ + int account; /* input */ int error; /* output */ unsigned long bytes_done[2]; /* output */ @@ -1266,6 +1267,34 @@ void io_u_log_error(struct thread_data *td, struct io_u *io_u) td_verror(td, io_u->error, "io_u error"); } +static void account_io_completion(struct thread_data *td, struct io_u *io_u, + struct io_completion_data *icd, + const enum fio_ddir idx, unsigned int bytes) +{ + unsigned long uninitialized_var(lusec); + + if (!icd->account) + return; + + if (!td->o.disable_clat || !td->o.disable_bw) + lusec = utime_since(&io_u->issue_time, &icd->time); + + if (!td->o.disable_lat) { + unsigned long tusec; + + tusec = utime_since(&io_u->start_time, &icd->time); + add_lat_sample(td, idx, tusec, bytes); + } + + if (!td->o.disable_clat) { + add_clat_sample(td, idx, lusec, bytes); + io_u_mark_latency(td, lusec); + } + + if (!td->o.disable_bw) + add_bw_sample(td, idx, bytes, &icd->time); +} + static void io_completed(struct thread_data *td, struct io_u *io_u, struct io_completion_data *icd) { @@ -1319,24 +1348,8 @@ static void io_completed(struct thread_data *td, struct io_u *io_u, } if (ramp_time_over(td)) { - unsigned long uninitialized_var(lusec); + account_io_completion(td, io_u, icd, idx, bytes); - if (!td->o.disable_clat || !td->o.disable_bw) - lusec = utime_since(&io_u->issue_time, - &icd->time); - if (!td->o.disable_lat) { - unsigned long tusec; - - tusec = utime_since(&io_u->start_time, - &icd->time); - add_lat_sample(td, idx, tusec, bytes); - } - if (!td->o.disable_clat) { - add_clat_sample(td, idx, lusec, bytes); - io_u_mark_latency(td, lusec); - } - if (!td->o.disable_bw) - add_bw_sample(td, idx, bytes, &icd->time); if (__should_check_rate(td, idx)) { td->rate_pending_usleep[idx] = ((td->this_io_bytes[idx] * @@ -1386,6 +1399,7 @@ static void init_icd(struct thread_data *td, struct io_completion_data *icd, fio_gettime(&icd->time, NULL); icd->nr = nr; + icd->account = 1; icd->error = 0; icd->bytes_done[0] = icd->bytes_done[1] = 0; @@ -1404,6 +1418,8 @@ static void ios_completed(struct thread_data *td, if (!(io_u->flags & IO_U_F_FREE_DEF)) put_io_u(td, io_u); + + icd->account = 0; } } diff --git a/os/windows/install.wxs b/os/windows/install.wxs index 708819d..028c4cc 100755 --- a/os/windows/install.wxs +++ b/os/windows/install.wxs @@ -2,7 +2,7 @@ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <?define VersionMajor = 1?> -<?define VersionMinor = 58?> +<?define VersionMinor = 59?> <?define VersionBuild = 0?> <Product Id="*" diff --git a/os/windows/version.h b/os/windows/version.h index e2c95f5..6c8a228 100644 --- a/os/windows/version.h +++ b/os/windows/version.h @@ -1,4 +1,4 @@ #define FIO_VERSION_MAJOR 1 -#define FIO_VERSION_MINOR 58 +#define FIO_VERSION_MINOR 59 #define FIO_VERSION_BUILD 0 -#define FIO_VERSION_STRING "1.58" +#define FIO_VERSION_STRING "1.59" -- 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