X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=server.c;h=93c0987febaf486c3d08f92f3797782300b2acff;hb=5c7808fe8533cc960982963586b9d9f09f16358b;hp=a8d4868fa1f30e75d2d4e42a6b2f1eeba9ee0c8d;hpb=9e31134635165bc4c64c18da5d9e8bb44987978d;p=fio.git diff --git a/server.c b/server.c index a8d4868f..93c0987f 100644 --- a/server.c +++ b/server.c @@ -333,7 +333,7 @@ static uint64_t alloc_reply(uint64_t tag, uint16_t opcode) reply = calloc(1, sizeof(*reply)); INIT_FLIST_HEAD(&reply->list); - gettimeofday(&reply->tv, NULL); + fio_gettime(&reply->tv, NULL); reply->saved_tag = tag; reply->opcode = opcode; @@ -1158,6 +1158,10 @@ void fio_server_send_ts(struct thread_stat *ts, struct group_run_stats *rs) 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.nr_block_infos = le64_to_cpu(ts->nr_block_infos); + for (i = 0; i < p.ts.nr_block_infos; i++) + p.ts.block_infos[i] = le32_to_cpu(ts->block_infos[i]); + convert_gs(&p.rs, rs); fio_net_send_cmd(server_fd, FIO_NET_CMD_TS, &p, sizeof(p), NULL, NULL); @@ -1178,14 +1182,14 @@ static void convert_agg(struct disk_util_agg *dst, struct disk_util_agg *src) int i; for (i = 0; i < 2; i++) { - dst->ios[i] = cpu_to_le32(src->ios[i]); - dst->merges[i] = cpu_to_le32(src->merges[i]); + dst->ios[i] = cpu_to_le64(src->ios[i]); + dst->merges[i] = cpu_to_le64(src->merges[i]); dst->sectors[i] = cpu_to_le64(src->sectors[i]); - dst->ticks[i] = cpu_to_le32(src->ticks[i]); + dst->ticks[i] = cpu_to_le64(src->ticks[i]); } - dst->io_ticks = cpu_to_le32(src->io_ticks); - dst->time_in_queue = cpu_to_le32(src->time_in_queue); + dst->io_ticks = cpu_to_le64(src->io_ticks); + dst->time_in_queue = cpu_to_le64(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)); } @@ -1198,14 +1202,14 @@ static void convert_dus(struct disk_util_stat *dst, struct disk_util_stat *src) strncpy((char *) dst->name, (char *) src->name, FIO_DU_NAME_SZ - 1); for (i = 0; i < 2; i++) { - dst->s.ios[i] = cpu_to_le32(src->s.ios[i]); - dst->s.merges[i] = cpu_to_le32(src->s.merges[i]); + dst->s.ios[i] = cpu_to_le64(src->s.ios[i]); + dst->s.merges[i] = cpu_to_le64(src->s.merges[i]); dst->s.sectors[i] = cpu_to_le64(src->s.sectors[i]); - dst->s.ticks[i] = cpu_to_le32(src->s.ticks[i]); + dst->s.ticks[i] = cpu_to_le64(src->s.ticks[i]); } - dst->s.io_ticks = cpu_to_le32(src->s.io_ticks); - dst->s.time_in_queue = cpu_to_le32(src->s.time_in_queue); + dst->s.io_ticks = cpu_to_le64(src->s.io_ticks); + dst->s.time_in_queue = cpu_to_le64(src->s.time_in_queue); dst->s.msec = cpu_to_le64(src->s.msec); } @@ -1391,7 +1395,8 @@ int fio_server_get_verify_state(const char *name, int threadnumber, rep->data = NULL; rep->error = 0; - verify_state_gen_name((char *) out.path, name, me, threadnumber); + verify_state_gen_name((char *) out.path, sizeof(out.path), name, me, + threadnumber); tag = (uint64_t) (uintptr_t) rep; fio_net_send_cmd(server_fd, FIO_NET_CMD_SENDFILE, &out, sizeof(out), &tag, NULL); @@ -1430,6 +1435,7 @@ fail: *datap = data; sfree(rep->data); + __fio_mutex_remove(&rep->lock); sfree(rep); return 0; }