projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use correct I/O engine name "cpuio" instead of "cpu"
[fio.git]
/
iolog.h
diff --git
a/iolog.h
b/iolog.h
index 2b7813b91f22095d135d96be444fc12809c97cd6..0438fa7b2993b5b44d170da03fb75ce7dc2d8a5d 100644
(file)
--- a/
iolog.h
+++ b/
iolog.h
@@
-44,8
+44,6
@@
enum {
#define DEF_LOG_ENTRIES 1024
#define MAX_LOG_ENTRIES (1024 * DEF_LOG_ENTRIES)
#define DEF_LOG_ENTRIES 1024
#define MAX_LOG_ENTRIES (1024 * DEF_LOG_ENTRIES)
-#define LOG_QUIESCE_SZ (64 * 1024 * 1024)
-
struct io_logs {
struct flist_head list;
uint64_t nr_samples;
struct io_logs {
struct flist_head list;
uint64_t nr_samples;
@@
-63,6
+61,12
@@
struct io_log {
struct flist_head io_logs;
uint32_t cur_log_max;
struct flist_head io_logs;
uint32_t cur_log_max;
+ /*
+ * When the current log runs out of space, store events here until
+ * we have a chance to regrow
+ */
+ struct io_logs *pending;
+
unsigned int log_ddir_mask;
char *filename;
unsigned int log_ddir_mask;
char *filename;
@@
-139,6
+143,7
@@
static inline struct io_sample *__get_sample(void *samples, int log_offset,
struct io_logs *iolog_cur_log(struct io_log *);
uint64_t iolog_nr_samples(struct io_log *);
struct io_logs *iolog_cur_log(struct io_log *);
uint64_t iolog_nr_samples(struct io_log *);
+void regrow_logs(struct thread_data *);
static inline struct io_sample *get_sample(struct io_log *iolog,
struct io_logs *cur_log,
static inline struct io_sample *get_sample(struct io_log *iolog,
struct io_logs *cur_log,
@@
-225,9
+230,16
@@
static inline bool per_unit_log(struct io_log *log)
return log && !log->avg_msec;
}
return log && !log->avg_msec;
}
+static inline bool inline_log(struct io_log *log)
+{
+ return log->log_type == IO_LOG_TYPE_LAT ||
+ log->log_type == IO_LOG_TYPE_CLAT ||
+ log->log_type == IO_LOG_TYPE_SLAT;
+}
+
extern void finalize_logs(struct thread_data *td, bool);
extern void setup_log(struct io_log **, struct log_params *, const char *);
extern void finalize_logs(struct thread_data *td, bool);
extern void setup_log(struct io_log **, struct log_params *, const char *);
-extern void flush_log(struct io_log *,
int
);
+extern void flush_log(struct io_log *,
bool
);
extern void flush_samples(FILE *, void *, uint64_t);
extern void free_log(struct io_log *);
extern void fio_writeout_logs(bool);
extern void flush_samples(FILE *, void *, uint64_t);
extern void free_log(struct io_log *);
extern void fio_writeout_logs(bool);