X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=stat.c;h=e858d59d34cc1fc5a3c26575481d39f92646d652;hb=ad92396cc21055cee93470dcf65e82ccde03aac5;hp=38f94be0138e7a063bb9e31155bc8e78e8f83d28;hpb=4b43f54ed7dece502350658bee10eba551aeb4a4;p=fio.git diff --git a/stat.c b/stat.c index 38f94be0..e858d59d 100644 --- a/stat.c +++ b/stat.c @@ -61,6 +61,8 @@ void update_rusage_stat(struct thread_data *td) ts->usr_time += mtime_since(&ts->ru_start.ru_utime, &ts->ru_end.ru_utime); ts->sys_time += mtime_since(&ts->ru_start.ru_stime, &ts->ru_end.ru_stime); ts->ctx += ts->ru_end.ru_nvcsw + ts->ru_end.ru_nivcsw - (ts->ru_start.ru_nvcsw + ts->ru_start.ru_nivcsw); + ts->minf += ts->ru_end.ru_minflt - ts->ru_start.ru_minflt; + ts->majf += ts->ru_end.ru_majflt - ts->ru_start.ru_majflt; memcpy(&ts->ru_start, &ts->ru_end, sizeof(ts->ru_end)); } @@ -197,19 +199,33 @@ static void show_ddir_status(struct group_run_stats *rs, struct thread_stat *ts, if (calc_lat(&ts->slat_stat[ddir], &min, &max, &mean, &dev)) { const char *base = "(usec)"; + char *minp, *maxp; if (!usec_to_msec(&min, &max, &mean, &dev)) base = "(msec)"; - log_info(" slat %s: min=%5lu, max=%5lu, avg=%5.02f, stdev=%5.02f\n", base, min, max, mean, dev); + minp = num2str(min, 6, 1, 0); + maxp = num2str(max, 6, 1, 0); + + log_info(" slat %s: min=%s, max=%s, avg=%5.02f, stdev=%5.02f\n", base, minp, maxp, mean, dev); + + free(minp); + free(maxp); } if (calc_lat(&ts->clat_stat[ddir], &min, &max, &mean, &dev)) { const char *base = "(usec)"; + char *minp, *maxp; if (!usec_to_msec(&min, &max, &mean, &dev)) base = "(msec)"; - log_info(" clat %s: min=%5lu, max=%5lu, avg=%5.02f, stdev=%5.02f\n", base, min, max, mean, dev); + minp = num2str(min, 6, 1, 0); + maxp = num2str(max, 6, 1, 0); + + log_info(" clat %s: min=%s, max=%s, avg=%5.02f, stdev=%5.02f\n", base, minp, maxp, mean, dev); + + free(minp); + free(maxp); } if (calc_lat(&ts->bw_stat[ddir], &min, &max, &mean, &dev)) { double p_of_agg; @@ -228,6 +244,8 @@ static void show_lat(double *io_u_lat, int nr, const char **ranges, if (io_u_lat[i] <= 0.0) continue; if (new_line) { + if (line) + log_info("\n"); log_info(" lat (%s): ", msg); new_line = 0; line = 0; @@ -239,7 +257,6 @@ static void show_lat(double *io_u_lat, int nr, const char **ranges, if (line == 5) new_line = 1; } - } static void show_lat_u(double *io_u_lat_u) @@ -262,6 +279,7 @@ static void show_lat_m(double *io_u_lat_m) static void show_latencies(double *io_u_lat_u, double *io_u_lat_m) { show_lat_u(io_u_lat_u); + log_info("\n"); show_lat_m(io_u_lat_m); log_info("\n"); } @@ -302,7 +320,7 @@ static void show_thread_status(struct thread_stat *ts, sys_cpu = 0; } - log_info(" cpu : usr=%3.2f%%, sys=%3.2f%%, ctx=%lu\n", usr_cpu, sys_cpu, ts->ctx); + log_info(" cpu : usr=%3.2f%%, sys=%3.2f%%, ctx=%lu, majf=%lu, minf=%lu\n", usr_cpu, sys_cpu, ts->ctx, ts->majf, ts->minf); stat_calc_dist(ts, io_u_dist); stat_calc_lat_u(ts, io_u_lat_u); @@ -371,7 +389,7 @@ static void show_thread_status_terse(struct thread_stat *ts, sys_cpu = 0; } - log_info(";%f%%;%f%%;%lu", usr_cpu, sys_cpu, ts->ctx); + log_info(";%f%%;%f%%;%lu;%lu;%lu", usr_cpu, sys_cpu, ts->ctx, ts->majf, ts->minf); stat_calc_dist(ts, io_u_dist); stat_calc_lat_u(ts, io_u_lat_u); @@ -515,6 +533,8 @@ void show_run_stats(void) ts->usr_time += td->ts.usr_time; ts->sys_time += td->ts.sys_time; ts->ctx += td->ts.ctx; + ts->majf += td->ts.majf; + ts->minf += td->ts.minf; for (k = 0; k < FIO_IO_U_MAP_NR; k++) ts->io_u_map[k] += td->ts.io_u_map[k];