| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
bug turnaround in test_hdf5_fortran on a h5fmount_c call
Description:
the H5I_nmembers(H5I_GROUP) call that is made inside
h5fmount_c -> H5G_replace_name -> H5I_nmembers(H5I_GROUP)
is not detecteting correctly that the entry belongs to the group list
therefore a call is made to H5I_search(H5I_DATATYPE) (there are always non-named datatypes)
and H5G_replace_ent is called with a search for the datatype group
ent = H5T_entof((H5T_t*)obj_ptr);
which returns a NULL ent
a tweak for this is to add
if( !ent) goto done;
Platforms tested:
windows 2000, Linux, Solaris with fortran
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Added 'ID to name' support
Description:
There is a new API function H5Iget_name
Most of the changes are on H5G.c , regarding the symbol table entry struct H5G_entry_t
which has 2 new fields 'name' and 'old_name'
A new private function was introduced H5G_ent_copy, that does a deep copy
between 2 symbol table entries
The test file is getname.c
Platforms tested:
windows 2000, Linux, Solaris
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup/New Feature
Description:
Improve the space allocation in the file by re-using freed space more
effectively.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/serial & parallel
|
|
|
|
|
|
| |
Cleaned up the documentation
Description:
There were some small errors in the documentation in the source file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix/Code cleanup/New Feature
Description:
Correct problems with writing fill-values to external storage and allocate
the data storage at the correct times.
Also, mostly straighten out the strange code which allocates and fills
raw data storage for datasets. Things are still a bit odd in that the
fill-values for chunked datasets are written when the space is allocated,
instead of in a separate routine, but there are two reasons for this:
it's inefficient (especially in parallel) to iterate through all the chunks
twice, and (more importantly) the space needed to store compressed chunks
isn't known until we've got a buffer of compressed fill-values ready to
write to the chunk.
Additionally, add in the H5D_SPACE_ALLOC_INCR and H5D_SPACE_ALLOC_DEFAULT
setting for the "space time", which incorporate the previous behavior of
the space allocation for chunked datasets.
The default settings for the different types of dataset storage are now
as follows:
Contiguous - Late
Chunked - Incremental
Compact - Early
This checkin also incorporates a change to the behavior of external data
storage in two ways - fill-values are _never_ written to external storage
(under the assumption that writing fill-values is triggered by allocating
space in an HDF5 file, and since space is not allocated in the file, the
fill-values should not be written) and external data files are now created
if they don't exist when data is written to them. The fill-value will
probably need to be revisited at some time in the future, this just seemed
like the safer course currently.
I think I cleaned up some compiler errors also, before getting bogged down
in the fixes for the space allocation and fill-values.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/serial & parallel. Will be testing on IRIX64
6.5 (modi4) in serial & parallel shortly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Correctly apply filters (like compression) to fill values in chunks that
are pre-allocated.
This is OK in parallel also, since all the chunks are identical at this
point and any chunk may be written by any process.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix/Code cleanup
Description:
Clean up memory leak in fill value code
Also rearrange logic of code a bit
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Rename variables.
Description:
In this file, dataset address offset is misnamed as file offset. Changed
them back to dset_offset_XXX or dset_offset.
Platforms tested:
eirene
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Bug fix.
Description:
In H5D_init_storage, contiguous dataset is not initialized properly when
fill value is library default.
Platforms tested:
eirene
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug fix
Description:
Last change of FUNC_ENTER to FUNC_ENTER_NOAPI did not include
definition of variable ret_value and label done.
Solution:
Added the missing ret_value and label done.
Not sure if the logic is correct since the function will abort
if some assert fails. This fix only takes care of the syntax
error.
Platforms tested:
eirene(pp). Did not test on other machine since the syntax fix
is pretty simple.
|
|
|
|
|
|
|
|
|
| |
Purpose:
Design for compact dataset
Description:
Compact dataset is stored in the header message for dataset layout.
Platforms tested:
arabica, eirene.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Additional regression tests & bug fixes
Description:
There was no testing for the H5Dget_storage_size function and it seemed to
be having problems with compressed, chunked datasets, so write some tests
to verify that its working correctly.
Also, fix case for allocating storage early for chunked datasets
Platforms tested:
FreeBSD 4.6 (sleipnir) serial & parallel
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Move get/set routines for each type of property list (file creation,
dataset creation, file access and dataset transfer) into their own source
code module.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Combined H5P_isa_class and H5I_object functionality into a new internal
H5P API function: H5P_object_verify, which checks that a property list is
the appropriate class and then returns the property list object associated
with the property list ID.
This reduces the source code by about 200 LOC and trims the library binary
some more.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Cleanup up a few compiler warnings...
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Changed the last HRETURN* statements in the FUNC_ENTER macros into HGOTO*
macros, which reduces the size of the library binary in certain
configurations by another 10%
Platforms tested:
FreeBSD 4.6 (sleipnir) serial & parallel, IRIX64 6.5 (modi4) serial &
parallel
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Cleaned up a few warnings from compiling with --disable-hsizet on Linux
Platforms tested:
Linux 2.2.x (eirene)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
hsize_t comparisons for selection boundaries (in H5Sget_select_bounds)
were failing on Linux with --disable-hsizet.
Solution:
Changed comparisons to use use unsigned values instead of signed ones.
Platforms tested:
Linux 2.2.x (eirene)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Merged from 1.4 branch
Description:
API tracing improvements
Platforms tested:
Linux (--disable-hsizet didn't work before my changes and still doesn't
work, but --enable-hsizet is fine).
Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue. Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Merged from 1.4 branch
Description:
API tracing improvements
Platforms tested:
Linux (--disable-hsizet didn't work before my changes and still doesn't
work, but --enable-hsizet is fine).
Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue. Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Merged from 1.4 branch
Description:
API tracing improvements
Platforms tested:
Linux (--disable-hsizet didn't work before my changes and still doesn't
work, but --enable-hsizet is fine).
Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue. Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Merged from 1.4 branch
Description:
API tracing improvements
Platforms tested:
Linux (--disable-hsizet didn't work before my changes and still doesn't
work, but --enable-hsizet is fine).
Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue. Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Merged from 1.4 branch
Description:
API tracing improvements
Platforms tested:
Linux (--disable-hsizet didn't work before my changes and still doesn't
work, but --enable-hsizet is fine).
Note: This checkin includes temporary code in H5FDmpiposix.c to turn
off GPFS byte range token prefetches on ASCI/Blue. Once the HDF5 API
supports the necessary prerequisite functionality this temporary code
can be migraged up above HDF5.
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up a few warnings which were showing up with --enable-production
turned on.
Platforms tested:
FreeBSD 4.6 (sleipnir) serial & parallel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Change most (all?) HRETURN_ERROR macros to HGOTO_ERROR macros, along with
HRETURN macros to HGOTO_DONE macros. This unifies the error return path
from functions and reduces the size of the library by up to 10% on some
platforms.
Additionally, I improved a lot of the error cleanup code in many routines.
Platforms tested:
FreeBSD 4.6 (sleipnir) serial & parallel and IRIX64 6.5 (modi4) serial &
parallel.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Created a new H5I function which combined the some of the functionality of
H5I_get_type and H5I_object: H5I_object_verify.
Using this new function in the library trims another ~200 lines of code off
the library and makes the resulting binaries smaller and faster also.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Move operations on each type of selection into the source code file for
each selection type (all->H5Sall.c, hyperslab->H5Shyper.c, etc.)
Remove central H5S_select_<foo> operations, instead calling the operations
through function pointers in each selection (a much more object-oriented
approach).
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Bug fix.
Description:
Correct erroneous assertion.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Large code cleanup/re-write
Description:
This is phase 1 of the data I/O re-architecture, with the following changes:
- Changed the selection drivers to not actually do any I/O, they
only generate the sequences of offset/length pairs needed for
the I/O (or memory access, in the case of iterating or filling
a selection in a memory buffer)
- Wrote more abstract I/O routines which get the sequence of offset/
length pairs for each selection and access perform the I/O or
memory access.
Benefits of this change include:
- Removed ~3400 lines of quite redundant code, with corresponding
reduction in the size of library binary.
- Any selection can now directly access memory when performing I/O,
if no type conversions are required, instead of just "regular"
hyperslab and 'all' selections, which speeds up I/O.
- Sped up I/O for hyperslab selections which have contiguous lower
dimensions by "flattening" them out into lesser dimensional objects
for the I/O.
No file format or API changes were necessary for this change.
The next phase will be to create a "selection driver" for each type of
selection, allowing each type of selection to directly call certain
methods that only apply to that type of selection, instead of passing
through dozens of functions which have switch statements to call the
appropriate method for each selection type. This will also reduce
the amount of code in the library and speed things up a bit more.
Phase 3 will involve generating an MPI datatype for all types of selections,
instead of only "regular" hyperslab and 'all' selections. This will
allow collective parallel I/O for all I/O operations which don't
require type conversions. It will also open up the door for allowing
collective I/O on datasets which require type conversion.
Phase 4 will involve changing the access pattern to deal with chunked
datasets in a more optimal way (in serial).
Phase 5 will deal with accessing chunked datasets more optimally for
collective parallel I/O operations.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/ parallel & C++ and IRIX64 6.5 (modi4) w/parallel
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Re-alphabetized header includes.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/parallel & C++
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
correct a typo in the H5FD_sec2_flush.
Description:
fd is not defined. It should be file->fd
Solution:
Platforms tested:
windows 2000, linux 2.2.18smp
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Make the sieve buffer managed by the free-list code.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Dynamically allocated H5S_t structure was not being freed under certain
error conditions.
Solution:
Free it.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
non-parallel case for new metadata cache flushing property wasn't set up
correctly.
Solution:
Initialize variables correctly.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
It was possible to create corrupted metadata information (either in memory
or in the file or both) with a parallel I/O program because of the way
metadata writes were being handled for writes out of the metadata cache.
Solution:
Added a dataset transfer property called "block before metadata write"
which is used by the MPI-I/O and MPI-posix drivers to sync up all the
processes before attempting a metadata write. This property is currently
only for metadata writes from the metadata cache.
Platforms tested:
IRIX64 6.5 (modi4) w/parallel
|
|
|
|
|
|
|
|
|
| |
Purpose:
Bug fix.
Description:
This should fix the nested VL datatype bug.
Platforms tested:
modi4, eirene, impact
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Deleting objects from a global heap was incorrectly setting the free space
in the heap chunk.
Solution:
Encode correct amount of free space.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update, Bug Fix, and Feature Add
Description:
- Updated how AC_{ENABLE,WITH} help messages were being generated.
Autoconf now gives you an AC_HELP_STRING macro to use to create
them.
- Fixed the problem with Linux LFS on RedHat 7.3 machines. It wasn't
finding getdents64(), so we can't rely on that being present
anymore...
- Added GPFS detection and setting.
- Updated how compression is specified. It's no longer necessary to
test for HAVE_ZLIB_H, HAVE_LIBZ, and HAVE_COMPRESS2. The one macro
{H5_}HAVE_COMPRESSION takes care of all of these.
Solution:
Changed the check for Linux LFS from looking for getdents() to
looking at the version number of the kernel (using the uname -r
command). You can still override with the --enable-linux-lfs switch
if you really believe that your <2.4 kernel has LFS support.
Platforms tested:
Linux (2.2 and 2.4)
|
|
|
|
|
|
|
|
|
|
|
|
| |
New feature.
Description:
Added MPI-posix VFL driver. This driver uses MPI to coordinate actions, but
performs I/O directly with posix sec(2) I/O functions. This driver should
_NOT_ be used if the file accessed is not on a parallel filesystem.
Platforms tested:
FreeBSD 4.6 (sleipnir) w/parallel & IRIX64 6.5 (modi4) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Changed a few direct calls to posix functions to use proper wrapper macros.
Also, changed method of extending file to use ftruncate().
Platforms tested:
FreeBSD 4.6 (sleipnir) && IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Make a "H5T_t *" parameter into a "const H5T_t *" parameter.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Update code
Description:
Re-enable free-lists, which were accidentally disabled from last checkin.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code update
Description:
Re-arrange to disable free-list code in a more transparent way.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix.
Description:
"strong" file closing feature was re-using free'd memory for objects which
were still open in the file.
Solution:
Used the "dmalloc" tools to determine where the memory was being
re-used and re-arranged the code to avoid these cases.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
New code
Description:
Add a few new error messages.
Platforms tested:
FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
| |
New feature
Description:
Add support in for "dmalloc" debugging malloc library to configure script
and library headers.
Platforms tested:
IRIX64 6.5 (modi4) and FreeBSD 4.6 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
Bug fix
Description:
Nested VL datatype test fails on 64-bit machines
Solution:
bug fixed.
Platforms tested:
IRIX64 6.5(modi4) 64-bit
|