projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Windows: fix Time_tToSystemTime function to be 64-bit compliant
[fio.git]
/
iolog.c
diff --git
a/iolog.c
b/iolog.c
index ee1999a0da72124cbc0bb40e4125a9d54c3feb79..6576ca55237e58668bb892d1f4b1ec227eaef515 100644
(file)
--- a/
iolog.c
+++ b/
iolog.c
@@
-596,7
+596,7
@@
void setup_log(struct io_log **log, struct log_params *p,
* with initial io_u_plat of all zeros:
*/
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
* with initial io_u_plat of all zeros:
*/
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
- list = &l->hist_window[i].list
.list
;
+ list = &l->hist_window[i].list;
INIT_FLIST_HEAD(list);
entry = calloc(1, sizeof(struct io_u_plat_entry));
flist_add(&entry->list, list);
INIT_FLIST_HEAD(list);
entry = calloc(1, sizeof(struct io_u_plat_entry));
flist_add(&entry->list, list);
@@
-674,20
+674,25
@@
void free_log(struct io_log *log)
sfree(log);
}
sfree(log);
}
-
static
inline unsigned long hist_sum(int j, int stride, unsigned int *io_u_plat,
+inline unsigned long hist_sum(int j, int stride, unsigned int *io_u_plat,
unsigned int *io_u_plat_last)
{
unsigned long sum;
int k;
unsigned int *io_u_plat_last)
{
unsigned long sum;
int k;
- for (k = sum = 0; k < stride; k++)
- sum += io_u_plat[j + k] - io_u_plat_last[j + k];
+ if (io_u_plat_last) {
+ for (k = sum = 0; k < stride; k++)
+ sum += io_u_plat[j + k] - io_u_plat_last[j + k];
+ } else {
+ for (k = sum = 0; k < stride; k++)
+ sum += io_u_plat[j + k];
+ }
return sum;
}
return sum;
}
-void flush_hist_samples(FILE *f, int hist_coarseness, void *samples,
- uint64_t sample_size)
+
static
void flush_hist_samples(FILE *f, int hist_coarseness, void *samples,
+
uint64_t sample_size)
{
struct io_sample *s;
int log_offset;
{
struct io_sample *s;
int log_offset;
@@
-708,22
+713,23
@@
void flush_hist_samples(FILE *f, int hist_coarseness, void *samples,
for (i = 0; i < nr_samples; i++) {
s = __get_sample(samples, log_offset, i);
for (i = 0; i < nr_samples; i++) {
s = __get_sample(samples, log_offset, i);
-
- entry = (struct io_u_plat_entry *) s->val;
+
+ entry = (struct io_u_plat_entry *)
(uintptr_t)
s->val;
io_u_plat = entry->io_u_plat;
io_u_plat = entry->io_u_plat;
-
+
entry_before = flist_first_entry(&entry->list, struct io_u_plat_entry, list);
io_u_plat_before = entry_before->io_u_plat;
entry_before = flist_first_entry(&entry->list, struct io_u_plat_entry, list);
io_u_plat_before = entry_before->io_u_plat;
-
- fprintf(f, "%lu, %u, %u, ", (unsigned long)s->time,
- io_sample_ddir(s), s->bs);
+
+ fprintf(f, "%lu, %u, %u, ", (unsigned long)
s->time,
+
io_sample_ddir(s), s->bs);
for (j = 0; j < FIO_IO_U_PLAT_NR - stride; j += stride) {
for (j = 0; j < FIO_IO_U_PLAT_NR - stride; j += stride) {
- fprintf(f, "%lu, ", hist_sum(j, stride, io_u_plat, io_u_plat_before));
+ fprintf(f, "%lu, ", hist_sum(j, stride, io_u_plat,
+ io_u_plat_before));
}
}
- fprintf(f, "%lu\n", (unsigned long)
+ fprintf(f, "%lu\n", (unsigned long)
hist_sum(FIO_IO_U_PLAT_NR - stride, stride, io_u_plat,
hist_sum(FIO_IO_U_PLAT_NR - stride, stride, io_u_plat,
- io_u_plat_before));
-
+
io_u_plat_before));
+
flist_del(&entry_before->list);
free(entry_before);
}
flist_del(&entry_before->list);
free(entry_before);
}
@@
-1061,9
+1067,9
@@
void flush_log(struct io_log *log, bool do_append)
if (log == log->td->clat_hist_log)
flush_hist_samples(f, log->hist_coarseness, cur_log->log,
if (log == log->td->clat_hist_log)
flush_hist_samples(f, log->hist_coarseness, cur_log->log,
-
cur_log->nr_samples * log_entry_sz(
log));
+
log_sample_sz(log, cur_
log));
else
else
- flush_samples(f, cur_log->log,
cur_log->nr_samples * log_entry_sz(
log));
+ flush_samples(f, cur_log->log,
log_sample_sz(log, cur_
log));
sfree(cur_log);
}
sfree(cur_log);
}
@@
-1147,7
+1153,8
@@
static int gz_work(struct iolog_flush_data *data)
data->log->filename);
do {
if (c)
data->log->filename);
do {
if (c)
- dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq, c->len);
+ dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq,
+ (unsigned long) c->len);
c = get_new_chunk(seq);
stream.avail_out = GZ_CHUNK;
stream.next_out = c->buf;
c = get_new_chunk(seq);
stream.avail_out = GZ_CHUNK;
stream.next_out = c->buf;
@@
-1184,7
+1191,7
@@
static int gz_work(struct iolog_flush_data *data)
total -= c->len;
c->len = GZ_CHUNK - stream.avail_out;
total += c->len;
total -= c->len;
c->len = GZ_CHUNK - stream.avail_out;
total += c->len;
- dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq, c->len);
+ dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq,
(unsigned long)
c->len);
if (ret != Z_STREAM_END) {
do {
if (ret != Z_STREAM_END) {
do {
@@
-1195,7
+1202,8
@@
static int gz_work(struct iolog_flush_data *data)
c->len = GZ_CHUNK - stream.avail_out;
total += c->len;
flist_add_tail(&c->list, &list);
c->len = GZ_CHUNK - stream.avail_out;
total += c->len;
flist_add_tail(&c->list, &list);
- dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq, c->len);
+ dprint(FD_COMPRESS, "seq=%d, chunk=%lu\n", seq,
+ (unsigned long) c->len);
} while (ret != Z_STREAM_END);
}
} while (ret != Z_STREAM_END);
}