X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=client.c;h=10dc53be98f75663f92bd0ebc1a3543dbd67c7ea;hp=a77dc9350e0d1d57ffcc2c7f065204b3f9b5b254;hb=b9d2f30a214ebd274340f888739be250838d63c2;hpb=7a8a9b20585dd3fd3fd7f635e45dfc609064fdc8 diff --git a/client.c b/client.c index a77dc935..10dc53be 100644 --- a/client.c +++ b/client.c @@ -40,15 +40,6 @@ struct client_ops fio_client_ops = { static struct timeval eta_tv; -enum { - Client_created = 0, - Client_connected = 1, - Client_started = 2, - Client_running = 3, - Client_stopped = 4, - Client_exited = 5, -}; - static FLIST_HEAD(client_list); static FLIST_HEAD(eta_list); @@ -469,6 +460,33 @@ int fio_clients_connect(void) return !nr_clients; } +int fio_start_client(struct fio_client *client) +{ + dprint(FD_NET, "client: start %s\n", client->hostname); + return fio_net_send_simple_cmd(client->fd, FIO_NET_CMD_RUN, 0, NULL); +} + +int fio_start_all_clients(void) +{ + struct fio_client *client; + struct flist_head *entry, *tmp; + int ret; + + dprint(FD_NET, "client: start all\n"); + + flist_for_each_safe(entry, tmp, &client_list) { + client = flist_entry(entry, struct fio_client, list); + + ret = fio_start_client(client); + if (ret) { + remove_client(client); + continue; + } + } + + return flist_empty(&client_list); +} + /* * Send file contents to server backend. We could use sendfile(), but to remain * more portable lets just read/write the darn thing. @@ -891,8 +909,8 @@ int fio_handle_client(struct fio_client *client) if (!cmd) return 0; - dprint(FD_NET, "client: got cmd op %s from %s\n", - fio_server_op(cmd->opcode), client->hostname); + dprint(FD_NET, "client: got cmd op %s from %s (pdu=%u)\n", + fio_server_op(cmd->opcode), client->hostname, cmd->pdu_len); switch (cmd->opcode) { case FIO_NET_CMD_QUIT: