projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove getopt_long_only macro from NetBSD header
[fio.git]
/
iolog.c
diff --git
a/iolog.c
b/iolog.c
index baa4b855d6a709131be83c1c68173c7af317c713..f0ce3b25002d0d01e5a671068f32199af9502017 100644
(file)
--- a/
iolog.c
+++ b/
iolog.c
@@
-346,7
+346,7
@@
static int read_iolog2(struct thread_data *td, FILE *f)
unsigned long long offset;
unsigned int bytes;
int reads, writes, waits, fileno = 0, file_action = 0; /* stupid gcc */
unsigned long long offset;
unsigned int bytes;
int reads, writes, waits, fileno = 0, file_action = 0; /* stupid gcc */
- char *fname, *act;
+ char *
rfname, *
fname, *act;
char *str, *p;
enum fio_ddir rw;
char *str, *p;
enum fio_ddir rw;
@@
-357,7
+357,7
@@
static int read_iolog2(struct thread_data *td, FILE *f)
* for doing verifications.
*/
str = malloc(4096);
* for doing verifications.
*/
str = malloc(4096);
- fname = malloc(256+16);
+
rfname =
fname = malloc(256+16);
act = malloc(256+16);
reads = writes = waits = 0;
act = malloc(256+16);
reads = writes = waits = 0;
@@
-365,8
+365,12
@@
static int read_iolog2(struct thread_data *td, FILE *f)
struct io_piece *ipo;
int r;
struct io_piece *ipo;
int r;
- r = sscanf(p, "%256s %256s %llu %u", fname, act, &offset,
+ r = sscanf(p, "%256s %256s %llu %u",
r
fname, act, &offset,
&bytes);
&bytes);
+
+ if (td->o.replay_redirect)
+ fname = td->o.replay_redirect;
+
if (r == 4) {
/*
* Check action first
if (r == 4) {
/*
* Check action first
@@
-421,6
+425,8
@@
static int read_iolog2(struct thread_data *td, FILE *f)
continue;
writes++;
} else if (rw == DDIR_WAIT) {
continue;
writes++;
} else if (rw == DDIR_WAIT) {
+ if (td->o.no_stall)
+ continue;
waits++;
} else if (rw == DDIR_INVAL) {
} else if (!ddir_sync(rw)) {
waits++;
} else if (rw == DDIR_INVAL) {
} else if (!ddir_sync(rw)) {
@@
-451,7
+457,7
@@
static int read_iolog2(struct thread_data *td, FILE *f)
free(str);
free(act);
free(str);
free(act);
- free(fname);
+ free(
r
fname);
if (writes && read_only) {
log_err("fio: <%s> skips replay of %d writes due to"
if (writes && read_only) {
log_err("fio: <%s> skips replay of %d writes due to"
@@
-714,7
+720,7
@@
static 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;
entry_before = flist_first_entry(&entry->list, struct io_u_plat_entry, list);
io_u_plat = entry->io_u_plat;
entry_before = flist_first_entry(&entry->list, struct io_u_plat_entry, list);
@@
-1065,7
+1071,7
@@
void flush_log(struct io_log *log, bool do_append)
cur_log = flist_first_entry(&log->io_logs, struct io_logs, list);
flist_del_init(&cur_log->list);
cur_log = flist_first_entry(&log->io_logs, struct io_logs, list);
flist_del_init(&cur_log->list);
- if (log == log->td->clat_hist_log)
+ if (log
->td && log
== log->td->clat_hist_log)
flush_hist_samples(f, log->hist_coarseness, cur_log->log,
log_sample_sz(log, cur_log));
else
flush_hist_samples(f, log->hist_coarseness, cur_log->log,
log_sample_sz(log, cur_log));
else
@@
-1153,7
+1159,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;
@@
-1190,7
+1197,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 {
@@
-1201,7
+1208,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);
}