blktrace: add support for non-native endian format
The blktrace format is stored in the native endianness of
the machine it is run on. So to reply traces on a machine
with a different endianness, we need to swap the trace
fields. Detect and do this automatically.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/iolog.c b/iolog.c
index 9bcf0d8..dadbf0f 100644
--- a/iolog.c
+++ b/iolog.c
@@ -480,12 +480,14 @@
int ret = 0;
if (td->o.read_iolog_file) {
+ int need_swap;
+
/*
* Check if it's a blktrace file and load that if possible.
* Otherwise assume it's a normal log file and load that.
*/
- if (is_blktrace(td->o.read_iolog_file))
- ret = load_blktrace(td, td->o.read_iolog_file);
+ if (is_blktrace(td->o.read_iolog_file, &need_swap))
+ ret = load_blktrace(td, td->o.read_iolog_file, need_swap);
else
ret = init_iolog_read(td);
} else if (td->o.write_iolog_file)