Commit Graph

8880 Commits

Author SHA1 Message Date
James Laird
75d22ed839 [svn-r12596] Refactored how external files are opened and closed.
Object header locations (H5O_loc_t's) can now "hold open" a file and
decrement its open object count when they close.  This means that
locations (H5O_loc_t's and H5G_loc_t's) should always be freed.

Added more thorough tests to ensure that external files are closed.
2006-08-18 15:48:54 -05:00
John Mainzer
e8c1fdd554 [svn-r12595] Modified H5C_insert_entry() to accept the H5C__PIN_ENTRY_FLAG entry
flag, and pin an entry as it is inserted.

The objective is to avoid some function call overhead in fheap.

Also added matching test code in test/cache.c & test/cache_common.c
(also testpar/t_cache.c checked in separately by accident)

h5commit tested
2006-08-17 17:04:47 -05:00
John Mainzer
db9759bd10 [svn-r12594] Added small parallel test for modification of H5C_insert_entry() allowing
insertion and pinning of a cache entry in one call.

h5commit tested
2006-08-17 16:59:49 -05:00
Quincey Koziol
4eb07936c7 [svn-r12593] Description:
Clean up some of the parallel chunk I/O compiler warnings and other minor
code rearrangement.

Tested on:
    FreeBSD 4.11 (sleipnir) w/paralllel
    h5committest
2006-08-17 14:26:42 -05:00
Quincey Koziol
49d1901fdd [svn-r12592] Description:
Several changes, all mooshed together:
        - Add support for "tiny" objects - which can be stored in the heap
            ID itself, instead of in the heap data blocks.
        - Flesh out support for compressed direct blocks, but comment it
            out until John's got some metadata cache changes in place to
            support it.
        - Add support for applying I/O pipeline filters to 'huge' objects
        - Refactor 'huge' object code to store information for 'huge' objects
            directly in the heap ID, when there are I/O pipeline filters
            applied to the heap (and the heap ID is large enough to hold the
            information)
        - Update h5debug tool to correctly handle 'huge' & 'tiny' objects.
        - Misc. other code cleanups, etc.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:59:14 -05:00
Quincey Koziol
0de2335088 [svn-r12591] Description:
Add an error code for a I/O filter pipeline operation failing

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:54:05 -05:00
Quincey Koziol
34f456170d [svn-r12590] Description:
Set the parent indirect block information correctly when creating new
row sections.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:51:17 -05:00
Quincey Koziol
832305699d [svn-r12589] Description:
Revert passing the v2 B-tree class to callbacks, it turns out to be
unnecessary.  Also revert have a "class private" pointer for each v2 B-tree
class.

    Add in support for the different flavors of fractal heap 'huge' objects
also.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:49:06 -05:00
Quincey Koziol
7fd5028f7c [svn-r12588] Description:
Set the address of the free space section info's parent header correctly
when bringing the section info into the metadata cache.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:43:10 -05:00
Quincey Koziol
dec126b2fe [svn-r12587] Description:
Call the H5L API's termination routine when the library is terminating.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:41:26 -05:00
Quincey Koziol
02bb68f97e [svn-r12585] Description:
Correct parameter flipped in memset call (Thanks Peter!)

Tested on:
    Very minor, just eyeballed.
2006-08-17 10:33:02 -05:00
James Laird
e5bc52d890 [svn-r12584] Mentioned VFD in test output to make it easier to tell which VFD is being used
when a test is run.

Running reconfigure also regenerated error header files (because someone edited
them manually?).
2006-08-17 09:18:03 -05:00
Albert Cheng
fc6b17b640 [svn-r12582] Purpose:
upgrade.

Description:
Changed the error report of read and write to HSYS_GOTO_ERROR to report
system error messages.

Platforms tested:
heping, osage, copper.
2006-08-16 23:05:35 -05:00
Elena Pourmal
a0591aaf96 [svn-r12581] Description:
Bug fix and maintenance
  Checked in James fix and did more code refactoring.

Platforms tested: heping, copper and shanti (and X1 for the bug fix)
2006-08-16 17:45:56 -05:00
Elena Pourmal
b018e9589e [svn-r12579] Description:
-O3 flag causes compilation problems on most of the platforms with Intel compiler.
   The problem exists in all vesrions of icc compiler up to the newest 9.1

Solution:
   Use less agressive default setting O2 to avoid headache

Platforms tested: Linux 2.6 ia64 at UCAR (hal), cobalt (NCSA)
2006-08-15 13:56:44 -05:00
Elena Pourmal
32ab3519fb [svn-r12578] Description:
Maintenance for alpha5 release; brought command files up-to-date.

Platforms tested:
 VMS server. Compilation, C++, F90 and tools tests passed; 
             C tests are still running.
2006-08-14 17:36:50 -05:00
MuQun Yang
91aa37b5ae [svn-r12577] Update windows project files to reflect the HDF5 library source code recently committed.
Test C,C++, fortran, debug,debug dll, release and release dll.

MSVS 6.0 + Compaq Visual fortran 6.6c
2006-08-14 14:12:33 -05:00
James Laird
0f61afce1c [svn-r12576] Added funtions to query the "current position" for Packet Tables in C and C++. 2006-08-14 11:18:28 -05:00
Quincey Koziol
89f36d62b7 [svn-r12575] Description:
Allow the heap ID length to be chosen at heap creation time, to allow
for making heap IDs long enough to directly embed the file offset & length
of 'huge' objects in the heap ID (which allows them to be retrieved directly
from disk, instead of requiring them to be looked up in the B-tree that tracks
'huge' objects)

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 9 (shanti)
2006-08-13 21:50:11 -05:00
Quincey Koziol
c4a5b8e16c [svn-r12573] Description:
Clean up a couple of compiler warnings in the 'huge' object code in the
library.

    Add a bunch of 'huge' object regression tests

Tested on:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-12 23:18:45 -05:00
Quincey Koziol
23d1007926 [svn-r12572] Description:
Refactor new heap's header creation code to be all in the H5HFhdr.c
module.

Tested on:
   FreeBSD 4.11 (sleipnir)
   Linux/64 2.4 (mir)
   Solaris/64 2.9 (shanti)
2006-08-12 23:17:14 -05:00
Quincey Koziol
2ffaed7e7f [svn-r12571] Description:
Fix failure in "remove bogus ID" test which turned up randomly (due to
random "bogus" IDs being used in test :-) by adding some more defensive
checks on object IDs to the object removal code.

Tested on:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 (shanti)
2006-08-12 23:14:38 -05:00
Quincey Koziol
a7304e80a3 [svn-r12570] Description:
Refactor file memory allocation code slightly, to make it clearer, along
with adding/correcting some comments.

Tested on:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-12 23:10:31 -05:00
Elena Pourmal
9ec01d6222 [svn-r12569] Description: Maintenance
Refactored code in the main function to improve future maintenance and code readability.

Platforms tested:

 heping, shanti (64-bit)
2006-08-12 13:40:22 -05:00
Quincey Koziol
1369e55090 [svn-r12568] Description:
Rename some files, to better align with the names of the functions within
them.

Tested on:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-08-11 22:07:24 -05:00
Quincey Koziol
ff44c2099b [svn-r12567] Description:
Correct remaining compilation errors when debugging asserts are turned on
in free space manager.

Tested in:
    FreeBSD 4.11 (sleipnir)
    Too minor for h5committest
2006-08-11 21:58:28 -05:00
Quincey Koziol
0e539a1cbc [svn-r12566] Description:
Removed free space manager from "enable-debug=all" list of flags, it's
not really designed for "user level" debugging.

Tested on:
    FreeBSD 4.11 (sleipnir)
2006-08-11 21:57:07 -05:00
Quincey Koziol
67eba917e2 [svn-r12565] Description:
Move metadata cache address rename for fractal heap indirect block
immediately after reallocing the storage on disk - to prevent another
routine in the library from confusing the cache by allocating more storage
and attempting to insert it in metadata cache at the old block's location.

    Gotta like those monte carlo/random insert & delete tests, which exposed
this... :-)

