projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ensure that fread() string is always NULL terminated
[fio.git]
/
stat.c
diff --git
a/stat.c
b/stat.c
index e43db8f9d075431a0d90c04b8d4fd941c05ffaf5..509c6f02875aee1c648f9e9a432b108a6aa768c8 100644
(file)
--- a/
stat.c
+++ b/
stat.c
@@
-497,7
+497,8
@@
static void show_latencies(struct thread_stat *ts)
show_lat_m(io_u_lat_m);
}
show_lat_m(io_u_lat_m);
}
-void show_thread_status_normal(struct thread_stat *ts, struct group_run_stats *rs)
+static void show_thread_status_normal(struct thread_stat *ts,
+ struct group_run_stats *rs)
{
double usr_cpu, sys_cpu;
unsigned long runtime;
{
double usr_cpu, sys_cpu;
unsigned long runtime;
@@
-769,7
+770,7
@@
static void add_ddir_status_json(struct thread_stat *ts,
}
json_object_add_value_int(dir_object, "bw_min", min);
json_object_add_value_int(dir_object, "bw_max", max);
}
json_object_add_value_int(dir_object, "bw_min", min);
json_object_add_value_int(dir_object, "bw_max", max);
- json_object_add_value_float(dir_object, "bw_agg",
mean
);
+ json_object_add_value_float(dir_object, "bw_agg",
p_of_agg
);
json_object_add_value_float(dir_object, "bw_mean", mean);
json_object_add_value_float(dir_object, "bw_dev", dev);
}
json_object_add_value_float(dir_object, "bw_mean", mean);
json_object_add_value_float(dir_object, "bw_dev", dev);
}
@@
-1012,7
+1013,7
@@
struct json_object *show_thread_status(struct thread_stat *ts,
if (output_format == FIO_OUTPUT_TERSE)
show_thread_status_terse(ts, rs);
else if (output_format == FIO_OUTPUT_JSON)
if (output_format == FIO_OUTPUT_TERSE)
show_thread_status_terse(ts, rs);
else if (output_format == FIO_OUTPUT_JSON)
- return
(show_thread_status_json(ts, rs)
);
+ return
show_thread_status_json(ts, rs
);
else
show_thread_status_normal(ts, rs);
return NULL;
else
show_thread_status_normal(ts, rs);
return NULL;
@@
-1232,12
+1233,12
@@
static void __show_run_stats(void)
/*
* These are per-group shared already
*/
/*
* These are per-group shared already
*/
- strncpy(ts->name, td->o.name, FIO_JOBNAME_SIZE);
+ strncpy(ts->name, td->o.name, FIO_JOBNAME_SIZE
- 1
);
if (td->o.description)
strncpy(ts->description, td->o.description,
if (td->o.description)
strncpy(ts->description, td->o.description,
- FIO_JOB
NAME_SIZE
);
+ FIO_JOB
DESC_SIZE - 1
);
else
else
- memset(ts->description, 0, FIO_JOB
NAME
_SIZE);
+ memset(ts->description, 0, FIO_JOB
DESC
_SIZE);
/*
* If multiple entries in this group, this is
/*
* If multiple entries in this group, this is
@@
-1479,8
+1480,9
@@
void show_running_run_stats(void)
static int status_interval_init;
static struct timeval status_time;
static int status_interval_init;
static struct timeval status_time;
+static int status_file_disabled;
-#define FIO_STATUS_FILE "
/tmp/
fio-dump-status"
+#define FIO_STATUS_FILE "fio-dump-status"
static int check_status_file(void)
{
static int check_status_file(void)
{
@@
-1488,6
+1490,9
@@
static int check_status_file(void)
const char *temp_dir;
char fio_status_file_path[PATH_MAX];
const char *temp_dir;
char fio_status_file_path[PATH_MAX];
+ if (status_file_disabled)
+ return 0;
+
temp_dir = getenv("TMPDIR");
if (temp_dir == NULL)
temp_dir = getenv("TEMP");
temp_dir = getenv("TMPDIR");
if (temp_dir == NULL)
temp_dir = getenv("TEMP");
@@
-1499,7
+1504,13
@@
static int check_status_file(void)
if (stat(fio_status_file_path, &sb))
return 0;
if (stat(fio_status_file_path, &sb))
return 0;
- unlink(fio_status_file_path);
+ if (unlink(fio_status_file_path) < 0) {
+ log_err("fio: failed to unlink %s: %s\n", fio_status_file_path,
+ strerror(errno));
+ log_err("fio: disabling status file updates\n");
+ status_file_disabled = 1;
+ }
+
return 1;
}
return 1;
}