The following changes since commit 91c0e7c5de1b4413c5fab8f5746272d1aee10f78:

  Set genesis time when running only network clients (2014-10-12 13:11:35 -0600)

are available in the git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to e5c9093db2c18166bd572f2ab40d5eba16a25b07:

  server/client: don't use __ conversion functions if not needed (2014-10-13 
16:05:10 -0600)

----------------------------------------------------------------
Jens Axboe (8):
      stat: set kb/unit_base, if not already set
      client: always output summed output for all clients
      client: get rid of (now) unused client->nr_stat
      client: partial revert of 9899aff3e345
      smalloc: use log_err() for errors
      backend: use log_info_flush(), not fflush()
      engines: don't use printf or stderr directly
      server/client: don't use __ conversion functions if not needed

 backend.c                 |    4 ++--
 client.c                  |   10 +++-------
 engines/glusterfs_async.c |    5 +++--
 engines/libhdfs.c         |    7 +++----
 server.c                  |   10 +++++-----
 smalloc.c                 |   11 ++++++-----
 stat.c                    |    4 ++++
 7 files changed, 26 insertions(+), 25 deletions(-)

---

Diff of recent changes:

diff --git a/backend.c b/backend.c
index 981625b..3016e98 100644
--- a/backend.c
+++ b/backend.c
@@ -87,7 +87,7 @@ static void sig_int(int sig)
                        fio_server_got_signal(sig);
                else {
                        log_info("\nfio: terminating on signal %d\n", sig);
-                       fflush(stdout);
+                       log_info_flush();
                        exit_value = 128;
                }
 
@@ -1763,7 +1763,7 @@ static void run_threads(void)
                                                nr_process > 1 ? "es" : "");
                }
                log_info("\n");
-               fflush(stdout);
+               log_info_flush();
        }
 
        todo = thread_number;
diff --git a/client.c b/client.c
index 1879e44..6b9fdd8 100644
--- a/client.c
+++ b/client.c
@@ -60,7 +60,6 @@ static int sum_stat_nr;
 static struct json_object *root = NULL;
 static struct json_array *clients_array = NULL;
 static struct json_array *du_array = NULL;
-static int do_output_all_clients;
 
 #define FIO_CLIENT_HASH_BITS   7
 #define FIO_CLIENT_HASH_SZ     (1 << FIO_CLIENT_HASH_BITS)
@@ -150,7 +149,7 @@ void fio_put_client(struct fio_client *client)
                free(client->files);
 
        if (!client->did_stat)
-               sum_stat_clients -= client->nr_stat;
+               sum_stat_clients--;
 
        free(client);
 }
@@ -895,7 +894,7 @@ static void handle_ts(struct fio_client *client, struct 
fio_net_cmd *cmd)
                json_array_add_value_object(clients_array, tsobj);
        }
 
-       if (!do_output_all_clients)
+       if (sum_stat_clients <= 1)
                return;
 
        sum_thread_stats(&client_ts, &p->ts, sum_stat_nr);
@@ -953,7 +952,7 @@ static void convert_agg(struct disk_util_agg *agg)
        agg->io_ticks           = le32_to_cpu(agg->io_ticks);
        agg->time_in_queue      = le32_to_cpu(agg->time_in_queue);
        agg->slavecount         = le32_to_cpu(agg->slavecount);
-       agg->max_util.u.f       = 
fio_uint64_to_double(__le64_to_cpu(agg->max_util.u.i));
+       agg->max_util.u.f       = 
fio_uint64_to_double(le64_to_cpu(agg->max_util.u.i));
 }
 
 static void convert_dus(struct disk_util_stat *dus)
@@ -1157,9 +1156,6 @@ static void handle_start(struct fio_client *client, 
struct fio_net_cmd *cmd)
        client->jobs = le32_to_cpu(pdu->jobs);
        client->nr_stat = le32_to_cpu(pdu->stat_outputs);
 
