diff --git a/dfanalyzer/main.py b/dfanalyzer/main.py index d595078..909c6fb 100644 --- a/dfanalyzer/main.py +++ b/dfanalyzer/main.py @@ -230,10 +230,22 @@ def io_function(json_object, current_dict, time_approximate,condition_fn): d["hostname"] = json_object["args"]["hostname"] if "POSIX" == json_object["cat"] and "ret" in json_object["args"]: - if "write" in json_object["name"]: + if json_object["name"] == "write": d["size"] = int(json_object["args"]["ret"]) - elif "read" in json_object["name"] and "readdir" not in json_object["name"]: + elif json_object["name"] == "read": d["size"] = int(json_object["args"]["ret"]) + elif json_object["name"] == "fwrite": + d["size"] = 1 + if "ret" in json_object["args"]: + d["size"] *= int(json_object["args"]["ret"]) + if "size" in json_object["args"]: + d["size"] *= int(json_object["args"]["size"]) + elif json_object["name"] == "fread": + d["size"] = 1 + if "ret" in json_object["args"]: + d["size"] *= int(json_object["args"]["ret"]) + if "size" in json_object["args"]: + d["size"] *= int(json_object["args"]["size"]) else: if "image_size" in json_object["args"]: d["size"] = int(json_object["args"]["image_size"]) diff --git a/src/dftracer/brahma/stdio.cpp b/src/dftracer/brahma/stdio.cpp index 164d472..7596664 100644 --- a/src/dftracer/brahma/stdio.cpp +++ b/src/dftracer/brahma/stdio.cpp @@ -47,6 +47,7 @@ size_t brahma::STDIODFTracer::fread(void *ptr, size_t size, size_t nmemb, DFT_LOGGER_UPDATE(size); DFT_LOGGER_UPDATE(nmemb); size_t ret = __real_fread(ptr, size, nmemb, fp); + DFT_LOGGER_UPDATE(ret); DFT_LOGGER_END(); return ret; } @@ -58,6 +59,7 @@ size_t brahma::STDIODFTracer::fwrite(const void *ptr, size_t size, size_t nmemb, DFT_LOGGER_UPDATE(size); DFT_LOGGER_UPDATE(nmemb); size_t ret = __real_fwrite(ptr, size, nmemb, fp); + DFT_LOGGER_UPDATE(ret); DFT_LOGGER_END(); return ret; } @@ -66,6 +68,7 @@ long brahma::STDIODFTracer::ftell(FILE *fp) { BRAHMA_MAP_OR_FAIL(ftell); DFT_LOGGER_START(fp); long ret = __real_ftell(fp); + DFT_LOGGER_UPDATE(ret); DFT_LOGGER_END(); return ret; } @@ -76,6 +79,7 @@ int brahma::STDIODFTracer::fseek(FILE *fp, long offset, int whence) { DFT_LOGGER_UPDATE(offset); DFT_LOGGER_UPDATE(whence); int ret = __real_fseek(fp, offset, whence); + DFT_LOGGER_UPDATE(ret); DFT_LOGGER_END(); return ret; } \ No newline at end of file