diff options
Diffstat (limited to 'btt/output.c')
-rw-r--r-- | btt/output.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/btt/output.c b/btt/output.c index 8693de7..42adb53 100644 --- a/btt/output.c +++ b/btt/output.c @@ -21,6 +21,8 @@ #include <stdio.h> #include "globals.h" +static int base_y; + typedef struct avg_info *ai_dip_t; ai_dip_t dip_q2q_dm_avg(struct d_info *dip) { return &dip->avgs.q2q_dm; } ai_dip_t dip_q2a_dm_avg(struct d_info *dip) { return &dip->avgs.q2a_dm; } @@ -672,6 +674,34 @@ void output_actQ_info(FILE *ofp) fprintf(ofp, "\n"); } +void __dip_output_p_live(struct d_info *dip, void *arg) +{ + char dev_info[15]; + FILE *ofp = arg; + char *ttl = dip ? make_dev_hdr(dev_info, 15, dip, 1) : "Total Sys"; + struct p_live_info *plip = p_live_get(dip, base_y); + + fprintf(ofp, "%10s | %10lu %13.9lf %13.9lf %6.2lf\n", ttl, + plip->nlives, plip->avg_live, plip->avg_lull, plip->p_live); + if (plip->nlives) + base_y += 1; +} + +void output_p_live(FILE *ofp) +{ + fprintf(ofp, "%10s | %10s %13s %13s %6s\n", "DEV", + "# Live", "Avg. Act", "Avg. !Act", "% Live"); + fprintf(ofp, "---------- | ---------- " + "------------- ------------- ------\n"); + base_y = 1; + dip_foreach_out(__dip_output_p_live, ofp); + fprintf(ofp, "---------- | ---------- " + "------------- ------------- ------\n"); + base_y = 0; + __dip_output_p_live(NULL, ofp); + fprintf(ofp, "\n"); +} + void output_histos(void) { int i; @@ -784,8 +814,12 @@ int output_avgs(FILE *ofp) output_section_hdr(ofp, "Active Requests At Q Information"); output_actQ_info(ofp); + output_section_hdr(ofp, "I/O Active Period Information"); + output_p_live(ofp); + output_histos(); + if (output_all_data) { output_section_hdr(ofp, "Q2D Histogram"); output_q2d_histo(ofp); |