Tested:
    Solaris 2.9 (shanti)
    Not failing on other machines
2006-08-11 13:47:44 -05:00
Quincey Koziol
b648c14f13 [svn-r12562] Description:
Initial revision to add support for "huge" objects in the heap (which are
actually stored directly in the file, but are tracked with v2 B-tree that is
accessed through heap header).

Testing:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
    Mac OS X.4 (amazon)
2006-08-09 22:45:06 -05:00
Quincey Koziol
f06e8744a5 [svn-r12561] Description:
Update code formatting a little and refactor to add a better mechanism
for performing callbacks when removing records from the B-tree or deleting
entire B-tree.

Testing:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
    Mac OS 10.4 (amazon)
2006-08-09 22:42:51 -05:00
Quincey Koziol
cb60bf2936 [svn-r12560] Description:
Correct some typos in comments

Testing:
    None needed
2006-08-09 22:39:43 -05:00
Elena Pourmal
2bf4bc29cd [svn-r12559] Maintenance for VMS
Added files created by James for user-define links to the command files
  Added  new script check_h5jam.com to test h5jam/h5unjam; test script
  needs more work.

Platforms tested:
  VMS server and test script only.
2006-08-09 17:46:17 -05:00
Elena Pourmal
35719c0f6b [svn-r12558] Problem:
Daily test for ttsafe failed on several machines due to the changed error stack.

