From: Jens Axboe Date: Mon, 12 Mar 2007 14:09:24 +0000 (+0100) Subject: Improve job grouping X-Git-Tag: fio-1.14~32 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3c5df6fa2259c12fd6a7beb9a3521dec76d12dd2;p=fio.git Improve job grouping Group jobs as follows: - Jobs before or after a stonewall have different groupids - Jobs grouped with numjobs have a private groupid Signed-off-by: Jens Axboe --- diff --git a/init.c b/init.c index bbd06758..a2ff7bc5 100644 --- a/init.c +++ b/init.c @@ -623,6 +623,8 @@ FILE *f_err = NULL; static int write_lat_log = 0; int write_bw_log = 0; +static int prev_group_jobs; + FILE *get_f_out() { return f_out; @@ -896,10 +898,13 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX; td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX; - if (td->stonewall && td->thread_number > 1) + if ((td->stonewall || td->numjobs > 1) && prev_group_jobs) { + prev_group_jobs = 0; groupid++; + } td->groupid = groupid; + prev_group_jobs++; if (setup_rate(td)) goto err; @@ -955,6 +960,12 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) if (add_job(td_new, jobname, job_add_num)) goto err; } + + if (td->numjobs > 1) { + groupid++; + prev_group_jobs = 0; + } + return 0; err: put_job(td);