diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2012-08-11 02:26:34 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2012-08-11 02:26:34 (GMT) |
commit | 3552beb08b10a9037691905b5dec644428a9ac35 (patch) | |
tree | f86885d94be4de02831c1cf3a0fb68633c837ee3 /src/H5Cprivate.h | |
parent | 60c9d88951866b4f8c9d0b8b7a04ac5a31d00edb (diff) | |
download | hdf5-3552beb08b10a9037691905b5dec644428a9ac35.zip hdf5-3552beb08b10a9037691905b5dec644428a9ac35.tar.gz hdf5-3552beb08b10a9037691905b5dec644428a9ac35.tar.bz2 |
[svn-r22666] Description:
Merge "flush me last" & "flush me collectively" feature from the
avoid_truncate branch back to the trunk. (To help enable allowing the
free space section info to reside in temporary address space)
Tested on:
Mac OSX/64 10.7.4 (amazon) w/debug, gcc 4.7.x, C++, FORTRAN & threadsafe
(h5committest forthcoming)
Diffstat (limited to 'src/H5Cprivate.h')
-rw-r--r-- | src/H5Cprivate.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/H5Cprivate.h b/src/H5Cprivate.h index 0c7631a..7fde69b 100644 --- a/src/H5Cprivate.h +++ b/src/H5Cprivate.h @@ -371,6 +371,23 @@ typedef herr_t (*H5C_log_flush_func_t)(H5C_t * cache_ptr, * H5C__FLUSH_MARKED_ENTRIES_FLAG. The flag is reset when * the entry is flushed for whatever reason. * + * flush_me_last: Boolean flag indicating that this entry should not be + * flushed from the cache until all other entries without + * the flush_me_last flag set have been flushed. + * + * flush_me_collectively: Boolean flag indicating that this entry needs + * to be flushed collectively when in a parallel + * situation. + * + * Note: At this time, the flush_me_last and flush_me_collectively + * flags will only be applied to one entry, the superblock, + * and the code utilizing these flags is protected with HDasserts + * to enforce this. This restraint can certainly be relaxed in + * the future if the the need for multiple entries getting flushed + * last or collectively arises, though the code allowing for that + * will need to be expanded and tested appropriately if that + * functionality is desired. + * * clear_on_unprotect: Boolean flag used only in PHDF5. When H5C is used * to implement the metadata cache In the parallel case, only * the cache with mpi rank 0 is allowed to actually write to @@ -578,7 +595,7 @@ typedef struct H5C_cache_entry_t haddr_t addr; size_t size; const H5C_class_t * type; - haddr_t tag; + haddr_t tag; hbool_t is_dirty; hbool_t dirtied; hbool_t is_protected; @@ -587,13 +604,15 @@ typedef struct H5C_cache_entry_t hbool_t is_pinned; hbool_t in_slist; hbool_t flush_marker; + hbool_t flush_me_last; #ifdef H5_HAVE_PARALLEL + hbool_t flush_me_collectively; hbool_t clear_on_unprotect; - hbool_t flush_immediately; + hbool_t flush_immediately; #endif /* H5_HAVE_PARALLEL */ hbool_t flush_in_progress; hbool_t destroy_in_progress; - hbool_t free_file_space_on_destroy; + hbool_t free_file_space_on_destroy; /* fields supporting the 'flush dependency' feature: */ @@ -1042,6 +1061,8 @@ typedef struct H5C_auto_size_ctl_t #define H5C__READ_ONLY_FLAG 0x0200 #define H5C__FREE_FILE_SPACE_FLAG 0x0800 #define H5C__TAKE_OWNERSHIP_FLAG 0x1000 +#define H5C__FLUSH_LAST_FLAG 0x2000 +#define H5C__FLUSH_COLLECTIVELY_FLAG 0x4000 #ifdef H5_HAVE_PARALLEL H5_DLL herr_t H5C_apply_candidate_list(H5F_t * f, |