-       if (sum_stat_clients > 1)
-               do_output_all_clients = 1;
-
        sum_stat_clients += client->nr_stat;
 }
 
diff --git a/engines/glusterfs_async.c b/engines/glusterfs_async.c
index 599bc5d..cf6ea70 100644
--- a/engines/glusterfs_async.c
+++ b/engines/glusterfs_async.c
@@ -67,7 +67,7 @@ static void fio_gf_io_u_free(struct thread_data *td, struct 
io_u *io_u)
                io_u->engine_data = NULL;
                free(io);
        }
-       fprintf(stderr, "issued %lu finished %lu\n", issued, cb_count);
+       log_err("issued %lu finished %lu\n", issued, cb_count);
 }
 
 static int fio_gf_io_u_init(struct thread_data *td, struct io_u *io_u)
@@ -145,8 +145,9 @@ int fio_gf_async_setup(struct thread_data *td)
 {
        int r = 0;
        struct gf_data *g = NULL;
+
 #if defined(NOT_YET)
-       fprintf(stderr, "the async interface is still very experimental...\n");
+       log_err("the async interface is still very experimental...\n");
 #endif
        r = fio_gf_setup(td);
        if (r) {
diff --git a/engines/libhdfs.c b/engines/libhdfs.c
index 773d46b..658cd6a 100644
--- a/engines/libhdfs.c
+++ b/engines/libhdfs.c
@@ -87,7 +87,7 @@ static int fio_hdfsio_prep(struct thread_data *td, struct 
io_u *io_u)
        } else if (io_u->ddir == DDIR_WRITE) {
                open_flags = O_WRONLY;
        } else {
-               printf("Invalid I/O Operation\n");
+               log_err("hdfs: Invalid I/O Operation\n");
        }
 
        hd->curr_file_id = f_id;
@@ -142,7 +142,7 @@ static int fio_hdfsio_queue(struct thread_data *td, struct 
io_u *io_u)
                    hdfsWrite(hd->fs, hd->fp, io_u->xfer_buf,
                              io_u->xfer_buflen);
        } else {
-               printf("Invalid I/O Operation\n");
+               log_err("hdfs: Invalid I/O Operation\n");
        }
 
        return fio_io_end(td, io_u, ret);
@@ -202,8 +202,7 @@ static int fio_hdfsio_setup(struct thread_data *td)
                        hd->fscount = atol(getenv("FIO_HDFS_FCOUNT"));
                        hd->fsbs = atol(getenv("FIO_HDFS_BS"));
                } else {
-                       fprintf(stderr,
-                               "FIO_HDFS_FCOUNT and/or FIO_HDFS_BS not 
set.\n");
+                       log_err("FIO_HDFS_FCOUNT and/or FIO_HDFS_BS not 
set.\n");
                        return 1;
                }
 #endif
diff --git a/server.c b/server.c
index 33c512c..b5bf878 100644
--- a/server.c
+++ b/server.c
@@ -980,8 +980,8 @@ static void convert_io_stat(struct io_stat *dst, struct 
io_stat *src)
        /*
         * Encode to IEEE 754 for network transfer
         */
-       dst->mean.u.i   = __cpu_to_le64(fio_double_to_uint64(src->mean.u.f));
-       dst->S.u.i      = __cpu_to_le64(fio_double_to_uint64(src->S.u.f));
+       dst->mean.u.i   = cpu_to_le64(fio_double_to_uint64(src->mean.u.f));
+       dst->S.u.i      = cpu_to_le64(fio_double_to_uint64(src->S.u.f));
 }
 
 static void convert_gs(struct group_run_stats *dst, struct group_run_stats 
*src)
@@ -1045,7 +1045,7 @@ void fio_server_send_ts(struct thread_stat *ts, struct 
group_run_stats *rs)
                fio_fp64_t *src = &ts->percentile_list[i];
                fio_fp64_t *dst = &p.ts.percentile_list[i];
 
-               dst->u.i = __cpu_to_le64(fio_double_to_uint64(src->u.f));
+               dst->u.i = cpu_to_le64(fio_double_to_uint64(src->u.f));
        }
 
        for (i = 0; i < FIO_IO_U_MAP_NR; i++) {
@@ -1087,7 +1087,7 @@ void fio_server_send_ts(struct thread_stat *ts, struct 
group_run_stats *rs)
        p.ts.latency_depth      = cpu_to_le32(ts->latency_depth);
        p.ts.latency_target     = cpu_to_le64(ts->latency_target);
        p.ts.latency_window     = cpu_to_le64(ts->latency_window);
-       p.ts.latency_percentile.u.i = 
__cpu_to_le64(fio_double_to_uint64(ts->latency_percentile.u.f));
+       p.ts.latency_percentile.u.i = 
cpu_to_le64(fio_double_to_uint64(ts->latency_percentile.u.f));
 
        convert_gs(&p.rs, rs);
 
@@ -1118,7 +1118,7 @@ static void convert_agg(struct disk_util_agg *dst, struct 
disk_util_agg *src)
        dst->io_ticks           = cpu_to_le32(src->io_ticks);
        dst->time_in_queue      = cpu_to_le32(src->time_in_queue);
        dst->slavecount         = cpu_to_le32(src->slavecount);
-       dst->max_util.u.i       = 
__cpu_to_le64(fio_double_to_uint64(src->max_util.u.f));
+       dst->max_util.u.i       = 
cpu_to_le64(fio_double_to_uint64(src->max_util.u.f));
 }
 
 static void convert_dus(struct disk_util_stat *dst, struct disk_util_stat *src)
