Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sudheer Chunduri
darshan
Commits
615f5396
Commit
615f5396
authored
Apr 02, 2018
by
Philip Carns
Browse files
omit outputting with old-style fopen counters
- these cannot be easily translated into Darshan 3.1.x format - fixes #241
parent
c5443990
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
615f5396
...
...
@@ -2,6 +2,12 @@
Darshan Release Change Log
--------------------------
Darshan-3.1.7
=============
* bug fix for darshan-parser backwards compatibility: Darshan logs generated
by Darshan versions prior to 3.1.0 may have included stdio counters that
were not properly up-converted. Reported by Teng Wang.
Darshan-3.1.6
=============
* bug fix for linker failures caused when linking external libraries
...
...
darshan-util/darshan-posix-logutils.c
View file @
615f5396
...
...
@@ -86,13 +86,26 @@ static int darshan_log_get_posix_file(darshan_fd fd, void** posix_buf_p)
if
(
fd
->
mod_ver
[
DARSHAN_POSIX_MOD
]
==
1
)
{
rec_len
=
DARSHAN_POSIX_FILE_SIZE_1
;
ret
=
darshan_log_get_mod
(
fd
,
DARSHAN_POSIX_MOD
,
scratch
,
rec_len
);
int64_t
*
fopen_counter
;
/* This version of the posix module had some stdio counters
* mixed in with the posix counters. If the fopen counters are
* 0, then we can simply update the record format to skip those
* counters. If the fopen counters are non-zero, then we omit
* the entire record because there is no clean way to properly
* up-convert it.
*/
dest_p
=
scratch
+
(
sizeof
(
struct
darshan_base_record
)
+
(
6
*
sizeof
(
int64_t
)));
fopen_counter
=
(
int64_t
*
)
dest_p
;
do
{
ret
=
darshan_log_get_mod
(
fd
,
DARSHAN_POSIX_MOD
,
scratch
,
rec_len
);
}
while
(
ret
==
rec_len
&&
*
fopen_counter
>
0
);
if
(
ret
!=
rec_len
)
goto
exit
;
/* upconvert version 1 to version 2 in-place */
dest_p
=
scratch
+
(
sizeof
(
struct
darshan_base_record
)
+
(
6
*
sizeof
(
int64_t
)));
src_p
=
dest_p
+
(
4
*
sizeof
(
int64_t
));
len
=
rec_len
-
(
src_p
-
scratch
);
memmove
(
dest_p
,
src_p
,
len
);
...
...
@@ -230,9 +243,9 @@ static void darshan_log_print_posix_description(int ver)
if
(
ver
<=
1
)
{
printf
(
"
\n
# WARNING: POSIX module log format version 1 has the following limitations:
\n
"
);
printf
(
"# -
P
artial instrumentation of stdio stream I/O functions
not parsable by Darshan versions >= 3.1.0
\n
"
);
printf
(
"#
* Using darshan-logutils versions < 3.1.0, this data can be found in the following POSIX counters:
\n
"
);
printf
(
"#
* POSIX_FOPENS, POSIX_FREADS, POSIX_FWRITES, POSIX_FSEEKS
\n
"
);
printf
(
"# -
Darshan version 3.1.0 and earlier had only p
artial instrumentation of stdio stream I/O functions
.
\n
"
);
printf
(
"#
File records with stdio counters present will be omitted from output.
\n
"
);
printf
(
"#
Use darshan-logutils < 3.1.0 to retrieve those records.
\n
"
);
}
if
(
ver
<=
2
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment