diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2021-09-30 04:00:24 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-30 04:00:24 (GMT) |
commit | 5b5f0c08c9f15bb1740208de67d9242463fa0cb4 (patch) | |
tree | cd5784d67bec559dc5bbe840c1b9fceacc72f867 /release_docs | |
parent | 3da0802c40d58759995916bf9d0880e19f0af44d (diff) | |
download | hdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.zip hdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.tar.gz hdf5-5b5f0c08c9f15bb1740208de67d9242463fa0cb4.tar.bz2 |
Update compact dataset I/O routines to handle driver-level memory copy (#1054)
* Update compact dataset I/O routines to handle driver-level memory copy
* Combine compact I/O read/write struct into single I/O struct
Rename CTL memory copy flag and H5Fquery routine to get file driver
structure
* Add RELEASE.txt entry for new "ctl" memory copy operation
Diffstat (limited to 'release_docs')
-rw-r--r-- | release_docs/RELEASE.txt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 0c3a398..ec558c6 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -469,6 +469,48 @@ New Features Library: -------- + - Adds new file driver-level memory copy operation for + "ctl" callback and updates compact dataset I/O routines + to utilize it + + When accessing an HDF5 file with a file driver that uses + memory allocated in special ways (e.g., without standard + library's `malloc`), a crash could be observed when HDF5 + tries to perform `memcpy` operations on such a memory + region. + + These changes add a new H5FD_FEAT_MEMMANAGE VFD feature + flag, which, if specified as supported by a VFD, will + inform HDF5 that the VFD either uses special memory + management routines or wishes to perform memory management + in a specific way. Therefore, this flag instructs HDF5 to + ask the file driver to perform memory management for + certain operations. + + These changes also introduce a new "ctl" callback + operation identified by the H5FD_CTL__MEM_COPY op code. + This operation simply asks a VFD to perform a memory copy. + The arguments to this operation are passed to the "ctl" + callback's "input" parameter as a pointer to a struct + defined as: + + struct H5FD_ctl_memcpy_args_t { + void * dstbuf; /**< Destination buffer */ + hsize_t dst_off; /**< Offset within destination buffer */ + const void *srcbuf; /**< Source buffer */ + hsize_t src_off; /**< Offset within source buffer */ + size_t len; /**< Length of data to copy from source buffer */ + } H5FD_ctl_memcpy_args_t; + + Further, HDF5's compact dataset I/O routines were + identified as a problematic area that could cause a crash + for VFDs that make use of special memory management. Those + I/O routines were therefore updated to make use of this new + "ctl" callback operation in order to ask the underlying + file driver to correctly handle memory copies. + + (JTH - 2021/09/28) + - Adds new "ctl" callback to VFD H5FD_class_t structure with the following prototype: |