diff options
author | Dana Robinson <43805+derobins@users.noreply.github.com> | 2022-04-26 06:24:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-26 06:24:11 (GMT) |
commit | a53f47b72f64ce67ecc13381643fc1a00bfc6872 (patch) | |
tree | 508c9135860dc3ab03595fa938ae3ab7ca680c5b /tools/src/h5perf/sio_engine.c | |
parent | b36cceee0ecda5a87544442cbcf19a92bc70a757 (diff) | |
download | hdf5-a53f47b72f64ce67ecc13381643fc1a00bfc6872.zip hdf5-a53f47b72f64ce67ecc13381643fc1a00bfc6872.tar.gz hdf5-a53f47b72f64ce67ecc13381643fc1a00bfc6872.tar.bz2 |
Onion VFD: Misc cleanup (#1693)
* Removes unused definitions from module headers (#1624)
* Fix these Doxygen warnings #1581 (#1589)
* Fixes a typo in H5.c (#1639)
* free MPI_Group/MPI_Comm/MPI_Datatype objects (#1638)
* free MPI_Group/MPI_Comm/MPI_Datatype objects
* fix clang-format style
* Adds build and license shields to README.md (#1641)
* First stab at a Github status bar
* Adds a .tokeignore file for counting lines of code accurately
* Yanks lines of code calculation since it wildly overcounts
* not depend on doIO to free an MPI_Comm object (#1642)
* free MPI datatypes previously created (#1637)
* Retrieve MPI-IO hints used by MPI library after file open (#1636)
H5Pget_fapl_mpio() should return an MPI info object containing all the
MPI-IO hints used by the MPI library underneath, after the file is
opened. Some hints, such as cb_nodes (number of I/O aggregators), are
useful for HDF5 applications and I/O libraries built on top of HDF5.
* OESS-168: Remove clang warnings. (#1309)
* OESS-168: Remove clang warnings.
* OESS-168: Address @lrknox review.
* OESS-168: Remove clang warnings. (#1376)
* Remove H5_NO_ALIGNMENT_RESTRICTIONS (#1426)
* Do not conditionally compile code that uses a pointer dereference
and assignment to copy a potentially unaligned variable to aligned
automatic storage, or vice versa. Instead, always use naked `memcpy(3)`s.
Disassembling the generated code reveals that the `memcpy(3)`s optimize
(`-O3`) to a single `mov` instruction for x86_64, which is not strict
about alignment.
This change reduces the size of code and scripts by 143 lines, eases
our way to cross-compilation, and avoids invoking undefined behavior.
* Committing clang-format changes
* Per discussion, use HD and add comments.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Cleans up some HL library code that inappropriately returns htri_t values cast to herr_t (#1651)
* Cleans up some HL library code that inappropriately returns
htri_t values cast to herr_t
* Committing clang-format changes
* Formatted source
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Mirror vfd test fixes (#1629)
* Use the FAPL that was created earlier in the test (and delete an unused
variable). This allows 'make check-vfd' to pass with --enable-mirror-vfd.
* Check for testing directory before creating, to avoid warning from bash.
Clean out .libs directory before re-using it (after a failed test), to
remove any files generated by libtool.
* Committing clang-format changes
* Increment error count on failed file open and skip tests for VFDs that need
modified filenames.
* Skip the mirror VFD for 'make check-vfd' - the mirror VFD requires networking
configuration parameters and can't be provided for an automated test that
is configured with an environment variable.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Removes HDF Group paths, adds shellcheck fixes (#1656)
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
https://www.shellcheck.net/wiki/SC2230 -- which is non-standard. Use builti...
https://www.shellcheck.net/wiki/SC2006 -- Use $(...) notation instead of le...
* HDFFV-11306 Fixed (#1657)
* HDFFV-11306,
* Fixed it so both h5open_f and h5close_f can be called multiple times.
* Fixed an issue with open objects remaining after h5close_f was called.
* Added additional tests.
* comments clean-up
* Develop clang format java (#1653)
* added HDFFV-11306 entry (#1662)
* Adds the -q flag to all swmr test programs, quieting noisy output (#1665)
* Adds paths-ignore to the Github pull request workflow (#1663)
* Changes Github action `hdf5 dev CI` to `PR hdf5 dev CI` (#1666)
So the PR action name is not the same as the one in main.yml
* Replace H5detect's build-time detection of C99 integer properties with a (#1400)
* Replace H5detect's build-time detection of C99 integer properties with a
table-driven routine, `H5T__init_native_int()`, that is run at library
initialization time.
* Improve handling of copying of dynamic libraries and clean them up after (#1681)
test finishes.
* Warnings fixes (#1680)
* Clean stack size warnings in sio_engine (#1687)
* Fixes stack size warnings in tcoords.c (#1688)
* Minor things noticed while bringing VFD SWMR in line with develop (#1691)
* Removed dead code, weird formatting, and other badness
* Fixed remaining stack size warnings in onion VFD
* Committing clang-format changes
Co-authored-by: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Co-authored-by: Wei-keng Liao <wkliao@users.noreply.github.com>
Co-authored-by: H. Joe Lee <hyoklee@hdfgroup.org>
Co-authored-by: David Young <dyoung@hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Quincey Koziol <koziol@lbl.gov>
Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
Diffstat (limited to 'tools/src/h5perf/sio_engine.c')
-rw-r--r-- | tools/src/h5perf/sio_engine.c | 55 |
1 files changed, 35 insertions, 20 deletions
diff --git a/tools/src/h5perf/sio_engine.c b/tools/src/h5perf/sio_engine.c index bdd2c08..abf8b9a 100644 --- a/tools/src/h5perf/sio_engine.c +++ b/tools/src/h5perf/sio_engine.c @@ -123,7 +123,6 @@ static hid_t h5dxpl = H5I_INVALID_HID; /* Dataset transfer property * Purpose: SIO Engine where IO are executed. * Return: results * Programmer: Christian Chilan, April, 2008 - * Modifications: */ void do_sio(parameters param, results *res) @@ -134,18 +133,20 @@ do_sio(parameters param, results *res) iotype iot; /* API type */ char base_name[256]; /* test file base name */ /* return codes */ - herr_t ret_code = 0; /*return code */ + herr_t ret_code = 0; /* return code */ - char fname[FILENAME_MAX]; /* test file name */ - int i; - /* HDF5 variables */ - herr_t hrc; /*HDF5 return code */ + char *fname = NULL; + int i; - /* Sanity check parameters */ + /* HDF5 variables */ + herr_t hrc; /* HDF5 return code */ /* IO type */ iot = param.io_type; + if (NULL == (fname = HDcalloc(FILENAME_MAX, sizeof(char)))) + GOTOERROR(FAIL); + switch (iot) { case POSIXIO: fd.posixfd = -1; @@ -267,8 +268,8 @@ done: } /* release generic resources */ - if (buffer) - free(buffer); + HDfree(buffer); + HDfree(fname); res->ret_code = ret_code; } @@ -1125,7 +1126,6 @@ done: * Purpose: Sets file driver. * Return: SUCCESS or FAIL * Programmer: Christian Chilan, April, 2008 - * Modifications: */ hid_t @@ -1164,9 +1164,11 @@ set_vfd(parameters *param) H5FD_mem_t memb_map[H5FD_MEM_NTYPES]; hid_t memb_fapl[H5FD_MEM_NTYPES]; const char *memb_name[H5FD_MEM_NTYPES]; - char sv[H5FD_MEM_NTYPES][1024]; haddr_t memb_addr[H5FD_MEM_NTYPES]; H5FD_mem_t mt; + struct { + char arr[H5FD_MEM_NTYPES][1024]; + } *sv = NULL; HDmemset(memb_map, 0, sizeof memb_map); HDmemset(memb_fapl, 0, sizeof memb_fapl); @@ -1174,16 +1176,22 @@ set_vfd(parameters *param) HDmemset(memb_addr, 0, sizeof memb_addr); HDassert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES); + + if (NULL == (sv = HDcalloc(1, sizeof(*sv)))) + return -1; for (mt = H5FD_MEM_DEFAULT; mt < H5FD_MEM_NTYPES; mt++) { memb_fapl[mt] = H5P_DEFAULT; - HDsprintf(sv[mt], "%%s-%c.h5", multi_letters[mt]); - memb_name[mt] = sv[mt]; + HDsprintf(sv->arr[mt], "%%s-%c.h5", multi_letters[mt]); + memb_name[mt] = sv->arr[mt]; memb_addr[mt] = (haddr_t)MAX(mt - 1, 0) * (HADDR_MAX / 10); } if (H5Pset_fapl_multi(my_fapl, memb_map, memb_fapl, memb_name, memb_addr, FALSE) < 0) { + HDfree(sv); return -1; } + + HDfree(sv); } else if (vfd == family) { hsize_t fam_size = 1 * 1024 * 1024; /*100 MB*/ @@ -1262,14 +1270,18 @@ done: * Purpose: Cleanup temporary file unless HDF5_NOCLEANUP is set. * Return: void * Programmer: Albert Cheng 2001/12/12 - * Modifications: Support for file drivers. Christian Chilan, April, 2008 */ static void do_cleanupfile(iotype iot, char *filename) { - char temp[4096 + sizeof("-?.h5")]; - int j; - hid_t driver; + char * temp = NULL; + size_t temp_sz; + int j; + hid_t driver; + + temp_sz = (4096 + sizeof("-?.h5")) * sizeof(char); + if (NULL == (temp = HDcalloc(1, temp_sz))) + goto done; if (clean_file_g == -1) clean_file_g = (HDgetenv(HDF5_NOCLEANUP) == NULL) ? 1 : 0; @@ -1286,7 +1298,7 @@ do_cleanupfile(iotype iot, char *filename) if (driver == H5FD_FAMILY) { for (j = 0; /*void*/; j++) { - HDsnprintf(temp, sizeof temp, filename, j); + HDsnprintf(temp, temp_sz, filename, j); if (HDaccess(temp, F_OK) < 0) break; @@ -1305,10 +1317,10 @@ do_cleanupfile(iotype iot, char *filename) } else if (driver == H5FD_MULTI) { H5FD_mem_t mt; - assert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES); + HDassert(HDstrlen(multi_letters) == H5FD_MEM_NTYPES); for (mt = H5FD_MEM_DEFAULT; mt < H5FD_MEM_NTYPES; mt++) { - HDsnprintf(temp, sizeof temp, "%s-%c.h5", filename, multi_letters[mt]); + HDsnprintf(temp, temp_sz, "%s-%c.h5", filename, multi_letters[mt]); HDremove(temp); /*don't care if it fails*/ } } @@ -1325,4 +1337,7 @@ do_cleanupfile(iotype iot, char *filename) break; } } + +done: + HDfree(temp); } |