Solution:
  Updated the source code to use new error stack.

Platforms tested:
  shanti
2006-08-09 14:59:35 -05:00
MuQun Yang
d4aae6cbff [svn-r12555] 1. Erased a strange character added to this code
2. Used to workaround solution to fix the cchunk10 failure caused by the MPICH bug 
Machine test:

heping, mir
2006-08-09 10:18:31 -05:00
MuQun Yang
00b54cf131 [svn-r12554] New tests have been added to test the correctness of independent IO with file setview.
To activite this test,
add the command option -i.
For example, at IBM AIX, type "poe testphdf5 -i" will test the library with independent IO with file setview. It simply replaces all the collective IO tests with independent IO with file setview.
2006-08-08 22:16:07 -05:00
MuQun Yang
6916816a56 [svn-r12553] This check-in includes the following part of parallel optimization codes:
1. Provide another option for users to do independent IO with MPI file setview(collectively)
2. With the request of collective IO from users, using Independent IO with MPI file setview if we find collective IO is not good for the applications for IO per chunk(multi-chunk IO) case. Previously we used pure independent IO and that actually performed small IO(IO each row) for this case. The recent performance study suggested the independent IO with file setview can acheieve significantly better performance than collective IO when not many processes participate in the IO.
3. For applications that explicitly choose to do collective IO per chunk case, the library won't do any optimization(gather/broadcast) operations. The library simply passes the collective IO request to MPI-IO. 

Tested at copper, kagiso, heping, mir and tungsten(cmpi and mpich)
Kagiso is using LAM, t_mpi test was broken even.
The cchunk10 test  failed at heping and mir. I suspected it was an MPICH problem. Will investigate later.
Everything passed at copper.
at tungsten: the old cmpi bug(failed at esetw) is still there. Other tests passed.
Some sequential fheap tests failed at kagiso.
2006-08-08 22:00:11 -05:00
Quincey Koziol
d17d42acd0 [svn-r12552] Description:
More tweaks on fractal heap statistics, to better separate information
about managed objects from information about "huge" objects.

    Also, clean up some compiler warnings, etc. on 64-bit platforms & Windows.

Platforms tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago)
2006-08-07 16:24:29 -05:00
Quincey Koziol
4f289e5b92 [svn-r12551] Description:
Refactor fields in heap header to clean out information from dropped
features and also group related fields together more nicely.

    Add fields to heap header for storing information about "huge" objects.