diff --git a/smalloc.c b/smalloc.c
index d0f732b..5fe0b6f 100644
--- a/smalloc.c
+++ b/smalloc.c
@@ -17,6 +17,7 @@
 #include "arch/arch.h"
 #include "os/os.h"
 #include "smalloc.h"
+#include "log.h"
 
 #define SMALLOC_REDZONE                /* define to detect memory corruption */
 
@@ -221,7 +222,7 @@ static int add_pool(struct pool *pool, unsigned int 
alloc_size)
        nr_pools++;
        return 0;
 out_fail:
-       fprintf(stderr, "smalloc: failed adding pool\n");
+       log_err("smalloc: failed adding pool\n");
        if (pool->map)
                munmap(pool->map, pool->mmap_size);
        return 1;
@@ -283,14 +284,14 @@ static void sfree_check_redzone(struct block_hdr *hdr)
        unsigned int *postred = postred_ptr(hdr);
 
        if (hdr->prered != SMALLOC_PRE_RED) {
-               fprintf(stderr, "smalloc pre redzone destroyed!\n");
-               fprintf(stderr, "  ptr=%p, prered=%x, expected %x\n",
+               log_err("smalloc pre redzone destroyed!\n"
+                       " ptr=%p, prered=%x, expected %x\n",
                                hdr, hdr->prered, SMALLOC_PRE_RED);
                assert(0);
        }
        if (*postred != SMALLOC_POST_RED) {
-               fprintf(stderr, "smalloc post redzone destroyed!\n");
-               fprintf(stderr, "  ptr=%p, postred=%x, expected %x\n",
+               log_err("smalloc post redzone destroyed!\n"
+                       "  ptr=%p, postred=%x, expected %x\n",
                                hdr, *postred, SMALLOC_POST_RED);
                assert(0);
        }
diff --git a/stat.c b/stat.c
index 77e389c..03dc458 100644
--- a/stat.c
+++ b/stat.c
@@ -1077,6 +1077,10 @@ void sum_group_stats(struct group_run_stats *dst, struct 
group_run_stats *src)
                dst->agg[i] += src->agg[i];
        }
 
+       if (!dst->kb_base)
+               dst->kb_base = src->kb_base;
+       if (!dst->unit_base)
+               dst->unit_base = src->unit_base;
 }
 
 void sum_thread_stats(struct thread_stat *dst, struct thread_stat *src, int nr)
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to