summaryrefslogtreecommitdiffstats
path: root/src/H5Dchunk.c
Commit message (Collapse)AuthorAgeFilesLines
* Header cleanup in C library (#4154)Dana Robinson2024-03-161-0/+1
| | | | | | | * Ensure H5FL header is included everywhere * Ensure H5SL header is included everywhere * Ensure H5MM header is included everywhere
* Initialize selection type in chunk struct (#4087)Glenn Song2024-03-121-0/+4
|
* Remove lint comments (#4107)Dana Robinson2024-03-101-3/+2
|
* Refactor datatype conversion code to use pointers rather than IDs (#4104)jhendersonHDF2024-03-101-82/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | The datatype conversion code previously used IDs for the source and destination datatypes rather than pointers to the internal structures for those datatypes. This was mostly due to the need for an ID for these datatypes that can be passed to an application-registered datatype conversion function or datatype conversion exception function. However, using IDs internally caused a lot of unnecessary ID lookups and hurt performance of datatype conversions in general. This was especially problematic for compound datatype conversions, where the ID lookups were occuring on every member of every compound element of a dataset. The code has now been refactored to use pointers internally and only create IDs for datatypes when necessary. Fixed a test issue in dt_arith where a library datatype conversion function was being cast to an application conversion function. Since the two have different prototypes, this started failing after the parameters for a library conversion function changed from hid_t to H5T_t * and an extra parameter was added. This appears to have worked coincidentally in the past since the only different between a library conversion function and application conversion function was an extra DXPL parameter at the end of an application conversion function Fixed an issue where memory wasn't being freed in the h5fc_chk_idx test program. Even though the program exits quickly after allocating the memory, it still causes failures when testing with -fsanitize=address
* Implement selection vector I/O with collective chunk filling (#3826)vchoi-hdfgroup2023-11-161-163/+101
| | | | | | | | | | | | | | | | | * Changes for ECP-344: Implement selection vector I/O with collective chunk filling. Also fix a bug in H5FD__mpio_write_vector() to account for fixed size optimization when computing max address. * Fixes based on PR review comments: For H5Dchunk.c: fix H5MM_xfree() For H5FDmpio.c: 1) Revert the fix to H5FD__mpio_write_vector() 2) Apply the patch from Neil on the proper length of s_sizes reported by H5FD__mpio_vector_build_types() * Put back the logic of dividing up the work among all the mpi ranks similar to the original H5D__chunk_collective_fill() routine. * Add a test to verify the fix for the illegal reference problem in H5FD__mpio_write_vector().
* Fix some issues with collective metadata reads for chunked datasets (#3716)jhendersonHDF2023-10-241-17/+46
| | | | | | | | | | Add functions/callbacks for explicit control over chunk index open/close Add functions/callbacks to check if chunk index is open or not so that it can be opened if necessary before temporarily disabling collective metadata reads in the library Add functions/callbacks for requesting loading of additional chunk index metadata beyond the chunk index itself
* Update parallel compression feature to support multi-dataset I/O (#3591)jhendersonHDF2023-10-101-0/+51
|
* Strip HD prefix from string/char C API calls (#3540)Dana Robinson2023-09-151-3/+3
| | | | | | | | | | | | | | | | | | | | | * Strip HD prefix from string/char C API calls * HD(f)(put|get)(s|c) * HDstr* * HDv*printf * HD(s)(print|scan)f * HDperror But NOT: * HDstrcase* * HDvasprintf * HDstrtok_r * HDstrndup As those are not C99 and have portability work-around implementations. They will be handled later. * Fix th5_system.c screwup
* Convert hbool_t --> bool in src (#3496)Dana Robinson2023-09-051-304/+304
| | | | | | | | | | | * hbool_t --> bool in src * Does not remove TRUE/FALSE * Public header files are unchanged * Public API calls are unchanged * TRUE/FALSE --> true/false in src * Add deprecation notice for hbool_t
* Convert some H5MM calls to standard C equivalents (#2382)Dana Robinson2023-08-251-4/+4
| | | | | | | | | * H5MM_calloc and malloc are now mapped to stdlib C calls * H5MM_memcpy now maps directly to memcpy in release builds * H5MM_memcpy is still implemented as a separate function that checks for buffer overlap when H5MM_DEBUG is defined (default w/ debug builds) * Switches many library memcpy calls to use H5MM_memcpy * Fixes a possible zero allocation in H5Olayout.c
* Fix for the bug exposed from running test/set_extent.c when selection… (#3319)vchoi-hdfgroup2023-08-041-12/+32
| | | | | * Fix for the bug exposed from running test/set_extent.c when selection I/O is enabled. This is a fix from Neil. The test/set_extent.c is modified to test for selection I/O enabled.
* Fix CVE-2018-11202 (#3330)Dana Robinson2023-08-021-0/+9
| | | | | | | | | | | | | A malformed file could result in chunk index memory leaks. Under most conditions (i.e., when the --enable-using-memchecker option is NOT used), this would result in a small memory leak and and infinite loop and abort when shutting down the library. The infinite loop would be due to the "free list" package not being able to clear its resources so the library couldn't shut down. When the "using a memory checker" option is used, the free lists are disabled so there is just a memory leak with no abort on library shutdown. The chunk index resources are now correctly cleaned up when reading misparsed files and valgrind confirms no memory leaks.
* Made HGOTO_ERROR a do-while loop (#3308)Sean McBride2023-08-021-304/+309
| | | | | * Made HGOTO_ERROR a do-while loop
* Another round of fixing -Wextra-semi-stmt warnings (#3264)Sean McBride2023-07-241-27/+27
| | | Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fixed more warnings about extra semicolons (#3249)Sean McBride2023-07-181-11/+11
| | | | | | | * Require semi-colon after H5_CHECK_OVERFLOW calls Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Remove HD from HDmem* calls (#3211)Dana Robinson2023-06-291-26/+26
|
* Remove programmer/date from comments (#3210)Dana Robinson2023-06-291-204/+0
| | | | * Removes Programmer: and Date: fields * Fixes a few Modifications: fields leftover from previous work
* Rename HD(f)printf() to (f)printf() (#3194)Dana Robinson2023-06-281-15/+14
|
* Rename HDassert() to assert() (#3191)Dana Robinson2023-06-281-337/+334
| | | | | * Change HDassert to assert * Fix bin/make_err
* Rename HDqsort() to qsort() (#3193)Dana Robinson2023-06-281-2/+2
| | | | | | | | | * Rename HDqsort() to qsort() * Committing clang-format changes --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Many fixes to various compiler warnings (#3124)Sean McBride2023-06-191-4/+4
| | | | | | | | | | | * Fixed various -Wmissing-variable-declarations by adding static keyword * In a few cases, renamed the variable suffix from _g to _s. * Fixed some -Wmissing-variable-declarations by using different declaration macros * Fixed various -Wconditional-uninitialized warnings by just initializing variable to zero * Fixed various -Wcomma warnings * Fixed clang -Wstrict-prototypes warnings * Fixed various -Wunused-variable warnings * Updated some casts to fix the only 3 -Wcast-qual warnings * Fixed the only -Wsometimes-uninitialized warning
* Many clang -Wextra-semi-stmt fixes (#2537)Sean McBride2023-06-161-10/+10
| | | | | * Adds semicolons to function-like macros * Adds a do..while(0) loop to some macros * Removes semicolons when inappropriate, especially H5E_TRY_BEGIN/END
* Convert H5F haddr_t macros to H5 (#3039)Dana Robinson2023-06-051-60/+59
| | | | | | | | | | | | | | | | | | | | | | Several macros for handling haddr_t values exist in H5Fprivate.h and have H5F prefixes, even though they have nothing to do with a particular file (e.g., H5F_addr_lt()). These macros have been moved to H5private.h and renamed to have an H5 prefix. Affected macros: H5F_addr_overflow H5F_addr_defined H5F_addr_eq H5F_addr_ne H5F_addr_lt H5F_addr_le H5F_addr_gt H5F_addr_ge H5F_addr_cmp H5F_addr_overlap H5F_addr_pow2 was unused and removed instead of converted.
* Converted H5D asserts to normal error checking (#2842)Dana Robinson2023-04-291-37/+33
| | | | These cases can trip when processing malformed files and it's better to invoke normal HDF5 error handling than crash a process.
* Implement selection I/O with type conversion (#2823)Neil Fortner2023-04-281-45/+95
| | | | | Initial implementation of selection I/O with type conversion. Allows Parallel collective I/O with type conversion, as long as selection I/O is enabled.
* Align arg types of H5D_chunk_iter_op_t with H5Dget_chunk_info (#2074)Mark Kittisopikul2022-12-191-2/+2
| | | | | | | * Align arg types of H5D_chunk_iter_op_t with H5Dget_chunk_info * Modify chunk_info test to for unsigned / hsize_t types * Fix types in test
* Adds 'unused' hints for MDS io_info parameters (#2301)Dana Robinson2022-12-141-10/+9
| | | | | | | | | | | | | | | * Adds 'unused' hints for MDS io_info parameters * Committing clang-format changes * Fix issue with formatter * Committing clang-format changes * Final fix for formatter * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Update copyright headers (#2184)Larry Knox2022-11-011-1/+0
| | | | | * Updated source file copyright headers to remove "Copyright by the Board of Trustees of the University of Illinois", which is kept in the top-level COPYING file.
* Multi Dataset (#2120)Neil Fortner2022-10-191-752/+953
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix bug with cross platform compatibility of references within vlens. No testing yet. * Merge from multi_rd_wd_coll_io to a more recent branch from develop. Untested, probably does not work yet. * Committing clang-format changes * Committing clang-format changes * Fix many bugs in multi dataset branch. Mostly works, some issues in SWMR tests. * Committing clang-format changes * Disable test in swmr.c that was failing due to bug in HDF5 unrelated to multi dataset. * Committing clang-format changes * Fixed fortran multi-dataset tests * Fixed xlf errors * Added benchmark code for multi-datasets * loops over datasets * added missing error arg. * Added gnuplot formatting * Jonathan Kim original MD benchmarking code * updated MD benchmarking code * code clean-up * Only make files in feature test mode * misc clean-up * removed TEST_MDSET_NO_LAST_DSET_2ND_PROC option * Committing clang-format changes * Change multi dataset API to use arrays of individual parameters instead of the parameter struct. * Committing clang-format changes * Update to new multi dataset Fortran API and tests. (#1724) * Update to new multi dataset Fortran API and tests. * Sync Fortran with develop. * skipping h5pget_mpio_actual_io_mode_f for now * Fixed issue with dxpl_id, changed to variable size dim. (#1770) * Remove "is_coll_broken" field from H5D_io_info_t struct * Committing clang-format changes * Minor cleanup in multi dataset code. * Committing clang-format changes * Clean up in multi dataset code. * Committing clang-format changes * Committing clang-format changes * Fix speeling * Fix bug in parallel compression. Switch base_maddr in io_info to be a union. * Committing clang-format changes * Implement selection I/O support with multi dataset. Will be broken in parallel until PR 1803 is merged to develop then the MDS branch. * Committing clang-format changes * Spelling * Fix bug in multi dataset that could cause errors when only some of the datasets in the multi dataset I/O used type conversion. * Committing clang-format changes * Integrate multi dataset APIs with VOL layer. Add async versions of multi dataset APIs. * Committing clang-format changes * Spelling fixes * Fix bug in non-parallel HDF5 compilation. * Committing clang-format changes * Fix potential memory/free list error. Minor performance fix. Other minor changes. * Committing clang-format changes * Fix memory leak with memory dataspace for I/O. * Committing clang-format changes * Fix stack variables too large. Rename H5D_dset_info_t to H5D_dset_io_info_t. * Committing clang-format changes * Remove mem_space_alloc field from H5D_dset_io_info_t. Each function is now responsible for freeing any spaces it adds to dset_info. * Committing clang-format changes * fixed _multi Fortran declaration * Refactor various things in (mostly) the serial I/O code path to make things more maintainable. * Committing clang-format changes * updated to array based, doxygen, and examples * Reinstate H5D_chunk_map_t, stored (via pointer) inside H5D_dset_io_info_t. * Change from calloc to malloc for H5D_dset_io_info_t and H5D_chunk_map_t. Switch temporary dset_infos to be local stack variables. * Committing clang-format changes * format cleanup * format cleanup * added coll and ind * Modify all parallel I/O paths to take dset_info instead of assuming dset_info[0]. * Committing clang-format changes * fixed output * Rework parallel I/O code to work properly with multi dataset in more cases. Fix bug in parallel compression. * Committing clang-format changes * Prevent H5D__multi_chunk_collective_io() from messing up collective opt property for other datasets in I/O. Other minor cleanup. Add new test case to t_pmulti_dset.c for H5FD_MPIO_INDIVIDUAL_IO, disabled for now due to failures apparently unrelated to multi dataset code. * Fix spelling * Committing clang-format changes * Replace N log N algorithm for finding chunk in H5D__multi_chunk_collective_io() with O(N) algorithm, and remove use of io_info->sel_pieces in that function. * Committing clang-format changes * Replace sel_pieces skiplist in io_info with flat array of pointers, use qsort in I/O routine only when necessary. * Committing clang-format changes * Add new test case to mdset.c * Committing clang-format changes * Fix spelling * Very minor fix in H5VL__native_dataset_read() * Fix bug that could affect filtered parallel multi-dataset I/O. * Add RM entries for H5Dread_multi(), H5Dread_multi_async(), H5Dwrite_multi(), and H5Dwrite_multi_async() * Unskip test in swmr.c * Committing clang-format changes * Eliminate H5D__pre_read and H5D__pre_write * Remove examples/ph5mdsettest.c. Will fix and re-add as a test. * Enable hyperslab combinations in mdset test * Committing clang-format changes * Clarify H5Dread/write_multi documentation. * Fix bugs in multi-dataset I/O. Expand serial multi dataset test. Update macro in parallel multi dataset test. * Committing clang-format changes * Spelling * Remove obsolete entry in bin/trace * Rework type conversion buffer allocation. Only one buffer is shared between datasets in mdset mode, and it is malloced instead of calloced. * Committing clang-format changes * Fix bug in error handling in H5D__read/write * added multi-dataset fortran check with optional dataset creation id (#2150) * removed dup. dll entry * Address comments from code review. * Remove spurious changes in H5Fmpi.c * Fix issue with reading unallocated datasets in multi-dataset mode. Address other comments from code review. * Committing clang-format changes * Delay chunk index lookup from io_init to mdio_init so it doesn't add overhead to single dataset I/O. * Committing clang-format changes * Fix inappropriate use of piece_count * updated copyright on new file, removed benchmark from testing dir. Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: M. Scot Breitenfeld <brtnfld@hdfgroup.org> Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
* Fix typos found in src/ subdirectory (#1983)luzpaz2022-08-101-3/+3
| | | Found via `codespell -q 3 -S ./release_docs,./bin/trace,./hl/tools/h5watch/h5watch.c,./tools/test/h5jam/tellub.c -L isnt,inout,nd,parms,parm,ba,offsetP,ser,ois,had,fiter,fo,clude,refere,minnum,offsetp,creat,ans:,eiter,lastr,ans,isn\'t,ifset,sur,trun,dne,tthe,hda,filname,te,htmp,minnum,ake,gord,numer,ro,oce`
* H5Dchunk_iter now passes offsets in units of dataset elements, fix #1419 (#1969)Mark Kittisopikul2022-08-071-2/+11
| | | | | | | | | | | * H5Dchunk_iter now passes chunk dimension scaled offsets, fix #1419 * Update docs for H5Dchunk_iter, H5Dget_chunk_info* Modified description for `H5Dchunk_iter`, `H5Dget_chunk_info`, and `H5Dget_chunk_info_by_coord` to the following * offset Logical position of the chunk’s first element in units of dataset elements * filter_mask Bitmask indicating the filters used when the chunk was written * size Chunk size in bytes, 0 if the chunk does not exist
* Develop clang 13 format (#1933)Allen Byrne2022-07-261-119/+119
| | | | | * Update format source to clang 13 * More format changes
* Fixes for production mode gcc warnings (#1873)Dana Robinson2022-07-111-1/+4
| | | | | | | | | | | | * Fixes for production mode gcc warnings With the strict-overflow changes, this brings the number of warnings in the C library w/ gcc 12 to zero. * Fix typo * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fix some const cast and stack/static object size warnings (#1700)jhendersonHDF2022-05-011-6/+6
| | | | | | | | | * Fix various warnings * Move HDfree_const to H5private.h for wider use * Print output from all ranks in parallel tests on allocation failure * Move const pointer freeing macro to h5test.h for now
* Address some warnings from casting away of const (#1684)jhendersonHDF2022-04-261-36/+31
|
* Warnings fixes (#1680)jhendersonHDF2022-04-251-4/+3
|
* Removes the STATIC flavor of FUNC_ENTER macros (#1622)Dana Robinson2022-04-081-48/+48
| | | | | * Removes the STATIC flavor of FUNC_ENTER macros
* Add H5_CHECK_MPI_VERSION macro to check for at least MPI version of ↵jhendersonHDF2022-03-301-1/+1
| | | | | | | | | (version, subversion) (#1556) * Fix MPI version check for MPI_Aint_diff usage * Add H5_CHECK_MPI_VERSION macro Adds new H5_CHECK_MPI_VERSION macro to check for MPI library version/subversion pair of at least the specified pair
* Merge initial version of selection I/O feature into develop (#1367)Neil Fortner2022-03-261-196/+581
|
* Parallel Compression improvements (#1302)jhendersonHDF2022-02-241-103/+275
|
* Unify handling of collective metadata reads status (#1206)jhendersonHDF2022-01-291-8/+9
|
* Replaced several uses of sprintf with safer snprintf (#1383)Sean McBride2022-01-281-2/+2
| | | | | | | * Replaced several uses of sprintf with safer snprintf * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* OESS-168: Remove clang warnings. (#1297)H. Joe Lee2021-12-151-1/+1
|
* Remove duplicate memcpy in chunk_file_cb (#1285)jhendersonHDF2021-12-111-1/+0
|
* Fixed Spelling Errors (#1166)Scot Breitenfeld2021-12-071-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fixed missed closing of a dataset * fixed missed closing of a dataset * fixed typo in error return * Committing clang-format changes * minor edits * code format * Committing clang-format changes * code format * minor edit * switched from using MPI_count, to actual bytes written for H5FD_mpio_debug rw debugging * Committing clang-format changes * changed size_i in printf to reflect the I/O. * Committing clang-format changes * Fixed seg fault with xlf on BE with -qintsize=8 * fixed error function string * spelling corrections via codespell, added new spell check github actions * Committing clang-format changes * misc * misc * misc * misc * misc * misc * misc * misc * misc * misc * misc * misc * misc * misc * Committing clang-format changes * misc * misc * misc * misc * misc * misc * Committing clang-format changes * misc * work around for https://github.com/codespell-project/codespell/issues/2137 * misc * added missing file * misc * misc. * misc * switch to using Codespell with GitHub Actions * misc. * misc. * fixed more sp errors * Fix new typos found by codespell. * fixed proceed with precede * fixed variable in fortran test * fixed minnum * updated spelling list Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
* Stop lying about H5S_t const-ness (#1209)Dana Robinson2021-11-201-16/+24
| | | | | | Hyperslabs can be reworked inside several H5S callbacks, making H5S_t non-const in some places where it is marked const. This change switches these incorrectly const H5S_t pointer parameters and variables to non-const where appropriate.
* Re-enable collective metadata reads after disabling for chunk lookup (#1173)jhendersonHDF2021-11-091-7/+21
|
* Fix the function cast error in H5Dchunk.c and activate (#1170)David Young2021-11-081-1/+14
| | | `-Werror=cast-function-type`. Again.
* More clang tidy (#908)Sean McBride2021-08-231-2/+2
| | | | | | | | | | | | | | | | | | | * Pacify clang-analyzer-unix.cstring.NullArg * Apply some bugprone-suspicious-string-compare * Apply some readability-simplify-boolean-expr * Apply some readability-make-member-function-const * Apple some bugprone-macro-parentheses * Changed an f suffix to L for `long double` * Applied some readability-uppercase-literal-suffix automatically * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fix several warnings (#747)jhendersonHDF2021-06-161-3/+2
|