Platforms tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago)
2006-08-07 14:51:59 -05:00
Quincey Koziol
80b1c44327 [svn-r12550] Description:
Refactor fractal heap IDs to include "flag byte" as part of the ID.  This
byte will be used for the heap ID format version as well as flags to indicate
whether the heap object is a "tiny"/normal/"huge" object (with storage
mechanisms optimized for each type of object).

Platforms tested:
    Linux/32 2.4 (chicago)
    Too minor to require h5committest
2006-08-07 13:18:17 -05:00
Quincey Koziol
9a03ce6406 [svn-r12549] Description:
Add support for entire heap deletion.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux/32 2.4 (chicago)
    Linux/64 2.4 (mir)
    Mac OS X (amazon)
2006-08-07 11:49:18 -05:00
Albert Cheng
a44487281d [svn-r12547] Added code to try harder to locate the MANIFEST file in more locations. 2006-08-06 02:45:52 -05:00
Quincey Koziol
c3b9788c9f [svn-r12545] Description:
Add external link test file
2006-08-04 15:52:48 -05:00
Quincey Koziol
8b9f020cb1 [svn-r12544] Description:
Clean up compiler warnings/failures in test/links.c, especially when
--disable-production flag used with --enable-group-revision

    Modify binary dumping in h5dump to clean up files created [a band-aid
solution to not actually creating the files in the srcdir, but better than
just leaving the files around... :-/ ]

Tested:
    FreeBSD 4.11 (sleipnir) (w/ configure flags above)
    Too minor to require h5committest
2006-08-04 15:44:42 -05:00
Quincey Koziol
e5f3e6474a [svn-r12543] Description:
Re-run 'make trace' on this file, so API tracing doesn't issue compiler
errors in development builds

Tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-08-04 15:00:40 -05:00
Albert Cheng
529ccc18f5 [svn-r12536] updated for the newly added file, ./tools/testfiles/nosuchfile.ls. 2006-08-03 23:02:12 -05:00
Albert Cheng
cce17a2274 [svn-r12535] Added a new test for testing error handling of non-existing file.
nosuchfile.ls is the expected output.

Tested: tg-ncsa and heping.
2006-08-03 22:59:24 -05:00
Albert Cheng
104edc6fb9 [svn-r12534] Purpose:
Bug fixes.

Description:
There were MPI_init and MPI_finalize calls in the code of h5tools_fopen in
parallel mode.  But if a non-MPI tool is invoke to open a non-existing
file, it tries to open the non-existing file with different VFD and
eventaully came to try with the MPIO or the MPIPOSIX vfd, then it would
try to do MPI_Init which would fail in the MPI environment if the a.out
was not launched by MPI properly.

Solution:
MPI_Init and MPI_Finalize in general should be called by the MPI application,
not called by a library subroutine as in the manner that was done here.
Removed the MPI_init and MPI_Finalize calls.  Used MPI_Initialized to
verify if this has been launched as an MPI application in the proper
manner before attempting to use the MPIO or the MPIPOSIX VFD to open
the file.

Tested:
In tg-ncsa parallel, where it had failed explicitly and also in Heping,
using both serial and parallel mode.
2006-08-03 21:57:36 -05:00
James Laird
b5724779d0 [svn-r12533] Standardized the way path prefixes are passed to external links using a
LAPL.  Now there are H5Pget and H5Pset functions for "elink_prefixes".
2006-08-03 17:35:58 -05:00
MuQun Yang
b1e0516dd0 [svn-r12532] Update windows projects with James and Quincey's new changes.
Found two minor bugs in h5dumpgentst.c and links.c. Have informed James. Should work with windows.

Tests with MSVS 6.0 with visual fortran 6.6c.
2006-08-03 16:07:27 -05:00
James Laird
d2dc352530 [svn-r12531] Fixed a bug that occurred with 64-bit compilers. Types were used inconsistently
(the nlinks property was an int in some places and a size_t elsewhere--it is now
a size_t everywhere).
2006-08-03 13:39:34 -05:00