From ec94ec567cae47f91fa31a18250c2a7a0029d2ad Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Fri, 20 Oct 2006 10:59:19 +0200 Subject: [PATCH] [PATCH] Add bw/lat log as job options Currently you need to specify -l or -w, make them available as a job config option as well. Signed-off-by: Jens Axboe --- README | 2 ++ fio.h | 4 ++-- init.c | 23 +++++++++++++++++++---- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/README b/README index 2a245dce..d8cca8af 100644 --- a/README +++ b/README @@ -138,6 +138,8 @@ The job file parameters are: write_iolog=x Write an iolog to file 'x' in the same format as iolog. The iolog options are exclusive, if both given the read iolog will be performed. + write_bw_log Write a bandwidth log. + write_lat_log Write a latency log. lockmem=x Lock down x amount of memory on the machine, to simulate a machine with less memory available. x can include k/m/g suffix. diff --git a/fio.h b/fio.h index 67c2ec21..4af6a743 100644 --- a/fio.h +++ b/fio.h @@ -192,6 +192,8 @@ struct thread_data { unsigned char do_disk_util; unsigned char override_sync; unsigned char rand_repeatable; + unsigned char write_lat_log; + unsigned char write_bw_log; unsigned int bs; unsigned int min_bs; @@ -337,8 +339,6 @@ extern struct io_u *__get_io_u(struct thread_data *); extern void put_io_u(struct thread_data *, struct io_u *); extern int rate_quit; -extern int write_lat_log; -extern int write_bw_log; extern int exitall_on_terminate; extern int thread_number; extern int shm_id; diff --git a/init.c b/init.c index c81dfddf..a0ab7d22 100644 --- a/init.c +++ b/init.c @@ -47,6 +47,8 @@ #define DEF_NICE (0) #define DEF_NR_FILES (1) #define DEF_UNLINK (0) +#define DEF_WRITE_BW_LOG (0) +#define DEF_WRITE_LAT_LOG (0) static int def_timeout = DEF_TIMEOUT; @@ -59,14 +61,15 @@ struct thread_data def_thread; struct thread_data *threads = NULL; int rate_quit = 0; -int write_lat_log = 0; -int write_bw_log = 0; int exitall_on_terminate = 0; int terse_output = 0; unsigned long long mlock_size = 0; FILE *f_out = NULL; FILE *f_err = NULL; +static int write_lat_log = DEF_WRITE_LAT_LOG; +static int write_bw_log = DEF_WRITE_BW_LOG; + /* * Return a free job structure. */ @@ -220,11 +223,11 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) if (setup_rate(td)) goto err; - if (write_lat_log) { + if (td->write_lat_log) { setup_log(&td->slat_log); setup_log(&td->clat_log); } - if (write_bw_log) + if (td->write_bw_log) setup_log(&td->bw_log); if (td->name[0] == '\0') @@ -936,6 +939,16 @@ int parse_jobs_ini(char *file, int stonewall_flag) fgetpos(f, &off); continue; } + if (!check_strset(p, "write_bw_log")) { + td->write_bw_log = 1; + fgetpos(f, &off); + continue; + } + if (!check_strset(p, "write_lat_log")) { + td->write_lat_log = 1; + fgetpos(f, &off); + continue; + } if (!check_strstore(p, "iolog", tmpbuf)) { if (td->write_iolog) { log_err("fio: read iolog overrides given write_iolog\n"); @@ -1041,6 +1054,8 @@ static int fill_def_thread(void) def_thread.rand_repeatable = DEF_RAND_REPEAT; def_thread.nr_files = DEF_NR_FILES; def_thread.unlink = DEF_UNLINK; + def_thread.write_bw_log = write_bw_log; + def_thread.write_lat_log = write_lat_log; #ifdef FIO_HAVE_DISK_UTIL def_thread.do_disk_util = 1; #endif -- 2.25.1