projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
stat: fix --bandwidth-log segfault
[fio.git]
/
stat.c
diff --git
a/stat.c
b/stat.c
index 1effbfe9c5b452c625574a3cce02bd87ccdb074a..d5240d96a25b7f2f8f8ffc69abefe2f47b12d322 100644
(file)
--- a/
stat.c
+++ b/
stat.c
@@
-1398,7
+1398,7
@@
static struct json_object *show_thread_status_json(struct thread_stat *ts,
if (ts->ss_dur) {
struct json_object *data;
struct json_array *iops, *bw;
if (ts->ss_dur) {
struct json_object *data;
struct json_array *iops, *bw;
- int
i, j, k
;
+ int
j, k, l
;
char ss_buf[64];
snprintf(ss_buf, sizeof(ss_buf), "%s%s:%f%s",
char ss_buf[64];
snprintf(ss_buf, sizeof(ss_buf), "%s%s:%f%s",
@@
-1434,8
+1434,8
@@
static struct json_object *show_thread_status_json(struct thread_stat *ts,
j = ts->ss_head;
else
j = ts->ss_head == 0 ? ts->ss_dur - 1 : ts->ss_head - 1;
j = ts->ss_head;
else
j = ts->ss_head == 0 ? ts->ss_dur - 1 : ts->ss_head - 1;
- for (
i = 0; i < ts->ss_dur; i
++) {
- k = (j +
i
) % ts->ss_dur;
+ for (
l = 0; l < ts->ss_dur; l
++) {
+ k = (j +
l
) % ts->ss_dur;
json_array_add_value_int(bw, ts->ss_bw_data[k]);
json_array_add_value_int(iops, ts->ss_iops_data[k]);
}
json_array_add_value_int(bw, ts->ss_bw_data[k]);
json_array_add_value_int(iops, ts->ss_iops_data[k]);
}
@@
-1934,6
+1934,8
@@
void __show_run_stats(void)
buf_output_free(out);
}
buf_output_free(out);
}
+ fio_idle_prof_cleanup();
+
log_info_flush();
free(runstats);
free(threadstats);
log_info_flush();
free(runstats);
free(threadstats);
@@
-2205,12
+2207,14
@@
static struct io_logs *get_cur_log(struct io_log *iolog)
* submissions, flag 'td' as needing a log regrow and we'll take
* care of it on the submission side.
*/
* submissions, flag 'td' as needing a log regrow and we'll take
* care of it on the submission side.
*/
- if (
iolog->td->o.io_submit_mode == IO_MODE_OFFLOAD
||
+ if (
(iolog->td && iolog->td->o.io_submit_mode == IO_MODE_OFFLOAD)
||
!per_unit_log(iolog))
return regrow_log(iolog);
!per_unit_log(iolog))
return regrow_log(iolog);
- iolog->td->flags |= TD_F_REGROW_LOGS;
- assert(iolog->pending->nr_samples < iolog->pending->max_samples);
+ if (iolog->td)
+ iolog->td->flags |= TD_F_REGROW_LOGS;
+ if (iolog->pending)
+ assert(iolog->pending->nr_samples < iolog->pending->max_samples);
return iolog->pending;
}
return iolog->pending;
}