summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5FDvfd_swmr_private.h1
-rw-r--r--src/H5Fpkg.h2
-rw-r--r--src/H5Fvfd_swmr.c13
-rw-r--r--test/vfd_swmr_gperf_writer.c178
4 files changed, 96 insertions, 98 deletions
diff --git a/src/H5FDvfd_swmr_private.h b/src/H5FDvfd_swmr_private.h
index 985bd70..12fd2e2 100644
--- a/src/H5FDvfd_swmr_private.h
+++ b/src/H5FDvfd_swmr_private.h
@@ -84,5 +84,4 @@ H5_DLL herr_t H5F_vfd_swmr_insert_entry_eot(struct H5F_t *f);
H5_DLL void H5F_vfd_swmr_update_entry_eot(eot_queue_entry_t *);
H5_DLL herr_t H5F_dump_eot_queue(void);
-
#endif /* H5FDvfd_swmr_private_H */
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h
index 3bece42..6dd896e 100644
--- a/src/H5Fpkg.h
+++ b/src/H5Fpkg.h
@@ -649,7 +649,7 @@ H5_DLL void H5F_post_vfd_swmr_log_entry(H5F_t *f, int entry_type_code, char *log
} \
} while (0)
-#define H5F_POST_VFD_SWMR_LOG_ENTRY_PRODUCTION(fp, entry_type_code, max_code, log_info) \
+#define H5F_POST_VFD_SWMR_LOG_ENTRY_PRODUCTION(fp, entry_type_code, max_code, log_info) \
do { \
if (entry_type_code < max_code) { \
H5F_POST_VFD_SWMR_LOG_ENTRY_INTERNAL(fp, entry_type_code, log_info); \
diff --git a/src/H5Fvfd_swmr.c b/src/H5Fvfd_swmr.c
index 9404cf4..b3c3ffe 100644
--- a/src/H5Fvfd_swmr.c
+++ b/src/H5Fvfd_swmr.c
@@ -54,7 +54,6 @@
#define nanosecs_per_second 1000000000 /* nanoseconds per second */
#define nanosecs_per_tenth_sec 100000000 /* nanoseconds per 0.1 second */
-
/* Declare an array of string to identify the VFD SMWR Log tags.
* Note this array is used to generate the entry tag by the log reporting macro
* H5F_POST_VFD_SWMR_LOG_ENTRY.
@@ -87,8 +86,8 @@ static const char *H5Fvfd_swmr_log_tags[] = {
*/
const char *log_fmt_str = "%-26s: %.3lf s: %s\n";
-/* The length of the EOT processing time log message, subject to change */
-const unsigned int eot_pt_log_mesg_length = 48;
+/* The length of the EOT processing time log message, subject to change */
+const unsigned int eot_pt_log_mesg_length = 48;
/* The length of error message in the log */
const unsigned int log_err_mesg_length = 14;
@@ -358,7 +357,7 @@ H5F_vfd_swmr_close_or_flush(H5F_t *f, hbool_t closing)
HDONE_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "unable to update end of tick");
}
#if 1 /*Kent Save the end of close info. to the log file, subject to comment out. */
- if(closing)
+ if (closing)
H5F_POST_VFD_SWMR_LOG_ENTRY(f, 2, "VFD SWMR File close ends");
#endif
done:
@@ -956,8 +955,8 @@ done:
if (H5_timer_get_times(shared->vfd_swmr_log_start_time, &current_time) < 0)
HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get time from H5_timer_get_times")
end_elapsed_time = current_time.elapsed;
- if(NULL != (log_msg = HDmalloc(eot_pt_log_mesg_length*sizeof(char)))) {
- temp_time = (unsigned int)((end_elapsed_time - start_elapsed_time) * 1000);
+ if (NULL != (log_msg = HDmalloc(eot_pt_log_mesg_length * sizeof(char)))) {
+ temp_time = (unsigned int)((end_elapsed_time - start_elapsed_time) * 1000);
HDsprintf(log_msg, "Writer time is %u milliseconds", temp_time);
H5F_POST_VFD_SWMR_LOG_ENTRY(f, 0, log_msg);
HDfree(log_msg);
@@ -1997,7 +1996,7 @@ H5F_post_vfd_swmr_log_entry(H5F_t *f, int entry_type_code, char *log_info)
else obtain the elapsed time in seconds since the log file
was created and write the time to the log file. */
if (H5_timer_get_times(f->shared->vfd_swmr_log_start_time, &current_time) < 0) {
- if(NULL != (gettime_error = HDmalloc(log_err_mesg_length*sizeof(char)))) {
+ if (NULL != (gettime_error = HDmalloc(log_err_mesg_length * sizeof(char)))) {
HDsprintf(gettime_error, "gettime_error");
HDfprintf(f->shared->vfd_swmr_log_file_ptr, "%-26s: %s\n", H5Fvfd_swmr_log_tags[entry_type_code],
gettime_error);
diff --git a/test/vfd_swmr_gperf_writer.c b/test/vfd_swmr_gperf_writer.c
index ad2b373..3342b40 100644
--- a/test/vfd_swmr_gperf_writer.c
+++ b/test/vfd_swmr_gperf_writer.c
@@ -35,10 +35,10 @@
* The program is run with max_lag = 8, tick_len = 4;
* The page buffer size is 16384 bytes. The page size is 8192 bytes.
*
- * II. How to generate log message
+ * II. How to generate log message
*
- * ./vfd_swmr_gperf_writer -n 100000 -P -L -q
- * will generate 100000 groups, each group has one attribute. It also writes the log message
+ * ./vfd_swmr_gperf_writer -n 100000 -P -L -q
+ * will generate 100000 groups, each group has one attribute. It also writes the log message
* to file "log-test" under the same directory.
* To turn on the log feature, one just needs to provide the log file path as
* indicated by the line init_vfd_swmr_log(&config, "./log-test") in the main
@@ -112,90 +112,91 @@ typedef struct {
static void
usage(const char *progname)
{
- fprintf(stderr,
- "usage: ./%s -P -n 1000 -N 5 -q (create 1000 groups, each group has 5 attributes)\n"
- "usage: ./%s -P -L -n 100000 -q (create 100000 groups and generate log message to file 'log-test')\n"
- "Options: \n"
- " [-P] [-S] [-G] [-L] [-t tick_len] [-m max_lag][-B pbs] [-s ps]\n"
- " [-n ngroups] [-l ng_levels] [-O grp_op_pattern]\n"
- " [-N num_attrs] [-V] [-b] [-A at_pattern] [-a steps] [-q]\n"
- "\n"
- "-P: carry out the performance test\n"
- "-S: do not use VFD SWMR\n"
- "-G: old-style type of group\n"
- "-L: Turn on the logging feature.\n"
- "-t tick_len: length of a tick in tenths of a second.\n"
- "-m max_lag: maximum expected lag(in ticks) between writer and readers\n"
- "-B pbs: page Buffer Size in bytes:\n"
- " The default value is 4K(4096).\n"
- "-s ps: page size used by page aggregation, page buffer and \n"
- " the metadata file. \n"
- "-n ngroups: the number of groups\n"
- "-l ng_levels: the number of level of nested groups. \n"
- " If all the groups are under the root group, \n"
- " this number should be 0.\n"
- "-N num_attrs: the number of attributes \n"
- "-V use variable length string attributes for performance test\n"
- "-b: write data in big-endian byte order\n"
- " (For the performance test, -V overwrites -b)\n"
- "-A at_pattern: `at_pattern' for different attribute tests\n"
- " The value of `at_pattern` is one of the following:\n"
- " `compact` - Attributes added in compact storage\n"
- " `dense` - An attribute added in dense storage\n"
- " `compact-del` - Attributes added and then one\n"
- " attribute deleted, in compact \n"
- " `dense-del` - Attributes added until the storage\n"
- " is dense then an attribute deleted\n"
- " the storge still in dense\n"
- " `compact-add-to-dense` - Attributes added first in compact\n"
- " then in dense storage\n"
- " `dense-del-to-compact` - Attributes added until the storage\n"
- " is dense, then several attributes \n"
- " deleted, the storage changed to\n"
- " compact\n"
- " `modify` - An attribute added then modified\n"
- " `add-vstr` - A VL string attribute added\n"
- " `remove-vstr` - A VL string attribute added then\n"
- " deleted\n"
- " `modify-vstr` - A VL string attribute added then \n"
- " modified \n"
- " `add-ohr-block` - An attribute is added and this forces\n"
- " the creation of object header\n"
- " continuation block \n"
- " `del-ohr-block` - An attribute is added and this forces\n"
- " the creation of object header\n"
- " continuation block and then this \n"
- " attribute is deleted so the \n"
- " object header continuation block is \n"
- " removed. \n"
- "-O grp_op_pattern: `grp_op_pattern' for different group operation tests\n"
- " The value of `grp_op_pattern` is one of the following:\n"
- " `grp-creation` - A group is created.\n"
- " `grp-deletion` - An existing group is deleted.\n"
- " `grp-move` - A group is moved to become \n"
- " another group. \n"
- " `grp-ins-links` - Links are inserted, including\n"
- " both hard and soft links. \n"
- " `grp-del-links` - Links are deleted, including\n"
- " both hard ans soft links. \n"
- " `grp-compact-t-dense` - Links are inserted to the group.\n"
- " The link storage of this group \n"
- " changed from compact to dense. \n"
- " The links include both hard and\n"
- " soft links. \n"
- " `grp-dense-t-compact` - Links are inserted to the group\n"
- " The link storage of this group \n"
- " changed from compact to dense. \n"
- " Then several links are deleted.\n"
- " The link storage changed from \n"
- " dense to compact again. \n"
- " The links include both hard and\n"
- " soft links. \n"
- "-a steps: `steps` between adding attributes\n"
- " (Don't recommend to use this option for performance test.)\n"
- "-q: silence printouts, few messages\n"
- "\n",
- progname,progname);
+ fprintf(
+ stderr,
+ "usage: ./%s -P -n 1000 -N 5 -q (create 1000 groups, each group has 5 attributes)\n"
+ "usage: ./%s -P -L -n 100000 -q (create 100000 groups and generate log message to file 'log-test')\n"
+ "Options: \n"
+ " [-P] [-S] [-G] [-L] [-t tick_len] [-m max_lag][-B pbs] [-s ps]\n"
+ " [-n ngroups] [-l ng_levels] [-O grp_op_pattern]\n"
+ " [-N num_attrs] [-V] [-b] [-A at_pattern] [-a steps] [-q]\n"
+ "\n"
+ "-P: carry out the performance test\n"
+ "-S: do not use VFD SWMR\n"
+ "-G: old-style type of group\n"
+ "-L: Turn on the logging feature.\n"
+ "-t tick_len: length of a tick in tenths of a second.\n"
+ "-m max_lag: maximum expected lag(in ticks) between writer and readers\n"
+ "-B pbs: page Buffer Size in bytes:\n"
+ " The default value is 4K(4096).\n"
+ "-s ps: page size used by page aggregation, page buffer and \n"
+ " the metadata file. \n"
+ "-n ngroups: the number of groups\n"
+ "-l ng_levels: the number of level of nested groups. \n"
+ " If all the groups are under the root group, \n"
+ " this number should be 0.\n"
+ "-N num_attrs: the number of attributes \n"
+ "-V use variable length string attributes for performance test\n"
+ "-b: write data in big-endian byte order\n"
+ " (For the performance test, -V overwrites -b)\n"
+ "-A at_pattern: `at_pattern' for different attribute tests\n"
+ " The value of `at_pattern` is one of the following:\n"
+ " `compact` - Attributes added in compact storage\n"
+ " `dense` - An attribute added in dense storage\n"
+ " `compact-del` - Attributes added and then one\n"
+ " attribute deleted, in compact \n"
+ " `dense-del` - Attributes added until the storage\n"
+ " is dense then an attribute deleted\n"
+ " the storge still in dense\n"
+ " `compact-add-to-dense` - Attributes added first in compact\n"
+ " then in dense storage\n"
+ " `dense-del-to-compact` - Attributes added until the storage\n"
+ " is dense, then several attributes \n"
+ " deleted, the storage changed to\n"
+ " compact\n"
+ " `modify` - An attribute added then modified\n"
+ " `add-vstr` - A VL string attribute added\n"
+ " `remove-vstr` - A VL string attribute added then\n"
+ " deleted\n"
+ " `modify-vstr` - A VL string attribute added then \n"
+ " modified \n"
+ " `add-ohr-block` - An attribute is added and this forces\n"
+ " the creation of object header\n"
+ " continuation block \n"
+ " `del-ohr-block` - An attribute is added and this forces\n"
+ " the creation of object header\n"
+ " continuation block and then this \n"
+ " attribute is deleted so the \n"
+ " object header continuation block is \n"
+ " removed. \n"
+ "-O grp_op_pattern: `grp_op_pattern' for different group operation tests\n"
+ " The value of `grp_op_pattern` is one of the following:\n"
+ " `grp-creation` - A group is created.\n"
+ " `grp-deletion` - An existing group is deleted.\n"
+ " `grp-move` - A group is moved to become \n"
+ " another group. \n"
+ " `grp-ins-links` - Links are inserted, including\n"
+ " both hard and soft links. \n"
+ " `grp-del-links` - Links are deleted, including\n"
+ " both hard ans soft links. \n"
+ " `grp-compact-t-dense` - Links are inserted to the group.\n"
+ " The link storage of this group \n"
+ " changed from compact to dense. \n"
+ " The links include both hard and\n"
+ " soft links. \n"
+ " `grp-dense-t-compact` - Links are inserted to the group\n"
+ " The link storage of this group \n"
+ " changed from compact to dense. \n"
+ " Then several links are deleted.\n"
+ " The link storage changed from \n"
+ " dense to compact again. \n"
+ " The links include both hard and\n"
+ " soft links. \n"
+ "-a steps: `steps` between adding attributes\n"
+ " (Don't recommend to use this option for performance test.)\n"
+ "-q: silence printouts, few messages\n"
+ "\n",
+ progname, progname);
exit(EXIT_FAILURE);
}
@@ -2789,10 +2790,9 @@ main(int argc, char **argv)
init_vfd_swmr_config(&config, s.tick_len, s.max_lag, writer, FALSE, 128, "./group-shadow");
/* If the log flag is on, create the log file log-test under the current directory. */
- if(s.glog == true)
+ if (s.glog == true)
init_vfd_swmr_log(&config, "./log-test");
-
/* If old-style option is chosen, use the earliest file format(H5F_LIBVER_EARLIEST)
* as the second parameter of H5Pset_libver_bound() that is called by
* vfd_swmr_create_fapl. Otherwise, the latest file format(H5F_LIBVER_LATEST)