projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix fragmented package opcode mismatch
[fio.git]
/
fio.c
diff --git
a/fio.c
b/fio.c
index ece897e5fa3bdab4cec8f411f429ded502418312..856ca753fdd472e7c435c9138422e343ff08edfa 100644
(file)
--- a/
fio.c
+++ b/
fio.c
@@
-62,6
+62,13
@@
int shm_id = 0;
int temp_stall_ts;
unsigned long done_secs = 0;
int temp_stall_ts;
unsigned long done_secs = 0;
+/*
+ * Just expose an empty list, if the OS does not support disk util stats
+ */
+#ifndef FIO_HAVE_DISK_UTIL
+FLIST_HEAD(disk_list);
+#endif
+
static struct fio_mutex *startup_mutex;
static struct fio_mutex *writeout_mutex;
static volatile int fio_abort;
static struct fio_mutex *startup_mutex;
static struct fio_mutex *writeout_mutex;
static volatile int fio_abort;
@@
-165,10
+172,14
@@
void fio_terminate_threads(int group_id)
static void sig_int(int sig)
{
if (threads) {
static void sig_int(int sig)
{
if (threads) {
- log_info("\nfio: terminating on signal %d\n", sig);
- exit_backend = 1;
- fflush(stdout);
- exit_value = 128;
+ if (is_backend)
+ fio_server_got_signal(sig);
+ else {
+ log_info("\nfio: terminating on signal %d\n", sig);
+ fflush(stdout);
+ exit_value = 128;
+ }
+
fio_terminate_threads(TERMINATE_ALL);
}
}
fio_terminate_threads(TERMINATE_ALL);
}
}
@@
-1350,7
+1361,6
@@
err:
if (td->o.write_iolog_file)
write_iolog_close(td);
if (td->o.write_iolog_file)
write_iolog_close(td);
- options_mem_free(td);
td_set_runstate(td, TD_EXITED);
return (void *) (unsigned long) td->error;
}
td_set_runstate(td, TD_EXITED);
return (void *) (unsigned long) td->error;
}
@@
-1762,11
+1772,17
@@
static void run_threads(void)
int exec_run(void)
{
int exec_run(void)
{
+ struct thread_data *td;
+ int i;
+
if (nr_clients)
return fio_handle_clients();
if (nr_clients)
return fio_handle_clients();
- if (exec_profile && load_profile(exec_profile))
- return 1;
-
+ if (exec_profile) {
+ if (load_profile(exec_profile))
+ return 1;
+ free(exec_profile);
+ exec_profile = NULL;
+ }
if (!thread_number)
return 0;
if (!thread_number)
return 0;
@@
-1799,6
+1815,9
@@
int exec_run(void)
}
}
}
}
+ for_each_td(td, i)
+ fio_options_free(td);
+
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);