projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't include engines we don't have
[fio.git]
/
log.c
diff --git
a/log.c
b/log.c
index a4f4c7801d0fa92671bd4b67ee8798b7f0f88924..6de98ac2900a9bdb0a92dc571d77e188fa140b10 100644
(file)
--- a/
log.c
+++ b/
log.c
@@
-5,7
+5,7
@@
void write_iolog_put(struct thread_data *td, struct io_u *io_u)
{
void write_iolog_put(struct thread_data *td, struct io_u *io_u)
{
- fprintf(td->iolog_f, "%u,%llu,%u\n", io_u->ddir, io_u->offset, io_u->buflen);
+ fprintf(td->iolog_f, "%u,%llu,%
l
u\n", io_u->ddir, io_u->offset, io_u->buflen);
}
int read_iolog_get(struct thread_data *td, struct io_u *io_u)
}
int read_iolog_get(struct thread_data *td, struct io_u *io_u)
@@
-56,7
+56,7
@@
void log_io_piece(struct thread_data *td, struct io_u *io_u)
* be laid out with the block scattered as written. it's faster to
* read them in in that order again, so don't sort
*/
* be laid out with the block scattered as written. it's faster to
* read them in in that order again, so don't sort
*/
- if (
td->sequential
|| !td->overwrite) {
+ if (
!td_random(td)
|| !td->overwrite) {
list_add_tail(&ipo->list, &td->io_hist_list);
return;
}
list_add_tail(&ipo->list, &td->io_hist_list);
return;
}
@@
-137,11
+137,11
@@
static int init_iolog_read(struct thread_data *td)
if (!reads && !writes)
return 1;
else if (reads && !writes)
if (!reads && !writes)
return 1;
else if (reads && !writes)
- td->
ddir =
DDIR_READ;
+ td->
td_ddir = TD_
DDIR_READ;
else if (!reads && writes)
else if (!reads && writes)
- td->
ddir =
DDIR_READ;
+ td->
td_ddir = TD_
DDIR_READ;
else
else
- td->
iomix = 1
;
+ td->
td_ddir = TD_DDIR_RW
;
return 0;
}
return 0;
}
@@
-187,6
+187,7
@@
int setup_rate(struct thread_data *td)
{
unsigned long long rate;
int nr_reads_per_msec;
{
unsigned long long rate;
int nr_reads_per_msec;
+ unsigned int bs;
if (!td->rate)
return 0;
if (!td->rate)
return 0;
@@
-196,8
+197,15
@@
int setup_rate(struct thread_data *td)
return -1;
}
return -1;
}
+ if (td_rw(td))
+ bs = td->rw_min_bs;
+ else if (td_read(td))
+ bs = td->min_bs[DDIR_READ];
+ else
+ bs = td->min_bs[DDIR_WRITE];
+
rate = td->rate;
rate = td->rate;
- nr_reads_per_msec = (rate * 1024 * 1000) /
td->min_bs[DDIR_READ]
;
+ nr_reads_per_msec = (rate * 1024 * 1000) /
bs
;
if (!nr_reads_per_msec) {
log_err("rate lower than supported\n");
return -1;
if (!nr_reads_per_msec) {
log_err("rate lower than supported\n");
return -1;
@@
-218,14
+226,12
@@
void setup_log(struct io_log **log)
*log = l;
}
*log = l;
}
-void
finish_log(struct thread_data *td,
struct io_log *log, const char *name)
+void
__finish_log(
struct io_log *log, const char *name)
{
{
- char file_name[256];
- FILE *f;
unsigned int i;
unsigned int i;
+ FILE *f;
- snprintf(file_name, 200, "client%d_%s.log", td->thread_number, name);
- f = fopen(file_name, "w");
+ f = fopen(name, "w");
if (!f) {
perror("fopen log");
return;
if (!f) {
perror("fopen log");
return;
@@
-238,3
+244,11
@@
void finish_log(struct thread_data *td, struct io_log *log, const char *name)
free(log->log);
free(log);
}
free(log->log);
free(log);
}
+
+void finish_log(struct thread_data *td, struct io_log *log, const char *name)
+{
+ char file_name[256];
+
+ snprintf(file_name, 200, "client%d_%s.log", td->thread_number, name);
+ __finish_log(log, file_name);
+}