X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=f19db1be6f024b0a0420f8a298eca863851a01e4;hp=7e6b06d3793ffe6a0db4a186a263c1b144afb579;hb=01fe773df4bc4a35450ce3ef50c8075b3bf55cd0;hpb=9db01ef976006c002b05fa4e4ec589eb029aac5b diff --git a/fio.c b/fio.c index 7e6b06d3..f19db1be 100644 --- a/fio.c +++ b/fio.c @@ -18,18 +18,17 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ -#include -#include -#include - #include "fio.h" -#include "smalloc.h" int main(int argc, char *argv[], char *envp[]) { + int ret = 1; + + compiletime_assert(TD_NR <= TD_ENG_FLAG_SHIFT, "TD_ENG_FLAG_SHIFT"); + if (initialize_fio(envp)) return 1; @@ -37,15 +36,32 @@ int main(int argc, char *argv[], char *envp[]) #error "No available clock source!" #endif + if (fio_server_create_sk_key()) + goto done; + if (parse_options(argc, argv)) - return 1; + goto done_key; + + /* + * line buffer stdout to avoid output lines from multiple + * threads getting mixed + */ + setvbuf(stdout, NULL, _IOLBF, 0); fio_time_init(); if (nr_clients) { + set_genesis_time(); + if (fio_start_all_clients()) - return 1; - return fio_handle_clients(&fio_client_ops); + goto done_key; + ret = fio_handle_clients(&fio_client_ops); } else - return fio_backend(); + ret = fio_backend(NULL); + +done_key: + fio_server_destroy_sk_key(); +done: + deinitialize_fio(); + return ret; }