From ffc254983fde7b409a633d11114bc5cdbd5d1999 Mon Sep 17 00:00:00 2001 From: mainzer Date: Wed, 17 Nov 2021 09:56:47 -0600 Subject: Interim checkin of selection_io_with_subfiling_vfd branch Moddified testpar/t_vfd.c to test the subfiling vfd with default configuration. Must update this code to run with a variety of configurations -- most particularly multiple IO concentrators, and stripe depth small enough to test the other IO concentrators. testpar/t_vfd.c exposed a large number of race condidtions -- symtoms included: 1) Crashes (usually seg faults) 2) Heap corruption 3) Stack corruption 4) Double frees of heap space 5) Hangs 6) Out of order execution of I/O requests / violations of POSIX semantics 7) Swapped write requests Items 1 - 4 turned out to be primarily caused by file close issues -- specifically, the main I/O concentrator thread and its pool of worker threads were not being shut down properly on file close. Addressing this issue in combination with some other minor fixes seems to have addressed these issues. Items 5 & 6 appear to have been caused by issue of I/O requests to the thread pool in an order that did not maintain POSIX semantics. A rewrite of the I/O request dispatch code appears to have solved these issues. Item 7 seems to have been caused by multiple write requests from a given rank being read by the wrong worker thread. Code to issue "unique" tags for each write request via the ACK message appears to have cleaned this up. Note that the code is still in poor condtition. A partial list of known defects includes: a) Race condiditon on file close that allows superblock writes to arrive at the I/O concentrator after it has been shutdown. This defect is most evident when testpar/t_subfiling_vfd is run with 8 ranks. b) No error reporting from I/O concentrators -- must design and implement this. For now, mostly just asserts, which suggests that it should be run in debug mode. c) Much commented out and/or un-used code. d) Code orgnaization e) Build system with bits of Mercury is awkward -- think of shifting to pthreads with our own thread pool code. f) Need to add native support for vector and selection I/O to the subfiling VFD. g) Need to review, and posibly rework configuration code. h) Need to store subfile configuration data in a superblock extension message, and add code to use this data on file open. i) Test code is inadequate -- expect more issues as it is extended. In particular, there is no unit test code for the I/O request dispatch code. While I think it is correct at present, we need test code to verify this. Similarly, we need to test with multiple I/O concentrators and much smaller stripe depth. My actual code changes were limited to: src/H5FDioc.c src/H5FDioc_threads.c src/H5FDsubfile_int.c src/H5FDsubfile_mpi.c src/H5FDsubfiling.c src/H5FDsubfiling.h src/H5FDsubfiling_priv.h testpar/t_subfiling_vfd.c testpar/t_vfd.c I'm not sure what is going on with the deletions in src/mercury/src/util. Tested parallel/debug on Charis and Jelly --- src/H5FDioc.c | 51 +- src/H5FDioc_threads.c | 537 +++++++++++++++ src/H5FDsubfile_int.c | 41 +- src/H5FDsubfile_mpi.c | 659 ++++++++++++++++++- src/H5FDsubfiling.c | 193 +++++- src/H5FDsubfiling.h | 17 + src/H5FDsubfiling_priv.h | 384 +++++++++++ src/mercury/src/util/.deps/.dirstamp | 0 .../src/util/.deps/mercury_atomic_queue.Plo | 357 ---------- src/mercury/src/util/.deps/mercury_dlog.Plo | 214 ------ src/mercury/src/util/.deps/mercury_event.Plo | 219 ------- src/mercury/src/util/.deps/mercury_hash_table.Plo | 125 ---- src/mercury/src/util/.deps/mercury_log.Plo | 204 ------ src/mercury/src/util/.deps/mercury_mem.Plo | 276 -------- src/mercury/src/util/.deps/mercury_mem_pool.Plo | 228 ------- src/mercury/src/util/.deps/mercury_poll.Plo | 262 -------- src/mercury/src/util/.deps/mercury_request.Plo | 220 ------- src/mercury/src/util/.deps/mercury_thread.Plo | 113 ---- .../src/util/.deps/mercury_thread_condition.Plo | 153 ----- .../src/util/.deps/mercury_thread_mutex.Plo | 183 ------ src/mercury/src/util/.deps/mercury_thread_pool.Plo | 220 ------- .../src/util/.deps/mercury_thread_rwlock.Plo | 186 ------ src/mercury/src/util/.deps/mercury_thread_spin.Plo | 186 ------ src/mercury/src/util/.deps/mercury_util.Plo | 214 ------ src/mercury/src/util/.dirstamp | 0 testpar/t_subfiling_vfd.c | 3 + testpar/t_vfd.c | 723 ++++++++++++++++++--- 27 files changed, 2481 insertions(+), 3487 deletions(-) delete mode 100644 src/mercury/src/util/.deps/.dirstamp delete mode 100644 src/mercury/src/util/.deps/mercury_atomic_queue.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_dlog.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_event.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_hash_table.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_log.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_mem.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_mem_pool.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_poll.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_request.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread_condition.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread_mutex.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread_pool.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread_rwlock.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_thread_spin.Plo delete mode 100644 src/mercury/src/util/.deps/mercury_util.Plo delete mode 100644 src/mercury/src/util/.dirstamp diff --git a/src/H5FDioc.c b/src/H5FDioc.c index b00fb51..273ca0f 100644 --- a/src/H5FDioc.c +++ b/src/H5FDioc.c @@ -30,11 +30,21 @@ #include "H5Pprivate.h" /* Property lists */ #include "H5private.h" /* Generic Functions */ +#if 1 /* JRM */ /* For now, H5FDsubfiling_priv.h needs mercury. Since the code that needs it will \ + * move to its own header, just hack it for now. \ + */ +#include "mercury_thread.h" +#include "mercury_thread_mutex.h" +#include "mercury_thread_pool.h" +#endif /* JRM */ + #include "H5FDsubfiling_priv.h" /* The driver identification number, initialized at runtime */ -static hid_t H5FD_IOC_g = 0; +static hid_t H5FD_IOC_g = 0; +#if 0 /* JRM */ /* delete if all goes well */ extern volatile int sf_shutdown_flag; +#endif /* JRM */ /* * These macros check for overflow of various quantities. These macros @@ -227,6 +237,7 @@ done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_ioc_init() */ +#if 0 /* JRM */ /* delete if all goes well */ /*------------------------------------------------------------------------- * Function: H5FD_ioc_set_shutdown_flag * @@ -246,6 +257,7 @@ H5FD_ioc_set_shutdown_flag(int flag) usleep(100); return; } /* end H5FD_ioc_set_shutdown_flag() */ +#endif /* JRM */ /*--------------------------------------------------------------------------- * Function: H5FD__ioc_term @@ -854,30 +866,30 @@ H5FD__ioc_open(const char *name, unsigned flags, hid_t ioc_fapl_id, haddr_t maxa else if (file_ptr->inode > 0) { /* No errors opening the subfiles */ subfiling_context_t *sf_context = get__subfiling_object(file_ptr->fa.common.context_id); - if (sf_context && sf_context->topology->rank_is_ioc) { - if (initialize_ioc_threads(sf_context) < 0) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "Unable to initialize IOC threads") + if (sf_context && sf_context->topology->rank_is_ioc) { + if (initialize_ioc_threads(sf_context) < 0) { + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "Unable to initialize IOC threads") + } } } } -} -else -{ - HDputs("We only support sec2 file opens at the moment."); - HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to open file = %s\n", name) -} + else { + HDputs("We only support sec2 file opens at the moment."); + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to open file = %s\n", name) + } -ret_value = (H5FD_t *)file_ptr; + ret_value = (H5FD_t *)file_ptr; -done : if (NULL == ret_value) { - if (file_ptr) { - if (file_ptr->ioc_file) - H5FD_close(file_ptr->ioc_file); - H5FL_FREE(H5FD_ioc_t, file_ptr); - } -} /* end if error */ +done: + if (NULL == ret_value) { + if (file_ptr) { + if (file_ptr->ioc_file) + H5FD_close(file_ptr->ioc_file); + H5FL_FREE(H5FD_ioc_t, file_ptr); + } + } /* end if error */ -FUNC_LEAVE_NOAPI(ret_value) + FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD__ioc_open() */ /*------------------------------------------------------------------------- @@ -1430,5 +1442,6 @@ H5FD_ioc_wait_thread_main(void) void H5FD_ioc_finalize_threads(void) { + return; } diff --git a/src/H5FDioc_threads.c b/src/H5FDioc_threads.c index 3a7ee84..0c3d23c 100644 --- a/src/H5FDioc_threads.c +++ b/src/H5FDioc_threads.c @@ -46,6 +46,12 @@ void __attribute__((destructor)) finalize_ioc_threads(void); int wait_for_thread_main(void); bool tpool_is_empty(void); +#if 1 /* JRM */ + +extern H5FD_ioc_io_queue_t io_queue_g; + +#endif /* JRM */ + /*------------------------------------------------------------------------- * Function: local ioc_thread_main * @@ -110,6 +116,15 @@ initialize_ioc_threads(void *_sf_context) char * envValue; double t_start = 0.0, t_end = 0.0; +#if 0 /* JRM */ /* delete this evenutually */ + HDprintf("\nworld_size = %d\n", world_size); +#endif /* JRM */ + +#if 1 /* JRM */ /* try doubling the size of the pool_request array */ + world_size *= 4; + alloc_size *= 4; +#endif /* JRM */ + assert(context_id != NULL); file_open_count = atomic_load(&sf_file_open_count); @@ -154,6 +169,16 @@ initialize_ioc_threads(void *_sf_context) goto err_exit; } +#if 1 /* JRM */ /* needed for new dispatch code */ + + status = hg_thread_mutex_init(&(io_queue_g.q_mutex)); + if (status) { + puts("hg_thread_mutex_init failed for io_queue_g.q_mutex"); + goto err_exit; + } + +#endif /* JRM */ + /* Allow experimentation with the number of helper threads */ if ((envValue = getenv("IOC_THREAD_POOL_COUNT")) != NULL) { int value_check = atoi(envValue); @@ -267,9 +292,13 @@ translate_opcode(io_op_t op) * *------------------------------------------------------------------------- */ +#if 0 /* JRM */ /* Original version -- expects sf_work_request_t * as its arguement */ static HG_THREAD_RETURN_TYPE handle_work_request(void *arg) { +#if 1 /* JRM */ + int curr_io_ops_pending; +#endif /* JRM */ int status = 0; hg_thread_ret_t ret = 0; sf_work_request_t * msg = (sf_work_request_t *)arg; @@ -298,6 +327,11 @@ handle_work_request(void *arg) } fflush(stdout); +#if 1 /* JRM */ + curr_io_ops_pending = atomic_fetch_sub(&sf_io_ops_pending, 1); + HDassert(curr_io_ops_pending > 0); +#endif /* JRM */ + atomic_fetch_sub(&sf_work_pending, 1); // atomic msg->in_progress = 0; if (msg->dependents) { @@ -315,6 +349,80 @@ handle_work_request(void *arg) return ret; } +#else /* JRM */ /* Modified version -- expects H5FD_ioc_io_queue_entry_t * as its argument */ + +static HG_THREAD_RETURN_TYPE +handle_work_request(void *arg) +{ +#if 1 /* JRM */ + int curr_io_ops_pending; +#endif /* JRM */ + int status = 0; + hg_thread_ret_t ret = 0; + H5FD_ioc_io_queue_entry_t *q_entry_ptr = (H5FD_ioc_io_queue_entry_t *)arg; + sf_work_request_t * msg = &(q_entry_ptr->wk_req); + int64_t file_context_id = msg->header[2]; + subfiling_context_t * sf_context = NULL; + + HDassert(q_entry_ptr); + HDassert(q_entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); + HDassert(q_entry_ptr->in_progress); + + sf_context = get__subfiling_object(file_context_id); + assert(sf_context != NULL); + + atomic_fetch_add(&sf_work_pending, 1); // atomic + msg->in_progress = 1; + switch (msg->tag) { + case WRITE_INDEP: + status = queue_write_indep(msg, msg->subfile_rank, msg->source, sf_context->sf_data_comm, + q_entry_ptr->counter); + break; + case READ_INDEP: + status = queue_read_indep(msg, msg->subfile_rank, msg->source, sf_context->sf_data_comm); + break; + default: + HDprintf("[ioc(%d)] received message tag(%x)from rank %d\n", msg->subfile_rank, msg->tag, + msg->source); + status = -1; + break; + } + fflush(stdout); + + atomic_fetch_sub(&sf_work_pending, 1); // atomic + + if (status < 0) { + HDprintf("[ioc(%d) %s]: request(%s) filename=%s from " + "rank(%d), size=%ld, offset=%ld FAILED\n", + msg->subfile_rank, __func__, translate_opcode((io_op_t)msg->tag), sf_context->sf_filename, + msg->source, msg->header[0], msg->header[1]); + + fflush(stdout); + } + +#if 1 /* JRM */ + curr_io_ops_pending = atomic_fetch_sub(&sf_io_ops_pending, 1); + if (curr_io_ops_pending <= 0) { + + HDprintf("\n\nhandle_work_request: curr_io_ops_pending = %d, op = %d, offset/len = %lld/%lld.\n\n", + curr_io_ops_pending, (msg->tag), (long long)(msg->header[1]), (long long)(msg->header[0])); + HDfflush(stdout); + } + + HDassert(curr_io_ops_pending > 0); +#endif /* JRM */ + + /* complete the I/O request */ + H5FD_ioc__complete_io_q_entry(q_entry_ptr); + + /* Check the I/O Queue to see if there are any dispatchable entries */ + H5FD_ioc__dispatch_elegible_io_q_entries(); + + return ret; +} + +#endif /* JRM */ /* Modified version -- expects H5FD_ioc_io_queue_entry_t * as its argument */ + void ioc__wait_for_serialize(void *_work) { @@ -425,6 +533,9 @@ check__overlap(void *_work, int current_index, int *conflict_id) int tpool_add_work(void *_work) { +#if 1 /* JRM */ + int curr_io_ops_pending; +#endif /* JRM */ static int work_index = 0; int conflict_id = -1; sf_work_request_t *work = (sf_work_request_t *)_work; @@ -448,6 +559,17 @@ tpool_add_work(void *_work) pool_request[work_index].func = handle_work_request; pool_request[work_index].args = work; +#if 1 /* JRM */ + curr_io_ops_pending = atomic_fetch_add(&sf_io_ops_pending, 1); + + HDassert(curr_io_ops_pending >= 0); + + if (curr_io_ops_pending >= pool_concurrent_max) { + + HDfprintf(stderr, "\n\n*** curr_io_ops_pending = %d >= pool_concurrent_max = %d ***\n\n", + curr_io_ops_pending, pool_concurrent_max); + } +#endif /* JRM */ hg_thread_pool_post(ioc_thread_pool, &pool_request[work_index++]); hg_thread_mutex_unlock(&ioc_mutex); return 0; @@ -538,3 +660,418 @@ wait_for_thread_main(void) } return 0; } + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc_take_down_thread_pool + * + * Purpose: Destroy the thread pool if it exists. + * + * This function should only be called on shutdown after all + * pending I/O operations have completed. + * + * Return: void + * + * Programmer: JRM -- 10/27/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +void +H5FD_ioc_take_down_thread_pool(void) +{ + HDassert(0 == atomic_load(&sf_io_ops_pending)); + + if (ioc_thread_pool != NULL) { + hg_thread_pool_destroy(ioc_thread_pool); + ioc_thread_pool = NULL; + } + + return; + +} /* H5FD_ioc_take_down_thread_pool() */ + +#if 1 /* JRM */ /* dispatch code -- move elsewhere? */ + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc__alloc_io_q_entry + * + * Purpose: Allocate and initialize an instance of + * H5FD_ioc_io_queue_entry_t. Return pointer to the new + * instance on success, and NULL on failure. + * + * Return: Pointer to new instance of H5FD_ioc_io_queue_entry_t + * on success, and NULL on failure. + * + * Programmer: JRM -- 11/6/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +/* TODO: update function when we decide how to handle error reporting in the IOCs */ +H5FD_ioc_io_queue_entry_t * +H5FD_ioc__alloc_io_q_entry(void) +{ + H5FD_ioc_io_queue_entry_t *q_entry_ptr = NULL; + + q_entry_ptr = (H5FD_ioc_io_queue_entry_t *)HDmalloc(sizeof(H5FD_ioc_io_queue_entry_t)); + + if (q_entry_ptr) { + + q_entry_ptr->magic = H5FD_IOC__IO_Q_ENTRY_MAGIC; + q_entry_ptr->next = NULL; + q_entry_ptr->prev = NULL; + q_entry_ptr->in_progress = FALSE; + q_entry_ptr->counter = 0; + + /* will memcpy the wk_req field, so don't bother to initialize */ + /* will initialize thread_wk field before use */ + +#if H5FD_IOC__COLLECT_STATS + q_entry_ptr->q_time = 0; + q_entry_ptr->dispatch_time = 0; +#endif /* H5FD_IOC__COLLECT_STATS */ + } + + return (q_entry_ptr); + +} /* H5FD_ioc__alloc_io_q_entry() */ + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc__complete_io_q_entry + * + * Purpose: Update the IOC I/O Queue for the completion of an I/O + * request. + * + * To do this: + * + * 1) Remove the entry from the I/O Queue + * + * 2) If so configured, update statistics + * + * 3) Discard the instance of H5FD_ioc_io_queue_entry_t. + * + * Return: void. + * + * Programmer: JRM -- 11/7/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +/* TODO: update function when we decide how to handle error reporting in the IOCs */ +/* TODO: Update for per file I/O Queue */ +void +H5FD_ioc__complete_io_q_entry(H5FD_ioc_io_queue_entry_t *entry_ptr) +{ +#if 0 /* H5FD_IOC__COLLECT_STATS */ + uint64_t queued_time; + uint64_t execution_time; +#endif /* H5FD_IOC__COLLECT_STATS */ + + HDassert(entry_ptr); + HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); + + /* must obtain io_queue_g mutex before deleting and updating stats */ + hg_thread_mutex_lock(&(io_queue_g.q_mutex)); + + HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC); + HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len); + HDassert(io_queue_g.num_in_progress > 0); + + H5FD_IOC__Q_REMOVE(&io_queue_g, entry_ptr); + + io_queue_g.num_in_progress--; + + HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len); + +#if H5FD_IOC__COLLECT_STATS +#if 0 /* no place to collect this yet */ + /* Compute the queued and execution time */ + queued_time = entry_ptr->dispatch_time - entry_ptr->q_time; + execution_time = H5_now_usec() = entry_ptr->dispatch_time; +#endif + + io_queue_g.requests_completed++; + + entry_ptr->q_time = H5_now_usec(); + +#endif /* H5FD_IOC__COLLECT_STATS */ + + hg_thread_mutex_unlock(&(io_queue_g.q_mutex)); + + HDassert(entry_ptr->wk_req.buffer == NULL); + + H5FD_ioc__free_io_q_entry(entry_ptr); + + entry_ptr = NULL; + + return; + +} /* H5FD_ioc__complete_io_q_entry() */ + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc__dispatch_elegible_io_q_entries + * + * Purpose: Scan the IOC I/O Queue for dispatchable entries, and + * dispatch any such entries found. + * + * Do this by scanning the I/O queue from head to tail for + * entries that: + * + * 1) Have not already been dispatched + * + * 2) Either: + * + * a) do not intersect with any prior entries on the + * I/O queue, or + * + * b) Are read requests, and all intersections are with + * prior read requests. + * + * Dispatch any such entries found. + * + * Do this to maintain the POSIX semantics required by + * HDF5. + * + * Return: void. + * + * Programmer: JRM -- 11/7/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +/* TODO: update function when we decide how to handle error reporting in the IOCs */ +/* TODO: Update for per file I/O Queue */ +/* TODO: Keep an eye on statistics and optimize this algorithm if necessary. While it is O(N) + * where N is the number of elements in the I/O Queue if there are are no-overlaps, it + * can become O(N**2) in the worst case. + */ +void +H5FD_ioc__dispatch_elegible_io_q_entries(void) +{ + hbool_t conflict_detected; + int64_t entry_offset; + int64_t entry_len; + int64_t scan_offset; + int64_t scan_len; + H5FD_ioc_io_queue_entry_t *entry_ptr = NULL; + H5FD_ioc_io_queue_entry_t *scan_ptr = NULL; + + hg_thread_mutex_lock(&(io_queue_g.q_mutex)); + + HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC); + + entry_ptr = io_queue_g.q_head; + + /* sanity check on first element in the I/O queue */ + HDassert((entry_ptr == NULL) || (entry_ptr->prev == NULL)); + + while ((entry_ptr) && (io_queue_g.num_pending > 0)) { + + HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); + + if (!entry_ptr->in_progress) { + + entry_offset = entry_ptr->wk_req.header[1]; + entry_len = entry_ptr->wk_req.header[0]; + + conflict_detected = FALSE; + + scan_ptr = entry_ptr->prev; + + HDassert((scan_ptr == NULL) || (scan_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC)); + + while ((scan_ptr) && (!conflict_detected)) { + + /* check for overlaps */ + scan_offset = scan_ptr->wk_req.header[1]; + scan_len = scan_ptr->wk_req.header[0]; + + /* at present, I/O requests are scalar -- i.e. single blocks specified by offset and length. + * when this changes, this if statment will have to be updated accordingly. + */ + if (!(((scan_offset + scan_len) < entry_offset) || + ((entry_offset + entry_len) < scan_offset))) { + + /* the two request overlap -- unless they are both reads, we have detected a conflict */ + + /* TODO: update this if statement when we add collective I/O */ + if ((entry_ptr->wk_req.tag != READ_INDEP) || (scan_ptr->wk_req.tag != READ_INDEP)) { + + conflict_detected = TRUE; + } + } + + scan_ptr = scan_ptr->prev; + } + + if (!conflict_detected) { /* dispatch I/O request */ + + HDassert(scan_ptr == NULL); + HDassert(!entry_ptr->in_progress); + + entry_ptr->in_progress = TRUE; + + HDassert(io_queue_g.num_pending > 0); + + io_queue_g.num_pending--; + io_queue_g.num_in_progress++; + + HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len); + + entry_ptr->thread_wk.func = handle_work_request; + entry_ptr->thread_wk.args = entry_ptr; + +#if H5FD_IOC__COLLECT_STATS + if (io_queue_g.num_in_progress > io_queue_g.max_num_in_progress) { + + io_queue_g.max_num_in_progress = io_queue_g.num_in_progress; + } + + io_queue_g.requests_dispatched++; + + entry_ptr->dispatch_time = H5_now_usec(); + +#endif /* H5FD_IOC__COLLECT_STATS */ + + hg_thread_pool_post(ioc_thread_pool, &(entry_ptr->thread_wk)); + } + } + + entry_ptr = entry_ptr->next; + } + + hg_thread_mutex_unlock(&(io_queue_g.q_mutex)); + +} /* H5FD_ioc__dispatch_elegible_io_q_entries() */ + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc__free_io_q_entry + * + * Purpose: Free the supplied instance of H5FD_ioc_io_queue_entry_t. + * + * Verify that magic field is set to + * H5FD_IOC__IO_Q_ENTRY_MAGIC, and that the next and prev + * fields are NULL. + * + * Return: void. + * + * Programmer: JRM -- 11/6/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +/* TODO: update function when we decide how to handle error reporting in the IOCs */ +void +H5FD_ioc__free_io_q_entry(H5FD_ioc_io_queue_entry_t *q_entry_ptr) +{ + /* use assertions for error checking, since the following should never fail. */ + + HDassert(q_entry_ptr); + HDassert(q_entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); + HDassert(q_entry_ptr->next == NULL); + HDassert(q_entry_ptr->prev == NULL); + HDassert(q_entry_ptr->wk_req.buffer == NULL); + + q_entry_ptr->magic = 0; + + HDfree(q_entry_ptr); + + q_entry_ptr = NULL; + + return; + +} /* H5FD_ioc__free_c_io_q_entry() */ + +/*------------------------------------------------------------------------- + * Function: H5FD_ioc__queue_io_q_entry + * + * Purpose: Add an I/O request to the tail of the IOC I/O Queue. + * + * To do this, we must: + * + * 1) allocate a new instance of H5FD_ioc_io_queue_entry_t + * + * 2) Initialize the new instance and copy the supplied + * instance of sf_work_request_t into it. + * + * 3) Append it to the IOC I/O queue. + * + * Note that this does not dispatch the request even if it + * is eligible for immediate dispatch. This is done with + * a call to H5FD_ioc__dispatch_elegible_io_q_entries(). + * + * Return: void. + * + * Programmer: JRM -- 11/7/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +/* TODO: update function when we decide how to handle error reporting in the IOCs */ +/* TODO: Update for per file I/O Queue */ +void +H5FD_ioc__queue_io_q_entry(sf_work_request_t *wk_req_ptr) +{ + H5FD_ioc_io_queue_entry_t *entry_ptr = NULL; + + HDassert(wk_req_ptr); + HDassert(io_queue_g.magic == H5FD_IOC__IO_Q_MAGIC); + + entry_ptr = H5FD_ioc__alloc_io_q_entry(); + + HDassert(entry_ptr); + HDassert(entry_ptr->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); + + HDmemcpy((void *)(&(entry_ptr->wk_req)), (const void *)wk_req_ptr, sizeof(sf_work_request_t)); + + /* must obtain io_queue_g mutex before appending */ + hg_thread_mutex_lock(&(io_queue_g.q_mutex)); + + entry_ptr->counter = io_queue_g.req_counter++; + + io_queue_g.num_pending++; + + H5FD_IOC__Q_APPEND(&io_queue_g, entry_ptr); + + HDassert(io_queue_g.num_pending + io_queue_g.num_in_progress == io_queue_g.q_len); + +#if H5FD_IOC__COLLECT_STATS + + entry_ptr->q_time = H5_now_usec(); + + if (io_queue_g.q_len > io_queue_g.max_q_len) { + + io_queue_g.max_q_len = io_queue_g.q_len; + } + + if (io_queue_g.num_pending > io_queue_g.max_num_pending) { + + io_queue_g.max_num_pending = io_queue_g.num_pending; + } + + if (entry_ptr->wk_req.tag == READ_INDEP) { + + io_queue_g.ind_read_requests++; + } + else if (entry_ptr->wk_req.tag == WRITE_INDEP) { + + io_queue_g.ind_write_requests++; + } + + io_queue_g.requests_queued++; + +#endif /* H5FD_IOC__COLLECT_STATS */ + + hg_thread_mutex_unlock(&(io_queue_g.q_mutex)); + + return; + +} /* H5FD_ioc__queue_io_q_entry() */ + +#endif /* JRM */ /* dispatch code -- move elsewhere? */ diff --git a/src/H5FDsubfile_int.c b/src/H5FDsubfile_int.c index 0d231fa..ecf706f 100644 --- a/src/H5FDsubfile_int.c +++ b/src/H5FDsubfile_int.c @@ -71,7 +71,7 @@ static stat_record_t subfiling_stats[TOTAL_STAT_COUNT]; #define SF_READ_WAIT_TIME (subfiling_stats[READ_WAIT].total / (double)subfiling_stats[READ_WAIT].op_count) #define SF_QUEUE_DELAYS (subfiling_stats[QUEUE_STAT].total) -#define SF_ALIGNMENT 8 +#define SF_ALIGNMENT 8 static void maybe_initialize_statistics(void) @@ -460,7 +460,9 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid) HDassert((sf_context != NULL)); t0 = MPI_Wtime(); -#if MPI_VERSION >= 3 && MPI_SUBVERSION >= 1 +/* TODO: can't use comm world here -- must use communicator set in the file open */ +//#if MPI_VERSION >= 3 && MPI_SUBVERSION >= 1 +#if 0 /* JRM */ /* Just use regular barrier */ MPI_Request b_req = MPI_REQUEST_NULL; int mpi_status = MPI_Ibarrier(MPI_COMM_WORLD, &b_req); if (mpi_status == MPI_SUCCESS) { @@ -502,6 +504,7 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid) * currently open, we can shutdown the IO concentrator * as part of the file close. */ +#if 0 /* JRM */ /* delete this if all goes well */ if (file_open_count == 1) { /* Shutdown the main IOC thread */ H5FD_ioc_set_shutdown_flag(1); @@ -514,9 +517,37 @@ close__subfiles(subfiling_context_t *sf_context, uint64_t fid) t1 = t2; t_main_exit = t2 - t1; H5FD_ioc_finalize_threads(); + + t2 = MPI_Wtime(); + } +#else /* JRM */ + if (file_open_count == 1) { + + HDassert(0 == atomic_load(&sf_shutdown_flag)); + + /* Shutdown the main IOC thread */ + atomic_init(&sf_shutdown_flag, 1); + + /* Allow ioc_main to exit.*/ + do { + + usleep(20); + + } while (0 != atomic_load(&sf_shutdown_flag)); + + t1 = MPI_Wtime(); + H5FD_ioc_wait_thread_main(); + t2 = MPI_Wtime(); + t1 = t2; + t_main_exit = t2 - t1; + + H5FD_ioc_take_down_thread_pool(); + t2 = MPI_Wtime(); } +#endif /* JRM */ + t_finalize_threads = t2 - t1; if ((subfile_fid = sf_context->sf_fid) > 0) { @@ -654,8 +685,10 @@ sf_write_data(int fd, int64_t file_offset, void *data_buffer, int64_t data_size, ssize_t written = 0; while (bytes_remaining) { if ((written = pwrite(fd, this_data, (size_t)bytes_remaining, file_offset)) < 0) { + int saved_errno = errno; struct stat statbuf; perror("pwrite failed!"); + HDprintf("\nerrno = %d (%s)\n\n", saved_errno, strerror(saved_errno)); fstat(fd, &statbuf); HDprintf("[ioc(%d) %s] pwrite(fd, data, bytes_remaining=%ld, " "file_offset=%ld), fd=%d, st_size=%ld\n", @@ -1502,7 +1535,11 @@ H5FD__open_subfiles(void *_config_info, uint64_t h5_file_id, int flags) /* Ensure that the IOC service won't exit * as we prepare to start up.. */ +#if 0 /* JRM */ /* delete if all goes well */ H5FD_ioc_set_shutdown_flag(0); +#else /* JRM */ + atomic_init(&sf_shutdown_flag, 0); +#endif /* JRM */ /* If we're actually using the IOCs, we will * start the service threads on the identified diff --git a/src/H5FDsubfile_mpi.c b/src/H5FDsubfile_mpi.c index 2204d8d..d6f7cdf 100644 --- a/src/H5FDsubfile_mpi.c +++ b/src/H5FDsubfile_mpi.c @@ -43,6 +43,13 @@ atomic_int sf_file_refcount = 0; atomic_int sf_ioc_fini_refcount = 0; atomic_int sf_ioc_ready = 0; atomic_int sf_shutdown_flag = 0; +#if 1 /* JRM */ +/* sf_io_ops_pending is use to track the number of I/O operations pending so that we can wait + * until all I/O operations have been serviced before shutting down the worker thread pool. + * The value of this variable must always be non-negative. + */ +atomic_int sf_io_ops_pending = 0; +#endif /* JRM */ /* * Structure definitions to enable async io completions @@ -106,9 +113,38 @@ int client_op_index = 0; int client_op_size = 0; client_xfer_info_t *client_ops = NULL; +#if 1 /* JRM */ /* Find a better place for this */ +H5FD_ioc_io_queue_t io_queue_g = { + /* magic = */ H5FD_IOC__IO_Q_MAGIC, + /* q_head = */ NULL, + /* q_tail = */ NULL, + /* num_pending = */ 0, + /* num_in_progress = */ 0, + /* q_len = */ 0, + /* req_counter = */ 0, + /* q_mutex = */ + PTHREAD_MUTEX_INITIALIZER +#if H5FD_IOC__COLLECT_STATS + /* comma to allow further initializers */, + /* max_q_len = */ 0, + /* max_num_pending = */ 0, + /* max_num_in_progress = */ 0, + /* ind_read_requests = */ 0, + /* ind_write_requests = */ 0, + /* requests_queued = */ 0, + /* requests_dispatched = */ 0, + /* requests_completed = */ 0 +#endif /* H5FD_IOC__COLLECT_STATS */ +}; +#endif /* JRM */ /* Find a better place for this */ + /* const char *sf_subfile_prefix = "."; */ -#define MAX_WORK_PER_RANK 2 +#if 0 /* JRM */ +#define MAX_WORK_PER_RANK 2 +#else /* JRM */ +#define MAX_WORK_PER_RANK 4 /* just to see if this changes anything */ +#endif /* JRM */ #define K(n) ((n)*1024) #define M(n) ((n) * (1024 * 1024)) #define DEFAULT_STRIPE_SIZE M(32) @@ -955,6 +991,7 @@ async_completion(void *arg) * Changes: Initial Version/None. *------------------------------------------------------------------------- */ +#if 0 /* JRM */ /* original version */ static int write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offset, int64_t elements, int H5_ATTR_PARALLEL_UNUSED dtype_extent, const void *data, io_req_t **io_req) @@ -1064,8 +1101,167 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse sf_io_request->prev = sf_io_request->next = NULL; /* Start the actual data transfer */ +#if 1 /* JRM */ /* experiment with MPI_Issend() */ status = MPI_Isend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA, sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req); +#else /* JRM */ +#if 1 /* JRM */ /* experiment with MPI_Send */ + status = MPI_Issend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA, + sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req); +#else /* JRM */ + status = MPI_Send(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA, + sf_context->sf_data_comm); +#endif /* JRM */ +#endif /* JRM */ + + /* When we actually have the async IO support, + * the request should be queued before we + * return to the caller. + * Having queued the IO operation, we might want to + * get additional work started before allowing the + * queued IO requests to make further progress and/or + * to complete, so we just return to the caller. + */ + + if (status == MPI_SUCCESS) { + sf_io_request->completion_func.pending = 1; + *io_req = sf_io_request; + } + else { + puts("MPI_Isend must have failed!"); + free(sf_io_request); + *io_req = NULL; + } + return status; +} /* end write__independent_async() */ + +#else /* JRM */ /* modified to use IOC supplied tag for data send */ + +static int +write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offset, int64_t elements, + int H5_ATTR_PARALLEL_UNUSED dtype_extent, const void *data, io_req_t **io_req) +{ + + int ack = 0, active_sends = 0, n_waiting = 0, status = 0; + int64_t stripe_size, ioc_row, start_id, ioc_start, ioc_offset; + int * io_concentrator = NULL; + io_req_t * sf_io_request = NULL; + MPI_Request ackrequest; + int64_t msg[3] = { + 0, + }; + + subfiling_context_t *sf_context = get__subfiling_object(context_id); + assert(sf_context != NULL); + + /* Calculate the IOC that we'll send the IO request to */ + stripe_size = sf_context->sf_stripe_size; + + start_id = offset / stripe_size; + ioc_row = start_id / n_io_concentrators; + ioc_offset = (offset % stripe_size) + (ioc_row * stripe_size); + ioc_start = start_id % n_io_concentrators; + + io_concentrator = sf_context->topology->io_concentrator; + assert(io_concentrator != NULL); + + /* Make sure that we can return a request structure + * if everything is working correctly + */ + assert(io_req); + + /* Prepare an IO request. + * This gets sent to the ioc identified by the file offset. + * (see above: Calculate the IOC)) + */ + msg[0] = elements; + msg[1] = ioc_offset; + msg[2] = context_id; +#ifdef VERBOSE + printf("[%s ioc(%ld)] elements=%ld, offset=%ld, file_offset=%ld\n", __func__, ioc_start, elements, offset, + ioc_offset); + fflush(stdout); +#endif + status = MPI_Send(msg, 3, MPI_INT64_T, io_concentrator[ioc_start], WRITE_INDEP, sf_context->sf_msg_comm); + if (status != MPI_SUCCESS) { + int len; + char estring[MPI_MAX_ERROR_STRING]; + MPI_Error_string(status, estring, &len); + printf("[%d] ERROR! MPI_Send of %ld bytes to %d returned an " + "error(%s)\n", + WORLD_RANK(sf_context), sizeof(msg), io_concentrator[ioc_start], estring); + fflush(stdout); + return -1; + } + else + active_sends++; + /* + * We wait for memory to be allocated on the target IOC so that we can + * start sending user data. Once memory is allocated, we will receive + * an ACK (or NACK) message from the IOC to allow us to proceed. + */ + /* On ACK, IOC will send tag to be used for data send -- need this to + * distinguish between multiple concurrent writes from a single rank. + */ + status = MPI_Irecv(&ack, 1, MPI_INT, io_concentrator[ioc_start], WRITE_INDEP_ACK, + sf_context->sf_data_comm, &ackrequest); + + if (status != MPI_SUCCESS) { + printf("[%d %s] MPI_Irecv failed\n", WORLD_RANK(sf_context), __func__); + fflush(stdout); + return -1; + } + + n_waiting = active_sends; + + while (n_waiting) { + int flag = 0; + status = MPI_Test(&ackrequest, &flag, MPI_STATUS_IGNORE); + if (status == MPI_SUCCESS) { + if (flag == 0) + usleep(0); + else { + n_waiting--; + if (ack == 0) { /* NACK */ + printf("%s - Received NACK!\n", __func__); + } + } + } + } + + /* At this point in the new implementation, we should queue + * the async write so that when the top level VFD tells us + * to complete all pending IO requests, we have all the info + * we need to accomplish that. + */ + sf_io_request = (io_req_t *)malloc(sizeof(io_req_t)); + assert(sf_io_request); + + sf_io_request->completion_func.io_args.ioc = (int)ioc_start; + sf_io_request->completion_func.io_args.context_id = context_id; + sf_io_request->completion_func.io_args.offset = offset; + sf_io_request->completion_func.io_args.elements = elements; + sf_io_request->completion_func.io_args.data = cast_to_void(data); + sf_io_request->completion_func.io_args.io_req = MPI_REQUEST_NULL; + sf_io_request->completion_func.io_function = async_completion; + sf_io_request->completion_func.pending = 0; + + sf_io_request->prev = sf_io_request->next = NULL; + /* Start the actual data transfer */ + +#if 1 /* JRM */ /* experiment with MPI_Issend() */ + /* use ack from IOC as the tag for the send */ + status = MPI_Isend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], ack, + sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req); +#else /* JRM */ +#if 1 /* JRM */ /* experiment with MPI_Send */ + status = MPI_Issend(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA, + sf_context->sf_data_comm, &sf_io_request->completion_func.io_args.io_req); +#else /* JRM */ + status = MPI_Send(data, (int)elements, MPI_BYTE, io_concentrator[ioc_start], WRITE_INDEP_DATA, + sf_context->sf_data_comm); +#endif /* JRM */ +#endif /* JRM */ /* When we actually have the async IO support, * the request should be queued before we @@ -1088,6 +1284,8 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse return status; } /* end write__independent_async() */ +#endif /* JRM */ /* modified to use IOC supplied tag for data send */ + /* * Function: H5FD__write_vector_internal * @@ -1105,7 +1303,7 @@ write__independent_async(int n_io_concentrators, hid_t context_id, int64_t offse */ herr_t H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[], - const void *bufs[] /* data_in */) + const void *bufs[] /* in */) { herr_t ret_value = SUCCEED; hssize_t status = 0, k = 0; @@ -1161,8 +1359,10 @@ H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_ * We can can now try to complete those before returning * to the caller for the next set of IO operations. */ +#if 1 /* JRM */ /* experiment with synchronous send */ if (sf_async_reqs[0]->completion_func.io_function) ret_value = (*sf_async_reqs[0]->completion_func.io_function)(mpi_reqs); +#endif /* JRM */ if (active_reqs) free(active_reqs); @@ -1188,7 +1388,7 @@ errors: */ herr_t H5FD__read_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[], - void *bufs[] /* data_out */) + void *bufs[] /* out */) { herr_t ret_value = SUCCEED; hssize_t status = 0, k = 0; @@ -1265,6 +1465,7 @@ sf_truncate(hid_t h5_fid, haddr_t H5_ATTR_PARALLEL_UNUSED addr) return 0; } +#if 1 /* JRM */ /* delete this if all goes well */ int sf_shutdown_local_ioc(hid_t fid) { @@ -1276,7 +1477,40 @@ sf_shutdown_local_ioc(hid_t fid) } return 0; } +#else /* JRM */ + +/*------------------------------------------------------------------------- + * Function: sf_shutdown_local_ioc() + * + * Purpose: Set the sf_shutdown_flag, and wait until the local + * I/O Concentrator shuts down. + * + * Return: Void + * + * Errors: None + * + * Programmer: JRM -- 10/26/21 + * + * Changes: None. + * + *------------------------------------------------------------------------- + */ +void +sf_shutdown_local_ioc(hid_t fid) +{ + hid_t context_id = fid_map_to_context((uint64_t)fid); + subfiling_context_t *sf_context = get__subfiling_object(context_id); + assert(sf_context != NULL); + if (sf_context->topology->rank_is_ioc) { + atomic_fetch_add(&sf_shutdown_flag, 1); + } + return; + +} /* sf_shutdown_local_ioc() */ +#endif /* JRM */ + +#if 0 /* JRM */ /* original version of ioc_main() */ /*------------------------------------------------------------------------- * Function: Public/IOC ioc_main * @@ -1381,9 +1615,22 @@ ioc_main(int64_t context_id) atomic_init(&sf_ioc_fini_refcount, 0); atomic_init(&sf_shutdown_flag, 0); atomic_init(&sf_ioc_ready, 1); +#if 1 /* JRM */ + /* this variable is incremented by tpool_add_work(), and decremented when the + * received I/O request is completed. + * + * On shutdown, we must wait until this field is decremented to zero before + * taking down the thread pool. + */ + atomic_init(&sf_io_ops_pending, 0); +#endif /* JRM */ shutdown_requested = 0; +#if 0 /* JRM */ while (!shutdown_requested || sf_work_pending) { +#else /* JRM */ + while ( ( ! shutdown_requested ) || ( 0 < atomic_load(&sf_io_ops_pending) ) || sf_work_pending) { +#endif /* JRM */ flag = 0; ret = MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, context->sf_msg_comm, &flag, &status); if ((ret == MPI_SUCCESS) && (flag != 0)) { @@ -1394,6 +1641,14 @@ ioc_main(int64_t context_id) int source = status.MPI_SOURCE; int tag = status.MPI_TAG; +#if 1 /* JRM */ + if ( ( tag != READ_INDEP ) && ( tag != WRITE_INDEP ) ) { + + HDprintf("\n\nioc_main: recieved non READ_INDEP / WRITE_INDEP mssg. tag = %d.\n\n", tag); + HDfflush(stdout); + } +#endif /* JRM */ + MPI_Get_count(&status, MPI_BYTE, &count); if (count > request_size) { msg = (sf_work_request_t *)malloc((size_t)count); @@ -1456,12 +1711,145 @@ ioc_main(int64_t context_id) return 0; } +#else /* JRM */ /* re-written version of ioc_main() */ + +int +ioc_main(int64_t context_id) +{ + int subfile_rank; + int flag, ret; + int max_work_depth; + int shutdown_requested; + MPI_Status status, msg_status; + sf_work_request_t wk_req; + useconds_t delay = 20; + subfiling_context_t *context = get__subfiling_object(context_id); + double queue_start_time; + + assert(context != NULL); + /* We can't have opened any files at this point.. + * The file open approach has changed so that the normal + * application rank (hosting this thread) does the file open. + * We can simply utilize the file descriptor (which should now + * represent an open file). + */ + + subfile_rank = context->sf_group_rank; + + /* zero out the wk_req, since the received message will typically be smaller + * than sizeof(sf_work_request_t). + */ + HDmemset(&wk_req, 0, sizeof(sf_work_request_t)); + + /* Initialize atomic vars */ + /* JRM */ /* delete most of these? */ + atomic_init(&sf_workinprogress, 0); + atomic_init(&sf_work_pending, 0); + atomic_init(&sf_file_close_count, 0); + atomic_init(&sf_file_refcount, 0); + atomic_init(&sf_ioc_fini_refcount, 0); + atomic_init(&sf_shutdown_flag, 0); + atomic_init(&sf_ioc_ready, 1); +#if 1 /* JRM */ + /* this variable is incremented by tpool_add_work(), and decremented when the + * received I/O request is completed. + * + * On shutdown, we must wait until this field is decremented to zero before + * taking down the thread pool. + */ + atomic_init(&sf_io_ops_pending, 0); +#endif /* JRM */ + shutdown_requested = 0; + + while ((!shutdown_requested) || (0 < atomic_load(&sf_io_ops_pending)) || sf_work_pending) { + + flag = 0; + ret = MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, context->sf_msg_comm, &flag, &status); + if ((ret == MPI_SUCCESS) && (flag != 0)) { + sf_work_request_t *msg = NULL; + int count; + int index = 0; + int request_size = (int)sizeof(sf_work_request_t); + int source = status.MPI_SOURCE; + int tag = status.MPI_TAG; + +#if 1 /* JRM */ + if ((tag != READ_INDEP) && (tag != WRITE_INDEP)) { + + HDprintf("\n\nioc_main: recieved non READ_INDEP / WRITE_INDEP mssg. tag = %d.\n\n", tag); + HDfflush(stdout); + } +#endif /* JRM */ + + MPI_Get_count(&status, MPI_BYTE, &count); + + /* convert this assert to a proper error message once we decide how to handle error + * reporting from the I/O concentrator. + */ + HDassert(count <= sizeof(sf_work_request_t)); + + /* zero out the wk_req, since the received message will typically be smaller + * than sizeof(sf_work_request_t). + */ + HDmemset(&wk_req, 0, sizeof(sf_work_request_t)); + + ret = MPI_Recv(&wk_req, count, MPI_BYTE, source, tag, context->sf_msg_comm, &msg_status); + + if (MPI_SUCCESS == ret) { + + int howmany = 0; + + MPI_Get_count(&msg_status, MPI_BYTE, &howmany); + + if (howmany != count) { + printf("%s: MPI_Recv completed %d bytes of %d\n", __func__, howmany, count); + fflush(stdout); + } + } + + queue_start_time = MPI_Wtime(); + + if (ret == MPI_SUCCESS) { + + int curr_io_ops_pending; + + wk_req.tag = tag; + wk_req.source = source; + wk_req.subfile_rank = subfile_rank; + wk_req.start_time = queue_start_time; + wk_req.buffer = NULL; + + curr_io_ops_pending = atomic_fetch_add(&sf_io_ops_pending, 1); + + HDassert(curr_io_ops_pending >= 0); + + H5FD_ioc__queue_io_q_entry(&wk_req); + + H5FD_ioc__dispatch_elegible_io_q_entries(); + } + } + else { + usleep(delay); + } + shutdown_requested = atomic_load(&sf_shutdown_flag); + } + + /* Reset the shutdown flag */ + atomic_init(&sf_shutdown_flag, 0); + + return 0; + +} /* ioc_main() */ + +#endif /* JRM */ /* re-written versin of ioc_main() */ + /* ========================================= Private helper functions ========================================= */ +#if 0 /* JRM */ /* original version */ static int send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm) { @@ -1476,6 +1864,27 @@ send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm) #endif return ret; } +#else /* JRM */ /* version modified to send expected data send tag */ + +static int +send_ack__(int target, int subfile_rank, int tag, MPI_Comm comm, int ack) +{ + + HDassert(ack > 0); + + int ret = MPI_Send(&ack, 1, MPI_INT, target, tag, comm); +#ifndef NDEBUG + if (sf_verbose_flag) { + if (sf_logfile) { + fprintf(sf_logfile, "[ioc(%d): Sending ACK to MPI_rank(%d)\n", subfile_rank, target); + } + } +#endif + return ret; + +} /* send_ack__() */ + +#endif /* JRM */ /* version modified to send expected data send tag */ static int send_nack__(int target, int subfile_rank, int tag, MPI_Comm comm) @@ -1521,10 +1930,14 @@ from the thread pool threads... * *------------------------------------------------------------------------- */ +#if 0 /* JRM */ /* original version */ int queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm) { int fd; +#if 1 /* JRM */ + int actual_bytes_received; +#endif /* JRM */ char * recv_buffer = NULL; int ret = MPI_SUCCESS; MPI_Status msg_status; @@ -1572,6 +1985,21 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm send_ack__(source, subfile_rank, WRITE_INDEP_ACK, comm); ret = MPI_Recv(recv_buffer, (int)data_size, MPI_BYTE, source, WRITE_INDEP_DATA, comm, &msg_status); +#if 1 /* JRM */ + if ( MPI_SUCCESS != MPI_Get_count(&msg_status, MPI_BYTE, &actual_bytes_received) ) { + + HDprintf("\n\nqueue_write_indep(): can't get actual bytes receive.\n\n"); + HDfflush(stdout); + + } else if ( actual_bytes_received != data_size ) { + + HDprintf("\n\nqueue_write_indep(): message size mismatch -- expected = %ld, actual = %d.\n\n", + data_size, actual_bytes_received); + HDfflush(stdout); + + } +#endif /* JRM */ + t_end = MPI_Wtime(); t_wait = t_end - t_start; sf_write_wait_time += t_wait; @@ -1635,6 +2063,140 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm return 0; } +#else /* JRM */ /* version modified for new dispatch code */ + +int +queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm, int counter) +{ + int fd; +#if 1 /* JRM */ + int actual_bytes_received; +#endif /* JRM */ + int rcv_tag = ((counter & 0xFFFF) << 12) | WRITE_INDEP_DATA; + char * recv_buffer = NULL; + int ret = MPI_SUCCESS; + MPI_Status msg_status; + int64_t data_size = msg->header[0]; + int64_t file_offset = msg->header[1]; + int64_t file_context_id = msg->header[2]; + double t_start, t_end; + double t_write, t_wait, t_queue_delay; + subfiling_context_t *sf_context = get__subfiling_object(file_context_id); + int64_t stripe_id = file_offset + data_size; + haddr_t sf_eof; + assert(sf_context != NULL); + + sf_eof = (haddr_t)(stripe_id % sf_context->sf_stripe_size); + stripe_id /= sf_context->sf_stripe_size; + sf_eof += (haddr_t)((stripe_id * sf_context->sf_blocksize_per_stripe) + sf_context->sf_base_addr); + + /* flag that we've attempted to write data to the file */ + sf_context->sf_write_count++; + /* For debugging performance */ + sf_write_ops++; + + t_start = MPI_Wtime(); + t_queue_delay = t_start - msg->start_time; + +#ifndef NDEBUG + if (sf_verbose_flag) { + if (sf_logfile) { + fprintf(sf_logfile, + "[ioc(%d) %s]: msg from %d: datasize=%ld\toffset=%ld, " + "queue_delay = %lf seconds\n", + subfile_rank, __func__, source, data_size, file_offset, t_queue_delay); + } + } +#endif + + if (recv_buffer == NULL) { + if ((recv_buffer = (char *)malloc((size_t)data_size)) == NULL) { + perror("malloc"); + send_nack__(source, subfile_rank, WRITE_INDEP_ACK, comm); + return -1; + } + } + + send_ack__(source, subfile_rank, WRITE_INDEP_ACK, comm, rcv_tag); + ret = MPI_Recv(recv_buffer, (int)data_size, MPI_BYTE, source, rcv_tag, comm, &msg_status); + +#if 1 /* JRM */ + if (MPI_SUCCESS != MPI_Get_count(&msg_status, MPI_BYTE, &actual_bytes_received)) { + + HDprintf("\n\nqueue_write_indep(): can't get actual bytes receive.\n\n"); + HDfflush(stdout); + } + else if (actual_bytes_received != data_size) { + + HDprintf("\n\nqueue_write_indep(): message size mismatch -- expected = %ld, actual = %d.\n\n", + data_size, actual_bytes_received); + HDfflush(stdout); + } +#endif /* JRM */ + + t_end = MPI_Wtime(); + t_wait = t_end - t_start; + sf_write_wait_time += t_wait; + t_start = t_end; +#ifndef NDEBUG + if (sf_verbose_flag) { + if (sf_logfile) { + fprintf(sf_logfile, "[ioc(%d) %s] MPI_Recv(%ld bytes, from = %d) status = %d\n", subfile_rank, + __func__, data_size, source, ret); + } + } +#endif + + if (ret != MPI_SUCCESS) { + int len; + char estring[MPI_MAX_ERROR_STRING]; + MPI_Error_string(ret, estring, &len); + printf("[ioc(%d) %s] MPI_ERROR(%d)! MPI_Recv of %ld bytes from %d " + "returned an error(%s)\n", + subfile_rank, __func__, msg_status.MPI_ERROR, data_size, source, estring); + fflush(stdout); + return ret; + } + + fd = sf_context->sf_fid; + + if (fd < 0) { + printf("[ioc(%d)] WARNING: %s called while subfile_fid = %d (closed)\n", subfile_rank, __func__, fd); + fflush(stdout); + } + else { + if (sf_write_data(fd, file_offset, recv_buffer, data_size, subfile_rank) < 0) { + free(recv_buffer); + recv_buffer = NULL; + printf("[ioc(%d) %s] sf_write_data returned an error!\n", subfile_rank, __func__); + fflush(stdout); + return -1; + } + t_end = MPI_Wtime(); + t_write = t_end - t_start; + sf_pwrite_time += t_write; + } + + sf_queue_delay_time += t_queue_delay; + + /* Done... */ + if (sf_eof > sf_context->sf_eof) + sf_context->sf_eof = sf_eof; + +#ifdef VERBOSE + printf("[ioc(%d)] %s local sf_eof = %ld sf_context=%p\n", subfile_rank, __func__, sf_context->sf_eof, + (void *)sf_context); + fflush(stdout); +#endif + if (recv_buffer) { + free(recv_buffer); + } + return 0; + +} /* queue_write_indep() */ + +#endif /* JRM */ /* version modified for new dispatch code */ + /*------------------------------------------------------------------------- * Function: Public/IOC queue_read_indep * @@ -1655,6 +2217,93 @@ queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm * *------------------------------------------------------------------------- */ +#if 0 /* JRM */ /* original version */ +int +queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm) +{ + int fd; + char * send_buffer = NULL; + int ret = MPI_SUCCESS; + int64_t data_size = msg->header[0]; + int64_t file_offset = msg->header[1]; + int64_t file_context_id = msg->header[2]; + double t_start, t_end; + double t_read, t_queue_delay; + + subfiling_context_t *sf_context = get__subfiling_object(file_context_id); + assert(sf_context != NULL); + + sf_context->sf_read_count++; + /* For debugging performance */ + sf_read_ops++; + + t_start = MPI_Wtime(); + t_queue_delay = t_start - msg->start_time; + + fd = sf_context->sf_fid; + if (fd < 0) { + printf("[ioc(%d) %s] subfile(%d) file descriptor not valid\n", subfile_rank, __func__, fd); + return -1; + } + +#ifndef NDEBUG + if (sf_verbose_flag && (sf_logfile != NULL)) { + fprintf(sf_logfile, + "[ioc(%d) %s] msg from %d: datasize=%ld\toffset=%ld " + "queue_delay=%lf seconds\n", + subfile_rank, __func__, source, data_size, file_offset, t_queue_delay); + } +#endif + if ((send_buffer = (char *)malloc((size_t)data_size)) == NULL) { + perror("malloc"); + return -1; + } + + if (sf_read_data(fd, file_offset, send_buffer, data_size, subfile_rank) < 0) { + printf("[%d] %s - sf_read_data fd=%d for source(%d) returned an error!\n", subfile_rank, __func__, fd, + source); + fflush(stdout); + /* + * Should send a zero(0) byte message to the client to prevent + * it from hanging... + */ + MPI_Send(send_buffer, 0, MPI_BYTE, source, READ_INDEP_DATA, comm); + free(send_buffer); + return -1; + } + + ret = MPI_Send(send_buffer, (int)data_size, MPI_BYTE, source, READ_INDEP_DATA, comm); + if (ret != MPI_SUCCESS) { + int len; + char estring[MPI_MAX_ERROR_STRING]; + MPI_Error_string(ret, estring, &len); + printf("[ioc(%d)] ERROR! MPI_Send of %ld bytes to %d returned an " + "error(%s)\n", + subfile_rank, data_size, source, estring); + fflush(stdout); + return ret; + } + t_end = MPI_Wtime(); + t_read = t_end - t_start; + sf_pread_time += t_read; + sf_queue_delay_time += t_queue_delay; + +#ifndef NDEBUG + if (sf_verbose_flag && (sf_logfile != NULL)) { + fprintf(sf_logfile, "[ioc(%d)] MPI_Send to source(%d) completed\n", subfile_rank, source); + } +#endif + + if (send_buffer) { + free(send_buffer); + send_buffer = NULL; + } + + return 0; +} /* end queue_read_indep() */ + +#else /* JRM */ /* version modified for new dispatch code */ + int queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm) { @@ -1739,6 +2388,8 @@ queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm return 0; } /* end queue_read_indep() */ +#endif /* JRM */ /* version modified for new dispatch code */ + /* --------------------------------------------------- * Helper function for subfiling_open_file() see below * Subfiles should be located in the same directory @@ -1824,7 +2475,7 @@ get__subfile_name(subfiling_context_t *sf_context, int64_t h5_file_id, int subfi int subfiling_open_file(sf_work_request_t *msg, int subfile_rank, int flags) { - int errors = 0; + int errors = 0; char filepath[PATH_MAX]; char linebuf[PATH_MAX]; diff --git a/src/H5FDsubfiling.c b/src/H5FDsubfiling.c index b19df57..cd7739d 100644 --- a/src/H5FDsubfiling.c +++ b/src/H5FDsubfiling.c @@ -898,8 +898,8 @@ done: static herr_t H5FD__subfiling_close(H5FD_t *_file) { - H5FD_subfiling_t *file_ptr = (H5FD_subfiling_t *)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_subfiling_t * file_ptr = (H5FD_subfiling_t *)_file; + herr_t ret_value = SUCCEED; /* Return value */ subfiling_context_t *sf_context = NULL; FUNC_ENTER_NOAPI_NOINIT @@ -1017,13 +1017,18 @@ done: * Purpose: Set the flags that this VFL driver is capable of supporting. * (listed in H5FDpublic.h) * + * For now, duplicate the flags used for the MPIO VFD. + * Revisit this when we have a version of the subfiling VFD + * that is usable in serial builds. + * * Return: SUCCEED (Can't fail) * - * Programmer: Quincey Koziol - * Friday, August 25, 2000 + * Programmer: John Mainzer + * 11/15/21 * *------------------------------------------------------------------------- */ +#if 0 /* JRM */ /* original version -- delete if all goes well */ static herr_t H5FD__subfiling_query(const H5FD_t *_file, unsigned long *flags /* out */) { @@ -1062,6 +1067,28 @@ H5FD__subfiling_query(const H5FD_t *_file, unsigned long *flags /* out */) FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5FD_subfiling_query() */ +#else /* JRM */ /* new version copied from MPIO VFD */ + +static herr_t +H5FD__subfiling_query(const H5FD_t H5_ATTR_UNUSED *_file, unsigned long *flags /* out */) +{ + FUNC_ENTER_STATIC_NOERR + + /* Set the VFL feature flags that this driver supports */ + if (flags) { + *flags = 0; + *flags |= H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */ + *flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */ + // *flags |= H5FD_FEAT_HAS_MPI; /* This driver uses MPI */ + *flags |= H5FD_FEAT_ALLOCATE_EARLY; /* Allocate space early instead of late */ + *flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default + VFD */ + } + + FUNC_LEAVE_NOAPI(SUCCEED) +} /* end H5FD__mpio_query() */ + +#endif /* JRM */ /* new version copied from MPIO VFD */ /*------------------------------------------------------------------------- * Function: H5FD_subfiling_get_eoa @@ -1577,15 +1604,15 @@ H5FD__subfiling_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_AT size, /* (in) IO size */ 1); /* (in) data extent of the 'type' assumes byte */ #else /* JRM */ - count = init__indep_io(sf_context, /* We use the context to look up config info */ + count = init__indep_io(sf_context, /* We use the context to look up config info */ max_depth, ioc_total, (int64_t *)source_data_offset, /* (out) Memory offset */ (int64_t *)sf_data_size, /* (out) Length of this contiguous block */ (int64_t *)sf_offset, /* (out) File offset */ - &ioc_start, /* (out) IOC index corresponding to starting offset */ - &ioc_count, /* (out) number of actual IOCs used */ - offset, /* (in) Starting file offset */ - (int64_t)size, /* (in) IO size */ - 1); /* (in) data extent of the 'type' assumes byte */ + &ioc_start, /* (out) IOC index corresponding to starting offset */ + &ioc_count, /* (out) number of actual IOCs used */ + offset, /* (in) Starting file offset */ + (int64_t)size, /* (in) IO size */ + 1); /* (in) data extent of the 'type' assumes byte */ #endif /* JRM */ next = ioc_start; @@ -1626,7 +1653,7 @@ H5FD__subfiling_write(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_AT #if 0 /* JRM */ int vectorlen = ioc_count; #else /* JRM */ - uint32_t vectorlen = (uint32_t)ioc_count; + uint32_t vectorlen = (uint32_t)ioc_count; #endif /* JRM */ /* @@ -1725,7 +1752,9 @@ done: /*------------------------------------------------------------------------- * Function: H5FD__subfile_read_vector (internal function) * - * Purpose: Perform count reads from the specified file at the offsets + * Purpose: Vector Read function for the sub-filing VFD. + * + * Perform count reads from the specified file at the offsets * provided in the addrs array, with the lengths and memory * types provided in the sizes and types arrays. Data read * is returned in the buffers provided in the bufs array. @@ -1741,10 +1770,21 @@ done: * Failure: FAIL * The contents of supplied buffers are undefined. * - * Programmer: JRM -- 6/10/20 + * Programmer: RAW -- ??/??/21 * * Changes: None. * + * Notes: Thus function doesn't actually implement vector read. + * Instead, it comverts the vector read call into a series + * of scalar read calls. Fix this when time permits. + * + * Also, it didn't support the sizes and types optimization. + * I implemented a version of this which is more generous + * than that currently defined in the RFC. This is good + * enough for now, but the final version should follow + * the RFC. + * JRM -- 10/5/21 + * *------------------------------------------------------------------------- */ static herr_t @@ -1787,10 +1827,64 @@ H5FD__subfiling_read_vector(H5FD_t *_file, hid_t dxpl_id, uint32_t count, H5FD_m /* Set DXPL for operation */ H5CX_set_dxpl(dxpl_id); + + /* TODO: setup real support for vector I/O */ if (file_ptr->fa.require_ioc) { - int k; + + hbool_t extend_sizes = FALSE; + hbool_t extend_types = FALSE; + int k; + size_t size; + H5FD_mem_t type; + haddr_t eoa; + + HDassert((count == 0) || (sizes[0] != 0)); + HDassert((count == 0) || (types[0] != H5FD_MEM_NOLIST)); + + /* Note that the following code does not let the sub-filing VFD participate + * in collective calls when thre is no data to write. This is not an issue + * now, as we don't do anything special with collective operations. However + * this needs to be fixed. + */ for (k = 0; k < (int)count; k++) { - if (H5FD__subfiling_read(_file, types[k], dxpl_id, addrs[k], sizes[k], bufs[k]) != SUCCEED) + + if (!extend_sizes) { + + if (sizes[k] == 0) { + + extend_sizes = TRUE; + size = sizes[k - 1]; + } + else { + + size = sizes[k]; + } + } + + if (!extend_types) { + + if (types[k] == H5FD_MEM_NOLIST) { + + extend_types = TRUE; + type = types[k - 1]; + } + else { + + type = types[k]; + } + } + + if (HADDR_UNDEF == (eoa = H5FD__subfiling_get_eoa(_file, type))) + HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed") + + if ((addrs[k] + size) > eoa) + + HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, + "addr overflow, addrs[%d] = %llu, sizes[%d] = %llu, eoa = %llu", (int)k, + (unsigned long long)(addrs[k]), (int)k, (unsigned long long)size, + (unsigned long long)eoa) + + if (H5FD__subfiling_read(_file, type, dxpl_id, addrs[k], size, bufs[k]) != SUCCEED) HGOTO_ERROR(H5E_VFL, H5E_READERROR, FAIL, "file vector read request failed") } } @@ -1826,10 +1920,21 @@ done: * input arguments are not valid, or the actual * subfiling writes have failed for some reason. * - * Programmer: JRM -- 6/10/20 + * Programmer: RAW -- ??/??/21 * * Changes: None. * + * Notes: Thus function doesn't actually implement vector write. + * Instead, it comverts the vector write call into a series + * of scalar read calls. Fix this when time permits. + * + * Also, it didn't support the sizes and types optimization. + * I implemented a version of this which is more generous + * than that currently defined in the RFC. This is good + * enough for now, but the final version should follow + * the RFC. + * JRM -- 10/5/21 + * *------------------------------------------------------------------------- */ static herr_t @@ -1873,9 +1978,61 @@ H5FD__subfiling_write_vector(H5FD_t *_file, hid_t dxpl_id, uint32_t count, H5FD_ } /* Call the subfiling IOC write*/ if (file_ptr->fa.require_ioc) { - int k; + + hbool_t extend_sizes = FALSE; + hbool_t extend_types = FALSE; + int k; + size_t size; + H5FD_mem_t type; + haddr_t eoa; + + HDassert((count == 0) || (sizes[0] != 0)); + HDassert((count == 0) || (types[0] != H5FD_MEM_NOLIST)); + + /* Note that the following code does not let the sub-filing VFD participate + * in collective calls when thre is no data to write. This is not an issue + * now, as we don't do anything special with collective operations. However + * this needs to be fixed. + */ for (k = 0; k < (int)count; k++) { - if (H5FD__subfiling_write(_file, types[k], dxpl_id, addrs[k], sizes[k], bufs[k]) != SUCCEED) + + if (!extend_sizes) { + + if (sizes[k] == 0) { + + extend_sizes = TRUE; + size = sizes[k - 1]; + } + else { + + size = sizes[k]; + } + } + + if (!extend_types) { + + if (types[k] == H5FD_MEM_NOLIST) { + + extend_types = TRUE; + type = types[k - 1]; + } + else { + + type = types[k]; + } + } + + if (HADDR_UNDEF == (eoa = H5FD__subfiling_get_eoa(_file, type))) + HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed") + + if ((addrs[k] + size) > eoa) + + HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, + "addr overflow, addrs[%d] = %llu, sizes[%d] = %llu, eoa = %llu", (int)k, + (unsigned long long)(addrs[k]), (int)k, (unsigned long long)size, + (unsigned long long)eoa) + + if (H5FD__subfiling_write(_file, type, dxpl_id, addrs[k], size, bufs[k]) != SUCCEED) HGOTO_ERROR(H5E_VFL, H5E_WRITEERROR, FAIL, "file vector write request failed") } } diff --git a/src/H5FDsubfiling.h b/src/H5FDsubfiling.h index 93a2b0a..c7ab265 100644 --- a/src/H5FDsubfiling.h +++ b/src/H5FDsubfiling.h @@ -20,6 +20,14 @@ #ifndef H5FDsubfiling_H #define H5FDsubfiling_H +#if 1 /* JRM */ /* For now, H5FDsubfiling_priv.h needs mercury. Since the code that needs it will \ + * move to its own header, just hack it for now. \ + */ +#include "mercury_thread.h" +#include "mercury_thread_mutex.h" +#include "mercury_thread_pool.h" +#endif /* JRM */ + #include "H5FDsubfiling_priv.h" #define H5FD_SUBFILING (H5FD_subfiling_init()) @@ -113,6 +121,8 @@ * The full pathname of the user HDF5 file. * +WARNING -- this code is commented out + #define H5FD_SUBFILING_PATH_MAX 4096 typedef struct config_common_t { @@ -234,13 +244,20 @@ H5_DLL herr_t H5FD__write_vector(hid_t h5_fid, hssize_t count, haddr_t *addrs, h H5_DLL int H5FD__truncate(hid_t h5_fid, haddr_t addr); H5_DLL int H5FD__shutdown_local_ioc(hid_t fid); H5_DLL void manage_client_logfile(int client_rank, int flag_value); +#if 0 /* JRM */ H5_DLL int initialize_ioc_threads(void *sf_context); +#endif /* JRM */ H5_DLL herr_t H5FD__write_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[], const void *bufs[] /* data_in */); H5_DLL herr_t H5FD__read_vector_internal(hid_t h5_fid, hssize_t count, haddr_t addrs[], size_t sizes[], void *bufs[] /* data_out */); +#if 0 /* JRM */ H5_DLL int queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm); +#else /* JRM */ +H5_DLL int queue_write_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm, + int counter); +#endif /* JRM */ H5_DLL int queue_read_indep(sf_work_request_t *msg, int subfile_rank, int source, MPI_Comm comm); diff --git a/src/H5FDsubfiling_priv.h b/src/H5FDsubfiling_priv.h index 4753423..4ca63d0 100644 --- a/src/H5FDsubfiling_priv.h +++ b/src/H5FDsubfiling_priv.h @@ -213,11 +213,24 @@ typedef struct _info_header { /* Header for a driver info message */ /* Bit 3 SET indicates collectives */ #define COLL_FUNC (0x1 << 3) +#if 0 /* JRM */ /* original version */ + #define ACK_PART (0x0acc << 8) #define DATA_PART (0xd8da << 8) #define READY (0xfeed << 8) #define COMPLETED (0xfed1 << 8) +#else /* JRM */ /* reduce size to make space for counters to disambiguate multiple concurrent requests from \ + same rank */ + +#define ACK_PART (0x01 << 8) +#define DATA_PART (0x02 << 8) +#define READY (0x04 << 8) +#define COMPLETED (0x08 << 8) + +#endif /* JRM */ /* reduce size to make space for counters to disambiguate multiple concurrent requests from \ + same rank */ + #define READ_INDEP (READ_OP) #define READ_COLL (COLL_FUNC | READ_OP) #define WRITE_INDEP (WRITE_OP) @@ -363,6 +376,377 @@ extern int sf_verbose_flag; extern atomic_int sf_work_pending; extern atomic_int sf_file_open_count; extern atomic_int sf_file_close_count; +extern atomic_int sf_shutdown_flag; +extern atomic_int sf_io_ops_pending; + +#if 1 /* JRM */ /* this belongs in an IOC private header file */ + +#define H5FD_IOC__COLLECT_STATS TRUE + +/**************************************************************************** + * + * IOC I/O Queue management macros: + * + * The following macros perform the necessary operations on the IOC I/O + * Queue, which is implemented as a doubly linked list of instances of + * H5FD_ioc_io_queue_entry_t. + * + * WARNING: q_ptr->q_mutex must be held when these macros are executed.. + * + * At present, the necessary operations are append (insert an entry at the + * end of the queue), and delete (remove an entry from the queue). + * + * At least initially, all sanity checking is done with asserts, as the + * the existing I/O concentrator code is not well integrated into the HDF5 + * error reporting system. This will have to be revisited for a production + * version, but it should be suficient for now. + * + * JRM -- 11/2/21 + * + ****************************************************************************/ + +/* clang-format off */ + +#define H5FD_IOC__Q_APPEND(q_ptr, entry_ptr) \ +do { \ + HDassert(q_ptr); \ + HDassert((q_ptr)->magic == H5FD_IOC__IO_Q_MAGIC); \ + HDassert((((q_ptr)->q_len == 0) && ((q_ptr)->q_head == NULL) && ((q_ptr)->q_tail == NULL)) || \ + (((q_ptr)->q_len > 0) && ((q_ptr)->q_head != NULL) && ((q_ptr)->q_tail != NULL))); \ + HDassert(entry_ptr); \ + HDassert((entry_ptr)->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); \ + HDassert((entry_ptr)->next == NULL); \ + HDassert((entry_ptr)->prev == NULL); \ + HDassert((entry_ptr)->in_progress == FALSE); \ + \ + if ( ((q_ptr)->q_head) == NULL ) \ + { \ + ((q_ptr)->q_head) = (entry_ptr); \ + ((q_ptr)->q_tail) = (entry_ptr); \ + } \ + else \ + { \ + ((q_ptr)->q_tail)->next = (entry_ptr); \ + (entry_ptr)->prev = ((q_ptr)->q_tail); \ + ((q_ptr)->q_tail) = (entry_ptr); \ + } \ + ((q_ptr)->q_len)++; \ +} while ( FALSE ) /* H5FD_IOC__Q_APPEND() */ + +#define H5FD_IOC__Q_REMOVE(q_ptr, entry_ptr) \ +do { \ + HDassert(q_ptr); \ + HDassert((q_ptr)->magic == H5FD_IOC__IO_Q_MAGIC); \ + HDassert((((q_ptr)->q_len == 1) && ((q_ptr)->q_head ==((q_ptr)->q_tail)) && ((q_ptr)->q_head == (entry_ptr))) || \ + (((q_ptr)->q_len > 0) && ((q_ptr)->q_head != NULL) && ((q_ptr)->q_tail != NULL))); \ + HDassert(entry_ptr); \ + HDassert((entry_ptr)->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); \ + HDassert((((q_ptr)->q_len == 1) && ((entry_ptr)->next == NULL) && ((entry_ptr)->prev == NULL)) || \ + (((q_ptr)->q_len > 1) && (((entry_ptr)->next != NULL) || ((entry_ptr)->prev != NULL)))); \ + HDassert((entry_ptr)->in_progress == TRUE); \ + \ + { \ + if ( (((q_ptr)->q_head)) == (entry_ptr) ) \ + { \ + (((q_ptr)->q_head)) = (entry_ptr)->next; \ + if ( (((q_ptr)->q_head)) != NULL ) \ + (((q_ptr)->q_head))->prev = NULL; \ + } \ + else \ + { \ + (entry_ptr)->prev->next = (entry_ptr)->next; \ + } \ + if (((q_ptr)->q_tail) == (entry_ptr) ) \ + { \ + ((q_ptr)->q_tail) = (entry_ptr)->prev; \ + if ( ((q_ptr)->q_tail) != NULL ) \ + ((q_ptr)->q_tail)->next = NULL; \ + } \ + else \ + { \ + (entry_ptr)->next->prev = (entry_ptr)->prev; \ + } \ + (entry_ptr)->next = NULL; \ + (entry_ptr)->prev = NULL; \ + ((q_ptr)->q_len)--; \ + } \ +} while ( FALSE ) /* H5FD_IOC__Q_REMOVE() */ + +/* clang-format on */ + +/**************************************************************************** + * + * structure H5FD_ioc_io_queue_entry + * + * magic: Unsigned 32 bit integer always set to H5FD_IOC__IO_Q_ENTRY_MAGIC. + * This field is used to validate pointers to instances of + * H5FD_ioc_io_queue_entry_t. + * + * next: Next pointer in the doubly linked list used to implement + * the IOC I/O Queue. This field points to the next entry + * in the queue, or NULL if there is no next entry. + * + * prev: Prev pointer in the doubly linked list used to implement + * the IOC I/O Queue. This field points to the previous entry + * in the queue, or NULL if there is no previous entry. + * + * in_progress: Boolean flag that must be FALSE when the entry is insterted + * into the IOC I/O Queue, and set to TRUE when the entry is dispatched + * to the worker thread pool for execution. + * + * When in_progress is FALS, the enty is said to be pending. + * + * counter: uint32_t containing a serial number assigned to this IOC + * I/O Queue entry. Note that this will roll over on long + * computations, and thus is not in general unique. + * + * The counter fields is used to construct a tag to distinguish + * multiple concurrent I/O requests from a give rank, and thus + * this should not be a problem as long as there is sufficient + * time between roll overs. As only the lower bits of the counter + * are used in tag construction, this is more frequent than the + * size of the counter field would suggest -- albeit hopefully + * still infrequent enough. + * + * wk_req: Instance of sf_work_request_t. Replace with individual + * fields when convenient. + * + * + * Statistics: + * + * The following fields are only defined if H5FD_IOC__COLLECT_STATS is TRUE. + * They are intended to allow collection of basic statistics on the + * behaviour of the IOC I/O Queue for purposes of debugging and performance + * optimization. + * + * q_time: uint64_t containing the time the entry was place on the + * IOC I/O Queue in usec after the UNIX epoch. + * + * This value is used to compute the queue wait time, and the + * total processing time for the entry. + * + * dispatch_time: uint64_t containing the time the entry is dispatched in + * usec after the UNIX epoch. This field is undefined if the + * entry is pending. + * + * This value is used to compute the execution time for the + * entry. + * + ****************************************************************************/ + +#define H5FD_IOC__IO_Q_ENTRY_MAGIC 0x1357 + +typedef struct H5FD_ioc_io_queue_entry { + + uint32_t magic; + struct H5FD_ioc_io_queue_entry *next; + struct H5FD_ioc_io_queue_entry *prev; + hbool_t in_progress; + uint32_t counter; + + /* rework these fileds */ /* JRM */ + sf_work_request_t wk_req; + struct hg_thread_work thread_wk; + + /* statistics */ +#if H5FD_IOC__COLLECT_STATS + + uint64_t q_time; + uint64_t dispatch_time; + +#endif /* H5FD_IOC__COLLECT_STATS */ + +} H5FD_ioc_io_queue_entry_t; + +#if 0 /* JRM */ /* keep this copy for convenience for now */ +typedef struct { + /* {Datasize, Offset, FileID} */ + int64_t header[3]; /* The basic RPC input plus */ + int tag; /* the supplied OPCODE tag */ + int source; /* Rank of who sent the message */ + int subfile_rank; /* The IOC rank */ + hid_t context_id; /* context to be used to complete */ + double start_time; /* the request, + time of receipt */ + /* from which we calc Time(queued) */ + void *buffer; /* for writes, we keep the buffer */ + /* around for awhile... */ + volatile int in_progress; /* Not used! */ + volatile int serialize; /* worker thread needs to wait while true */ + volatile int dependents; //* If current work item has dependents */ + int depend_id; /* work queue index of the dependent */ +} sf_work_request_t; + +struct hg_thread_work { + hg_thread_func_t func; + void * args; + HG_QUEUE_ENTRY(hg_thread_work) entry; /* Internal */ +}; + +#endif /* JRM */ + +/**************************************************************************** + * + * structure H5FD_ioc_io_queue + * + * This is a temporary structure -- its fields should be moved to an I/O + * concentrator Catchall structure eventualy. + * + * The fields of this structure support the io queue used to receive and + * sequence I/O requests for execution by the worker threads. The rules + * for sequencing are as follows: + * + * 1) Non-overlaping I/O requests must be fed to the worker threads in + * the order received, and may execute concurrently + * + * 2) Overlaping read requests must be fed to the worker threads in + * the order received, but may execute concurrently. + * + * 3) If any pair of I/O requests overlap, and at least one is a write + * request, they must be executed in strict arrival order, and the + * first must complete before the second starts. + * + * Due to the strict ordering requirment in rule 3, entries must be + * inserted at the tail of the queue in receipt order, and retained on + * the queue until completed. Entries in the queue are marked pending + * when inserted on the queue, in progress when handed to a worker + * thread, and deleted from the queue when completed. + * + * The dispatch algorith is as follows: + * + * 1) Set X equal to the element at the head of the queue. + * + * 2) If X is pending, and there exists no prior element (i.e. between X + * and the head of the queue) that intersects with X, goto 5). + * + * 3) If X is pending, X is a read, and all prior intersecting elements + * are reads, goto 5). + * + * 4) If X is in progress, or if any prior intersecting element is a + * write, or if X is a write, set X equal to its successor in the + * queue (i.e. the next element further down the queue from the head) + * and goto 2) If there is no next element, exit without dispatching + * any I/O request. + * + * 5) If we get to 5, X must be pending. Mark it in progress, and + * dispatch it. If the number of in progress entries is less than + * the number of worker threads, and X has a successor in the queue, + * set X equal to its predecessor, and goto 2). Otherwise exit without + * dispatching further I/O requests. + * + * Note that the above dispatch algorithm doesn't address collective + * I/O requests -- this should be OK for now, but it will have to + * addressed prior to production release. + * + * On I/O request completion, worker threads must delete their assigned + * I/O requests from the queue, check to see if there are any pending + * requests, and trigger the dispatch algorithm if there are. + * + * The fileds in the structure are discussed individually below. + * + * magic: Unsigned 32 bit integer always set to H5FD_IOC__IO_Q_MAGIC. + * This field is used to validate pointers to instances of + * H5C_t. + * + * q_head: Pointer to the head of the doubly linked list of entries in + * the I/O queue. + * + * This field is NULL if the I/O queue is empty. + * + * q_tail: Pointer to the tail of the doubly linked list of entries in + * the I/O queue. + * + * This field is NULL if the I/O queue is empty. + * + * num_pending: Number of I/O request pending on the I/O queue. + * + * num_in_progress: Number of I/O requests in progress on the I/O queue. + * + * q_len: Number of I/O requests on the I/O queue. Observe that q_len + * must equal (num_pending + num_in_progress). + * + * req_counter: unsigned 16 bit integer used to provide a "unique" tag for + * each I/O request. This value is incremented by 1, and then + * passed to the worker thread where its lower bits are incorporated + * into the tag used to disambiguate multiple, concurrent I/O + * requests from a single rank. The value is 32 bits, as MPI tags + * are limited to 32 bits. The value is unsigned as it is expected + * to wrap around once its maximum value is reached. + * + * q_mutex: Mutex used to ensure that only one thread accesses the IOC I/O + * Queue at once. This mutex must be held to access of modifiy + * all fields of the + * + * + * Statistics: + * + * The following fields are only defined if H5FD_IOC__COLLECT_STATS is TRUE. + * They are intended to allow collection of basic statistics on the + * behaviour of the IOC I/O Queue for purposes of debugging and performance + * optimization. + * + * max_q_len: Maximum number of requests residing on the IOC I/O Queue at + * any point in time in the current run. + * + * max_num_pending: Maximum number of pending rquests residing on the IOC + * I/O Queue at any point in time in the current run. + * + * max_num_in_progress: Maximum number of in progress rquests residing on + * the IOC I/O Queue at any point in time in the current run. + * + * ind_read_requests: Number of independent read requests received by the + * IOC to date. + * + * ind_write_requests Number of independent write requests received by the + * IOC to date. + * + * requests_queued: Number of I/O requests received and placed on the IOC + * I/O queue. + * + * requests_dispatched: Number of I/O requests dispatched for execution by + * the worker threads. + * + * requests_completed: Number of I/O requests completed by the worker threads. + * Observe that on file close, requests_queued, requests_dispatched, + * and requests_completed should be equal. + * + ****************************************************************************/ + +#define H5FD_IOC__IO_Q_MAGIC 0x2468 + +typedef struct H5FD_ioc_io_queue { + + uint32_t magic; + H5FD_ioc_io_queue_entry_t *q_head; + H5FD_ioc_io_queue_entry_t *q_tail; + int32_t num_pending; + int32_t num_in_progress; + int32_t q_len; + uint32_t req_counter; + hg_thread_mutex_t q_mutex; + + /* statistics */ +#if H5FD_IOC__COLLECT_STATS + int32_t max_q_len; + int32_t max_num_pending; + int32_t max_num_in_progress; + int64_t ind_read_requests; + int64_t ind_write_requests; + int64_t requests_queued; + int64_t requests_dispatched; + int64_t requests_completed; +#endif /* H5FD_IOC__COLLECT_STATS */ + +} H5FD_ioc_io_queue_t; + +H5_DLL void H5FD_ioc_take_down_thread_pool(void); + +H5_DLL H5FD_ioc_io_queue_entry_t *H5FD_ioc__alloc_io_q_entry(void); +H5_DLL void H5FD_ioc__complete_io_q_entry(H5FD_ioc_io_queue_entry_t *entry_ptr); +H5_DLL void H5FD_ioc__dispatch_elegible_io_q_entries(void); +H5_DLL void H5FD_ioc__free_io_q_entry(H5FD_ioc_io_queue_entry_t *q_entry_ptr); +H5_DLL void H5FD_ioc__queue_io_q_entry(sf_work_request_t *wk_req_ptr); + +#endif /* JRM */ #ifdef __cplusplus } diff --git a/src/mercury/src/util/.deps/.dirstamp b/src/mercury/src/util/.deps/.dirstamp deleted file mode 100644 index e69de29..0000000 diff --git a/src/mercury/src/util/.deps/mercury_atomic_queue.Plo b/src/mercury/src/util/.deps/mercury_atomic_queue.Plo deleted file mode 100644 index 481e5f0..0000000 --- a/src/mercury/src/util/.deps/mercury_atomic_queue.Plo +++ /dev/null @@ -1,357 +0,0 @@ -mercury/src/util/mercury_atomic_queue.lo: \ - mercury/src/util/mercury_atomic_queue.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_atomic_queue.h \ - mercury/src/util/mercury_atomic.h mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - mercury/src/util/mercury_mem.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/immintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/mmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/xmmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/mm_malloc.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/bits/types/locale_t.h \ - /usr/include/bits/types/__locale_t.h /usr/include/sys/types.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \ - /usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/struct_timespec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \ - /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/emmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/pmmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/tmmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/smmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/popcntintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/wmmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avxintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx2intrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512fintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512erintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512pfintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512cdintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bwintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512dqintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlbwintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vldqintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmaintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmavlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmiintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmivlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124fmapsintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124vnniwintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2intrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2vlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnniintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnnivlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqvlintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bitalgintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/shaintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/lzcntintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/bmiintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/bmi2intrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/fmaintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/f16cintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/rtmintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/xtestintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/cetintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/gfniintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/vaesintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/vpclmulqdqintrin.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/movdirintrin.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_atomic_queue.h: - -mercury/src/util/mercury_atomic.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -mercury/src/util/mercury_mem.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/immintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/mmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/xmmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/mm_malloc.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/sys/types.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/emmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/pmmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/tmmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/smmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/popcntintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/wmmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avxintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx2intrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512fintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512erintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512pfintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512cdintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bwintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512dqintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vlbwintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vldqintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmaintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512ifmavlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmiintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmivlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124fmapsintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx5124vnniwintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2intrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vbmi2vlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnniintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vnnivlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512vpopcntdqvlintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/avx512bitalgintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/shaintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/lzcntintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/bmiintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/bmi2intrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/fmaintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/f16cintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/rtmintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/xtestintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/cetintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/gfniintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/vaesintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/vpclmulqdqintrin.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/movdirintrin.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/sched.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/setjmp.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: diff --git a/src/mercury/src/util/.deps/mercury_dlog.Plo b/src/mercury/src/util/.deps/mercury_dlog.Plo deleted file mode 100644 index eef468a..0000000 --- a/src/mercury/src/util/.deps/mercury_dlog.Plo +++ /dev/null @@ -1,214 +0,0 @@ -mercury/src/util/mercury_dlog.lo: mercury/src/util/mercury_dlog.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_dlog.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - mercury/src/util/mercury_list.h mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_time.h /usr/include/stdio.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h /usr/include/inttypes.h /usr/include/stdlib.h \ - /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \ - /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \ - /usr/include/sys/types.h /usr/include/sys/select.h \ - /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \ - /usr/include/bits/types/__sigset_t.h /usr/include/alloca.h \ - /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \ - /usr/include/string.h /usr/include/strings.h /usr/include/unistd.h \ - /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \ - /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \ - /usr/include/bits/getopt_core.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_dlog.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -mercury/src/util/mercury_list.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/usr/include/inttypes.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/include/string.h: - -/usr/include/strings.h: - -/usr/include/unistd.h: - -/usr/include/bits/posix_opt.h: - -/usr/include/bits/environments.h: - -/usr/include/bits/confname.h: - -/usr/include/bits/getopt_posix.h: - -/usr/include/bits/getopt_core.h: diff --git a/src/mercury/src/util/.deps/mercury_event.Plo b/src/mercury/src/util/.deps/mercury_event.Plo deleted file mode 100644 index 720a823..0000000 --- a/src/mercury/src/util/.deps/mercury_event.Plo +++ /dev/null @@ -1,219 +0,0 @@ -mercury/src/util/mercury_event.lo: mercury/src/util/mercury_event.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_event.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/errno.h \ - /usr/include/bits/errno.h /usr/include/linux/errno.h \ - /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \ - /usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \ - /usr/include/string.h /usr/include/bits/types/locale_t.h \ - /usr/include/bits/types/__locale_t.h /usr/include/strings.h \ - /usr/include/unistd.h /usr/include/bits/posix_opt.h \ - /usr/include/bits/environments.h /usr/include/bits/confname.h \ - /usr/include/bits/getopt_posix.h /usr/include/bits/getopt_core.h \ - /usr/include/sys/eventfd.h /usr/include/bits/eventfd.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_event.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -/usr/include/errno.h: - -/usr/include/bits/errno.h: - -/usr/include/linux/errno.h: - -/usr/include/asm/errno.h: - -/usr/include/asm-generic/errno.h: - -/usr/include/asm-generic/errno-base.h: - -/usr/include/bits/types/error_t.h: - -/usr/include/string.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/strings.h: - -/usr/include/unistd.h: - -/usr/include/bits/posix_opt.h: - -/usr/include/bits/environments.h: - -/usr/include/bits/confname.h: - -/usr/include/bits/getopt_posix.h: - -/usr/include/bits/getopt_core.h: - -/usr/include/sys/eventfd.h: - -/usr/include/bits/eventfd.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: diff --git a/src/mercury/src/util/.deps/mercury_hash_table.Plo b/src/mercury/src/util/.deps/mercury_hash_table.Plo deleted file mode 100644 index 2b2bef8..0000000 --- a/src/mercury/src/util/.deps/mercury_hash_table.Plo +++ /dev/null @@ -1,125 +0,0 @@ -mercury/src/util/mercury_hash_table.lo: \ - mercury/src/util/mercury_hash_table.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_hash_table.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/stdlib.h \ - /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \ - /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/sys/types.h /usr/include/bits/types/clock_t.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/timer_t.h /usr/include/endian.h \ - /usr/include/bits/endian.h /usr/include/bits/byteswap.h \ - /usr/include/bits/uintn-identity.h /usr/include/sys/select.h \ - /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \ - /usr/include/bits/types/__sigset_t.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/struct_timespec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \ - /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \ - /usr/include/string.h /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_hash_table.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/sys/types.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_log.Plo b/src/mercury/src/util/.deps/mercury_log.Plo deleted file mode 100644 index ce22eff..0000000 --- a/src/mercury/src/util/.deps/mercury_log.Plo +++ /dev/null @@ -1,204 +0,0 @@ -mercury/src/util/mercury_log.lo: mercury/src/util/mercury_log.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_log.h \ - mercury/src/util/mercury_dlog.h mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - mercury/src/util/mercury_list.h mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_time.h /usr/include/stdio.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h mercury/src/util/mercury_queue.h \ - /usr/include/ctype.h /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h /usr/include/string.h \ - /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_log.h: - -mercury/src/util/mercury_dlog.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -mercury/src/util/mercury_list.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -mercury/src/util/mercury_queue.h: - -/usr/include/ctype.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_mem.Plo b/src/mercury/src/util/.deps/mercury_mem.Plo deleted file mode 100644 index 9b99a9b..0000000 --- a/src/mercury/src/util/.deps/mercury_mem.Plo +++ /dev/null @@ -1,276 +0,0 @@ -mercury/src/util/mercury_mem.lo: mercury/src/util/mercury_mem.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_mem.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/errno.h /usr/include/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/bits/types/error_t.h /usr/include/fcntl.h \ - /usr/include/bits/fcntl.h /usr/include/bits/fcntl-linux.h \ - /usr/include/bits/types/struct_iovec.h /usr/include/linux/falloc.h \ - /usr/include/bits/stat.h /usr/include/string.h /usr/include/strings.h \ - /usr/include/sys/mman.h /usr/include/bits/mman.h \ - /usr/include/bits/mman-linux.h /usr/include/bits/mman-shared.h \ - /usr/include/sys/stat.h /usr/include/bits/statx.h \ - /usr/include/sys/types.h /usr/include/sys/select.h \ - /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \ - /usr/include/bits/types/__sigset_t.h /usr/include/unistd.h \ - /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \ - /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \ - /usr/include/bits/getopt_core.h /usr/include/stdlib.h \ - /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \ - /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_mem.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/errno.h: - -/usr/include/bits/errno.h: - -/usr/include/linux/errno.h: - -/usr/include/asm/errno.h: - -/usr/include/asm-generic/errno.h: - -/usr/include/asm-generic/errno-base.h: - -/usr/include/bits/types/error_t.h: - -/usr/include/fcntl.h: - -/usr/include/bits/fcntl.h: - -/usr/include/bits/fcntl-linux.h: - -/usr/include/bits/types/struct_iovec.h: - -/usr/include/linux/falloc.h: - -/usr/include/bits/stat.h: - -/usr/include/string.h: - -/usr/include/strings.h: - -/usr/include/sys/mman.h: - -/usr/include/bits/mman.h: - -/usr/include/bits/mman-linux.h: - -/usr/include/bits/mman-shared.h: - -/usr/include/sys/stat.h: - -/usr/include/bits/statx.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/unistd.h: - -/usr/include/bits/posix_opt.h: - -/usr/include/bits/environments.h: - -/usr/include/bits/confname.h: - -/usr/include/bits/getopt_posix.h: - -/usr/include/bits/getopt_core.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: diff --git a/src/mercury/src/util/.deps/mercury_mem_pool.Plo b/src/mercury/src/util/.deps/mercury_mem_pool.Plo deleted file mode 100644 index 970caa7..0000000 --- a/src/mercury/src/util/.deps/mercury_mem_pool.Plo +++ /dev/null @@ -1,228 +0,0 @@ -mercury/src/util/mercury_mem_pool.lo: mercury/src/util/mercury_mem_pool.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_mem_pool.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_mem.h \ - mercury/src/util/mercury_queue.h \ - mercury/src/util/mercury_thread_condition.h \ - mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h mercury/src/util/mercury_thread_spin.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/string.h /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_mem_pool.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_mem.h: - -mercury/src/util/mercury_queue.h: - -mercury/src/util/mercury_thread_condition.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -mercury/src/util/mercury_thread_spin.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_poll.Plo b/src/mercury/src/util/.deps/mercury_poll.Plo deleted file mode 100644 index 91ff893..0000000 --- a/src/mercury/src/util/.deps/mercury_poll.Plo +++ /dev/null @@ -1,262 +0,0 @@ -mercury/src/util/mercury_poll.lo: mercury/src/util/mercury_poll.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_poll.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_event.h \ - /usr/include/errno.h /usr/include/bits/errno.h \ - /usr/include/linux/errno.h /usr/include/asm/errno.h \ - /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ - /usr/include/bits/types/error_t.h /usr/include/string.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/strings.h /usr/include/unistd.h \ - /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \ - /usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \ - /usr/include/bits/getopt_core.h /usr/include/sys/eventfd.h \ - /usr/include/bits/eventfd.h mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h /usr/include/sys/epoll.h \ - /usr/include/bits/epoll.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_poll.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_event.h: - -/usr/include/errno.h: - -/usr/include/bits/errno.h: - -/usr/include/linux/errno.h: - -/usr/include/asm/errno.h: - -/usr/include/asm-generic/errno.h: - -/usr/include/asm-generic/errno-base.h: - -/usr/include/bits/types/error_t.h: - -/usr/include/string.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/strings.h: - -/usr/include/unistd.h: - -/usr/include/bits/posix_opt.h: - -/usr/include/bits/environments.h: - -/usr/include/bits/confname.h: - -/usr/include/bits/getopt_posix.h: - -/usr/include/bits/getopt_core.h: - -/usr/include/sys/eventfd.h: - -/usr/include/bits/eventfd.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/include/sys/epoll.h: - -/usr/include/bits/epoll.h: diff --git a/src/mercury/src/util/.deps/mercury_request.Plo b/src/mercury/src/util/.deps/mercury_request.Plo deleted file mode 100644 index ed207e4..0000000 --- a/src/mercury/src/util/.deps/mercury_request.Plo +++ /dev/null @@ -1,220 +0,0 @@ -mercury/src/util/mercury_request.lo: mercury/src/util/mercury_request.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_request.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - mercury/src/util/mercury_thread_condition.h \ - mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h mercury/src/util/mercury_time.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_request.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -mercury/src/util/mercury_thread_condition.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -mercury/src/util/mercury_time.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: diff --git a/src/mercury/src/util/.deps/mercury_thread.Plo b/src/mercury/src/util/.deps/mercury_thread.Plo deleted file mode 100644 index b3bfed7..0000000 --- a/src/mercury/src/util/.deps/mercury_thread.Plo +++ /dev/null @@ -1,113 +0,0 @@ -mercury/src/util/mercury_thread.lo: mercury/src/util/mercury_thread.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_thread.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: diff --git a/src/mercury/src/util/.deps/mercury_thread_condition.Plo b/src/mercury/src/util/.deps/mercury_thread_condition.Plo deleted file mode 100644 index 779d371..0000000 --- a/src/mercury/src/util/.deps/mercury_thread_condition.Plo +++ /dev/null @@ -1,153 +0,0 @@ -mercury/src/util/mercury_thread_condition.lo: \ - mercury/src/util/mercury_thread_condition.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_thread_condition.h \ - mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread_condition.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: diff --git a/src/mercury/src/util/.deps/mercury_thread_mutex.Plo b/src/mercury/src/util/.deps/mercury_thread_mutex.Plo deleted file mode 100644 index e7439a8..0000000 --- a/src/mercury/src/util/.deps/mercury_thread_mutex.Plo +++ /dev/null @@ -1,183 +0,0 @@ -mercury/src/util/mercury_thread_mutex.lo: \ - mercury/src/util/mercury_thread_mutex.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/string.h /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_thread_pool.Plo b/src/mercury/src/util/.deps/mercury_thread_pool.Plo deleted file mode 100644 index 72cae2e..0000000 --- a/src/mercury/src/util/.deps/mercury_thread_pool.Plo +++ /dev/null @@ -1,220 +0,0 @@ -mercury/src/util/mercury_thread_pool.lo: \ - mercury/src/util/mercury_thread_pool.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_thread_pool.h mercury/src/util/mercury_queue.h \ - mercury/src/util/mercury_thread.h mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_thread_condition.h \ - mercury/src/util/mercury_thread_mutex.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/stdlib.h \ - /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \ - /usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \ - /usr/include/sys/types.h /usr/include/sys/select.h \ - /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \ - /usr/include/bits/types/__sigset_t.h /usr/include/alloca.h \ - /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread_pool.h: - -mercury/src/util/mercury_queue.h: - -mercury/src/util/mercury_thread.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_thread_condition.h: - -mercury/src/util/mercury_thread_mutex.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: diff --git a/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo b/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo deleted file mode 100644 index 7bcb1a0..0000000 --- a/src/mercury/src/util/.deps/mercury_thread_rwlock.Plo +++ /dev/null @@ -1,186 +0,0 @@ -mercury/src/util/mercury_thread_rwlock.lo: \ - mercury/src/util/mercury_thread_rwlock.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_thread_rwlock.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/string.h /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread_rwlock.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_thread_spin.Plo b/src/mercury/src/util/.deps/mercury_thread_spin.Plo deleted file mode 100644 index 8cf0151..0000000 --- a/src/mercury/src/util/.deps/mercury_thread_spin.Plo +++ /dev/null @@ -1,186 +0,0 @@ -mercury/src/util/mercury_thread_spin.lo: \ - mercury/src/util/mercury_thread_spin.c /usr/include/stdc-predef.h \ - mercury/src/util/mercury_thread_spin.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h \ - mercury/src/util/mercury_thread_annotation.h /usr/include/pthread.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/string.h /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_thread_spin.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.deps/mercury_util.Plo b/src/mercury/src/util/.deps/mercury_util.Plo deleted file mode 100644 index 0efc265..0000000 --- a/src/mercury/src/util/.deps/mercury_util.Plo +++ /dev/null @@ -1,214 +0,0 @@ -mercury/src/util/mercury_util.lo: mercury/src/util/mercury_util.c \ - /usr/include/stdc-predef.h mercury/src/util/mercury_util.h \ - mercury/src/util/mercury_util_config.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h \ - /usr/include/stdint.h /usr/include/bits/libc-header-start.h \ - /usr/include/features.h /usr/include/sys/cdefs.h \ - /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \ - /usr/include/bits/stdint-uintn.h mercury/src/util/mercury_util_error.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h \ - /usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h \ - /usr/include/pthread.h /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ - /usr/include/sched.h /usr/include/bits/types/time_t.h \ - /usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \ - /usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \ - /usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \ - /usr/include/bits/types/struct_timeval.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \ - /usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \ - /usr/include/bits/types/struct_itimerspec.h \ - /usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \ - /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ - /usr/include/bits/pthreadtypes-arch.h /usr/include/bits/setjmp.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h \ - /usr/include/stdio.h /usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h \ - /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ - /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ - /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ - /usr/include/bits/types/cookie_io_functions_t.h \ - /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ - /usr/include/bits/stdio.h \ - /home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h \ - /usr/include/stdlib.h /usr/include/bits/waitflags.h \ - /usr/include/bits/waitstatus.h /usr/include/bits/floatn.h \ - /usr/include/bits/floatn-common.h /usr/include/sys/types.h \ - /usr/include/sys/select.h /usr/include/bits/select.h \ - /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ - /usr/include/alloca.h /usr/include/bits/stdlib-bsearch.h \ - /usr/include/bits/stdlib-float.h /usr/include/string.h \ - /usr/include/strings.h - -/usr/include/stdc-predef.h: - -mercury/src/util/mercury_util.h: - -mercury/src/util/mercury_util_config.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stddef.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdint.h: - -/usr/include/stdint.h: - -/usr/include/bits/libc-header-start.h: - -/usr/include/features.h: - -/usr/include/sys/cdefs.h: - -/usr/include/bits/wordsize.h: - -/usr/include/bits/long-double.h: - -/usr/include/gnu/stubs.h: - -/usr/include/gnu/stubs-64.h: - -/usr/include/bits/types.h: - -/usr/include/bits/typesizes.h: - -/usr/include/bits/wchar.h: - -/usr/include/bits/stdint-intn.h: - -/usr/include/bits/stdint-uintn.h: - -mercury/src/util/mercury_util_error.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_log.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_dlog.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_util_config.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_atomic.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdatomic.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_list.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_mutex.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_thread_annotation.h: - -/usr/include/pthread.h: - -/usr/include/endian.h: - -/usr/include/bits/endian.h: - -/usr/include/bits/byteswap.h: - -/usr/include/bits/uintn-identity.h: - -/usr/include/sched.h: - -/usr/include/bits/types/time_t.h: - -/usr/include/bits/types/struct_timespec.h: - -/usr/include/bits/sched.h: - -/usr/include/bits/types/struct_sched_param.h: - -/usr/include/bits/cpu-set.h: - -/usr/include/time.h: - -/usr/include/bits/time.h: - -/usr/include/bits/timex.h: - -/usr/include/bits/types/struct_timeval.h: - -/usr/include/bits/types/clock_t.h: - -/usr/include/bits/types/struct_tm.h: - -/usr/include/bits/types/clockid_t.h: - -/usr/include/bits/types/timer_t.h: - -/usr/include/bits/types/struct_itimerspec.h: - -/usr/include/bits/types/locale_t.h: - -/usr/include/bits/types/__locale_t.h: - -/usr/include/bits/pthreadtypes.h: - -/usr/include/bits/thread-shared-types.h: - -/usr/include/bits/pthreadtypes-arch.h: - -/usr/include/bits/setjmp.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_time.h: - -/usr/include/stdio.h: - -/usr/lib/gcc/x86_64-redhat-linux/8/include/stdarg.h: - -/usr/include/bits/types/__fpos_t.h: - -/usr/include/bits/types/__mbstate_t.h: - -/usr/include/bits/types/__fpos64_t.h: - -/usr/include/bits/types/__FILE.h: - -/usr/include/bits/types/FILE.h: - -/usr/include/bits/types/struct_FILE.h: - -/usr/include/bits/types/cookie_io_functions_t.h: - -/usr/include/bits/stdio_lim.h: - -/usr/include/bits/sys_errlist.h: - -/usr/include/bits/stdio.h: - -/home/riwarren/Sandbox/HDF5/GITHUB/SUBFILING/selection_io_with_subfiling_vfd/hdf5/src/mercury/include/mercury_queue.h: - -/usr/include/stdlib.h: - -/usr/include/bits/waitflags.h: - -/usr/include/bits/waitstatus.h: - -/usr/include/bits/floatn.h: - -/usr/include/bits/floatn-common.h: - -/usr/include/sys/types.h: - -/usr/include/sys/select.h: - -/usr/include/bits/select.h: - -/usr/include/bits/types/sigset_t.h: - -/usr/include/bits/types/__sigset_t.h: - -/usr/include/alloca.h: - -/usr/include/bits/stdlib-bsearch.h: - -/usr/include/bits/stdlib-float.h: - -/usr/include/string.h: - -/usr/include/strings.h: diff --git a/src/mercury/src/util/.dirstamp b/src/mercury/src/util/.dirstamp deleted file mode 100644 index e69de29..0000000 diff --git a/testpar/t_subfiling_vfd.c b/testpar/t_subfiling_vfd.c index c36d8db..862107b 100644 --- a/testpar/t_subfiling_vfd.c +++ b/testpar/t_subfiling_vfd.c @@ -2683,8 +2683,11 @@ main(int argc, char **argv) if (nerrors == 0) { nerrors -= test_fapl_configuration(); + // sleep(1); nerrors -= test_create_and_close(); + // sleep(1); nerrors -= test_basic_dataset_write(); + // sleep(1); #if 0 nerrors -= test_chunked_dataset_write(); nerrors -= test_on_disk_zoo(); diff --git a/testpar/t_vfd.c b/testpar/t_vfd.c index 880cc96..2d16606 100644 --- a/testpar/t_vfd.c +++ b/testpar/t_vfd.c @@ -18,21 +18,32 @@ */ #include "testphdf5.h" +#include "H5FDsubfiling.h" +#include "H5FDioc.h" /* Must be a power of 2. Reducing it below 1024 may cause problems */ #define INTS_PER_RANK 1024 /* global variable declarations: */ -hbool_t pass = TRUE; /* set to FALSE on error */ -const char *failure_mssg = NULL; - -const char *FILENAMES[] = {"mpio_vfd_test_file_0", /*0*/ - "mpio_vfd_test_file_1", /*1*/ - "mpio_vfd_test_file_2", /*2*/ - "mpio_vfd_test_file_3", /*3*/ - "mpio_vfd_test_file_4", /*4*/ - "mpio_vfd_test_file_5", /*5*/ +hbool_t pass = TRUE; /* set to FALSE on error */ +hbool_t disp_failure_mssgs = TRUE; /* global force display of failure messages */ +const char *failure_mssg = NULL; + +const char *FILENAMES[] = {"mpio_vfd_test_file_0", /*0*/ + "mpio_vfd_test_file_1", /*1*/ + "mpio_vfd_test_file_2", /*2*/ + "mpio_vfd_test_file_3", /*3*/ + "mpio_vfd_test_file_4", /*4*/ + "mpio_vfd_test_file_5", /*5*/ + "mpio_vfd_test_file_6", /*6*/ + "subfiling_vfd_test_file_0", /*7*/ + "subfiling_vfd_test_file_1", /*8*/ + "subfiling_vfd_test_file_2", /*9*/ + "subfiling_vfd_test_file_3", /*10*/ + "subfiling_vfd_test_file_4", /*11*/ + "subfiling_vfd_test_file_5", /*12*/ + "subfiling_vfd_test_file_6", /*13*/ NULL}; /* File Test Images @@ -84,6 +95,8 @@ static unsigned vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size H5FD_mpio_collective_opt_t coll_opt_mode, const char *vfd_name); static unsigned vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_t xfer_mode, H5FD_mpio_collective_opt_t coll_opt_mode, const char *vfd_name); +static unsigned vector_write_test_7(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_t xfer_mode, + H5FD_mpio_collective_opt_t coll_opt_mode, const char *vfd_name); /****************************************************************************/ /***************************** Utility Functions ****************************/ @@ -246,7 +259,7 @@ free_file_images(void) * * Modifications: * - * None. + * Updated for subfiling VFD 9/29/30 * *------------------------------------------------------------------------- */ @@ -273,6 +286,20 @@ setup_vfd_test_file(int file_name_id, char *file_name, int mpi_size, H5FD_mpio_x if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + /* setup the file name -- do this now, since setting up the ioc faple requires it. This will probably + * change */ + if (pass) { + + if (h5_fixname(FILENAMES[file_name_id], H5P_DEFAULT, filename, sizeof(filename)) == NULL) { + + pass = FALSE; + failure_mssg = "h5_fixname() failed.\n"; + } + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + /* setupf fapl for target VFD */ if (pass) { @@ -293,8 +320,103 @@ setup_vfd_test_file(int file_name_id, char *file_name, int mpi_size, H5FD_mpio_x failure_mssg = "Can't set mpio fapl."; } } - else { + else if (strcmp(vfd_name, "subfiling") == 0) { + + hid_t ioc_fapl; + H5FD_ioc_config_t ioc_config = {{ + /* common */ + /* magic = */ H5FD_IOC_FAPL_T_MAGIC, + /* version = */ H5FD_CURR_IOC_FAPL_T_VERSION, + /* stripe_count = */ 0, /* will over write */ + /* stripe_depth = */ (INTS_PER_RANK / 2), + /* ioc_selection = */ SELECT_IOC_ONE_PER_NODE, + /* ioc_fapl_id = */ H5P_DEFAULT, /* will over write? */ + /* context_id = */ 0, /* will overwrite */ + /* file_dir = */ "", /* will overwrite */ + /* file_path = */ "" /* will overwrite */ + }, + /* thread_pool_count = */ H5FD_IOC_THREAD_POOL_SIZE}; + H5FD_subfiling_config_t subfiling_conf = { + { + /* common */ + /* magic = */ H5FD_IOC_FAPL_T_MAGIC, + /* version = */ H5FD_CURR_IOC_FAPL_T_VERSION, + /* stripe_count = */ 0, /* will over write */ + /* stripe_depth = */ (INTS_PER_RANK / 2), + /* ioc_selection = */ SELECT_IOC_ONE_PER_NODE, + /* ioc_fapl_id = */ H5P_DEFAULT, /* will over write? */ + /* context_id = */ 0, /* will overwrite */ + /* file_dir = */ "", /* will overwrite */ + /* file_path = */ "", /* will overwrite */ + }, + /* require_ioc = */ TRUE}; + + if ((pass) && ((ioc_fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0)) { + + pass = FALSE; + failure_mssg = "Can't create ioc fapl."; + } + +#if 1 /* JRM */ /* this is temporary -- rework for programatic control later */ + memset(&ioc_config, 0, sizeof(ioc_config)); + memset(&subfiling_conf, 0, sizeof(subfiling_conf)); + + /* Get subfiling VFD defaults */ + if ((pass) && (H5Pget_fapl_subfiling(fapl_id, &subfiling_conf) == FAIL)) { + + pass = FALSE; + failure_mssg = "Can't get sub-filing VFD defaults."; + } + + if ((pass) && (subfiling_conf.require_ioc)) { + + /* Get IOC VFD defaults */ + if ((pass) && ((H5Pget_fapl_ioc(ioc_fapl, &ioc_config) == FAIL))) { + + pass = FALSE; + failure_mssg = "Can't get IOC VFD defaults."; + } + + /* Now we can set the IOC fapl. */ + if ((pass) && ((H5Pset_fapl_ioc(ioc_fapl, &ioc_config) == FAIL))) { + + pass = FALSE; + failure_mssg = "Can't set IOC fapl."; + } + } + else { + + if ((pass) && ((H5Pset_fapl_sec2(ioc_fapl) == FAIL))) { + + pass = FALSE; + failure_mssg = "Can't set sec2 fapl."; + } + } + + /* Assign the IOC fapl as the underlying VPD */ + subfiling_conf.common.ioc_fapl_id = ioc_fapl; + + if (pass) { /* setup the paths in the subfiling fapl. */ + + HDassert(strlen(filename) < sizeof(subfiling_conf.common.file_dir)); + strcpy(subfiling_conf.common.file_dir, dirname(filename)); + strcpy(subfiling_conf.common.file_path, basename(filename)); +#if 0 /* JRM */ + HDfprintf(stdout, "\nfilename = \"%s\"\nfile_dir = \"%s\"\nfile_path = \"%s\"\n", + filename, subfiling_conf.common.file_dir, subfiling_conf.common.file_path); +#endif /* JRM */ + } + /* Now we can set the SUBFILING fapl befor returning. */ + if ((pass) && (H5Pset_fapl_subfiling(fapl_id, &subfiling_conf) == FAIL)) { + + pass = FALSE; + failure_mssg = "Can't set subfiling fapl."; + } + +#endif /* JRM */ + } + else { pass = FALSE; failure_mssg = "un-supported VFD"; } @@ -705,11 +827,7 @@ vector_read_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ /* 6) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -725,7 +843,7 @@ vector_read_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -1016,11 +1134,7 @@ vector_read_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ /* 10) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -1036,7 +1150,7 @@ vector_read_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -1361,11 +1475,7 @@ vector_read_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ /* 8) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -1381,7 +1491,7 @@ vector_read_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -1836,11 +1946,7 @@ vector_read_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ /* 8) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -1856,7 +1962,7 @@ vector_read_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -2116,11 +2222,7 @@ vector_read_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ /* 8) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -2136,7 +2238,7 @@ vector_read_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_ H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -2198,7 +2300,7 @@ vector_write_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[1]; haddr_t addrs[1]; size_t sizes[1]; - void * bufs[1]; + const void *bufs[1]; pass = TRUE; @@ -2268,6 +2370,9 @@ vector_write_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -2305,11 +2410,7 @@ vector_write_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 5) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -2325,7 +2426,7 @@ vector_write_test_1(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -2397,7 +2498,7 @@ vector_write_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[1]; haddr_t addrs[1]; size_t sizes[1]; - void * bufs[1]; + const void *bufs[1]; pass = TRUE; @@ -2514,6 +2615,9 @@ vector_write_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -2569,11 +2673,7 @@ vector_write_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 6) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -2589,7 +2689,7 @@ vector_write_test_2(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -2662,7 +2762,7 @@ vector_write_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[4]; haddr_t addrs[4]; size_t sizes[4]; - void * bufs[4]; + const void *bufs[4]; pass = TRUE; @@ -2765,6 +2865,9 @@ vector_write_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -2845,11 +2948,7 @@ vector_write_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 5) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -2865,7 +2964,7 @@ vector_write_test_3(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -2944,7 +3043,7 @@ vector_write_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[4]; haddr_t addrs[4]; size_t sizes[4]; - void * bufs[4]; + const void *bufs[4]; pass = TRUE; @@ -3047,6 +3146,9 @@ vector_write_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -3127,11 +3229,7 @@ vector_write_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 5) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -3147,7 +3245,7 @@ vector_write_test_4(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -3262,7 +3360,7 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[4]; haddr_t addrs[4]; size_t sizes[4]; - void * bufs[4]; + const void *bufs[4]; pass = TRUE; @@ -3451,6 +3549,9 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -3490,6 +3591,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (1.1)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + negative_fi_buf[j]); +#endif /* JRM */ } } else if (((INTS_PER_RANK / 4) <= k) && (k < (3 * (INTS_PER_RANK / 8)))) { @@ -3498,6 +3603,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (1.2)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + decreasing_fi_buf[j]); +#endif /* JRM */ } } else if (((INTS_PER_RANK / 16) <= k) && (k < (INTS_PER_RANK / 8))) { @@ -3506,6 +3615,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (1.3)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + increasing_fi_buf[j]); +#endif /* JRM */ } } else { @@ -3525,6 +3638,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (2.1)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + increasing_fi_buf[j]); +#endif /* JRM */ } } else if ((((INTS_PER_RANK / 2) + 1) <= k) && (k <= (INTS_PER_RANK - 2))) { @@ -3533,6 +3650,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (2.2)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + decreasing_fi_buf[j]); +#endif /* JRM */ } } else { @@ -3552,6 +3673,10 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer pass = FALSE; failure_mssg = "unexpected data read from file (3.1)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + negative_fi_buf[j]); +#endif /* JRM */ } } else { @@ -3586,11 +3711,7 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 7) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ - - if (pass) { - - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); - } + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); @@ -3606,7 +3727,7 @@ vector_write_test_5(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -3694,7 +3815,7 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5FD_mem_t types[(INTS_PER_RANK / 16) + 1]; haddr_t addrs[(INTS_PER_RANK / 16) + 1]; size_t sizes[2]; - void * bufs[(INTS_PER_RANK / 16) + 1]; + const void *bufs[(INTS_PER_RANK / 16) + 1]; pass = TRUE; @@ -3811,6 +3932,9 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer if (pass) { MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ } if (show_progress) @@ -3865,15 +3989,290 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer /* 8) Close the test file and delete it (on rank 0 only). * Close FAPL and DXPL. */ + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* report results */ + if (mpi_rank == 0) { + + if (pass) { + + PASSED(); + } + else { + + H5_FAILED(); + + if ((disp_failure_mssgs) || (show_progress)) { + HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); + } + } + } + + return (!pass); + +} /* vector_write_test_6() */ + +/*------------------------------------------------------------------------- + * Function: vector_write_test_7() + * + * Purpose: Test vector I/O with larger vectors -- 8 elements in each + * vector for now. + * + * 1) Open the test file with the specified VFD, and set + * the eoa. + * + * 2) Set the test file in a known state by writing zeros + * to all bytes in the test file. Since we have already + * tested this, do this via a vector write of zero_fi_buf. + * + * 3) Barrier + * + * 4) For each rank, define base_index equal to: + * + * mpi_rank * INTS_PER_RANK + * + * and define base_addr equal to + * + * base_index * sizeof(int32_t). + * + * Setup a vector of length 8, with each element of + * length INTS_PER_RANK / 16, and base address + * base_addr + i * (INTS_PER_RANK / 8), where i is + * the index of the entry (starting at zero). Draw + * written data from the equivalent locations in + * increasing_fi_buf. + * + * Write the vector. + * + * 5) Barrier + * + * 6) On each rank, read the entire file into the read_fi_buf, + * and compare against zero_fi_buf, and increasing_fi_buf as + * appropriate. Report failure if any differences are + * detected. + * + * 7) Close the test file. On rank 0, delete the test file. + * + * Return: FALSE on success, TRUE if any errors are detected. + * + * Programmer: John Mainzer + * 10/10/21 + * + * Modifications: + * + * None. + * + *------------------------------------------------------------------------- + */ + +static unsigned +vector_write_test_7(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer_t xfer_mode, + H5FD_mpio_collective_opt_t coll_opt_mode, const char *vfd_name) +{ + const char *fcn_name = "vector_write_test_7()"; + char test_title[120]; + char filename[512]; + haddr_t base_addr; + haddr_t addr_increment; + int base_index; + haddr_t eoa; + hbool_t show_progress = FALSE; + hid_t fapl_id = -1; /* file access property list ID */ + hid_t dxpl_id = -1; /* data access property list ID */ + H5FD_t * lf = NULL; /* VFD struct ptr */ + int cp = 0; + int i; + int j; + int k; + uint32_t count; + H5FD_mem_t types[8]; + haddr_t addrs[8]; + size_t sizes[8]; + const void *bufs[8]; + + pass = TRUE; + + if (mpi_rank == 0) { + + if (xfer_mode == H5FD_MPIO_INDEPENDENT) { + + sprintf(test_title, "parallel vector write test 7 -- %s / independent", vfd_name); + } + else if (coll_opt_mode == H5FD_MPIO_INDIVIDUAL_IO) { + + sprintf(test_title, "parallel vector write test 7 -- %s / col op / ind I/O", vfd_name); + } + else { + + HDassert(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO); + + sprintf(test_title, "parallel vector write test 7 -- %s / col op / col I/O", vfd_name); + } + + TESTING(test_title); + } + + show_progress = ((show_progress) && (mpi_rank == 0)); + + if (show_progress) + HDfprintf(stdout, "\n%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* 1) Open the test file with the specified VFD, set the eoa, and setup the dxpl */ + if (pass) { + + eoa = (haddr_t)mpi_size * (haddr_t)INTS_PER_RANK * (haddr_t)(sizeof(int32_t)); + + setup_vfd_test_file(file_name_id, filename, mpi_size, xfer_mode, coll_opt_mode, vfd_name, eoa, &lf, + &fapl_id, &dxpl_id); + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* 2) Set the test file in a known state by writing zeros + * to all bytes in the test file. Since we have already + * tested this, do this via a vector write of zero_fi_buf. + */ + if (pass) { + + count = 1; + types[0] = H5FD_MEM_DRAW; + addrs[0] = (haddr_t)mpi_rank * (haddr_t)INTS_PER_RANK * (haddr_t)(sizeof(int32_t)); + sizes[0] = (size_t)INTS_PER_RANK * sizeof(int32_t); + bufs[0] = (void *)(&(zero_fi_buf[mpi_rank * INTS_PER_RANK])); + + if (H5FDwrite_vector(lf, dxpl_id, count, types, addrs, sizes, bufs) < 0) { + + pass = FALSE; + failure_mssg = "H5FDwrite_vector() failed.\n"; + } + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* 3) Barrier + */ + + if (pass) { + + MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + if (pass) { + + base_index = mpi_rank * INTS_PER_RANK; + base_addr = (haddr_t)((size_t)base_index * sizeof(int32_t)); + addr_increment = (haddr_t)((INTS_PER_RANK / 8) * sizeof(int32_t)); + + count = 8; + + for (i = 0; i < (int)count; i++) { + + types[i] = H5FD_MEM_DRAW; + addrs[i] = base_addr + ((haddr_t)(i)*addr_increment); + sizes[i] = (size_t)(INTS_PER_RANK / 16) * sizeof(int32_t); + bufs[i] = (void *)(&(increasing_fi_buf[base_index + (i * (INTS_PER_RANK / 8))])); + +#if 0 /* JRM */ /* delete eventually */ + HDfprintf(stderr, "\naddrs[%d] = %lld\n", i, (long long)(addrs[i])); +#endif /* JRM */ + } + + if (H5FDwrite_vector(lf, dxpl_id, count, types, addrs, sizes, bufs) < 0) { + + pass = FALSE; + failure_mssg = "H5FDwrite_vector() failed (1).\n"; + } + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* 5) Barrier */ + + if (pass) { + + MPI_Barrier(MPI_COMM_WORLD); +#if 0 /* JRM */ /* test code -- remove before commit */ + sleep(1); +#endif /* JRM */ + } + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + + /* 6) On each rank, read the entire file into the read_fi_buf, + * and compare against increasing_fi_buf, and zero_fi_buf as + * appropriate. Report failure if any differences are + * detected. + */ if (pass) { - takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); + size_t image_size = (size_t)mpi_size * (size_t)INTS_PER_RANK * sizeof(int32_t); + + if (H5FDread(lf, H5FD_MEM_DRAW, H5P_DEFAULT, (haddr_t)0, image_size, (void *)read_fi_buf) < 0) { + + pass = FALSE; + failure_mssg = "H5FDread() failed.\n"; + } + + for (i = 0; ((pass) && (i < mpi_size)); i++) { + + base_index = i * INTS_PER_RANK; + + for (j = base_index; j < base_index + INTS_PER_RANK; j++) { + + k = j - base_index; + + if ((k % (INTS_PER_RANK / 8)) < (INTS_PER_RANK / 16)) { + + if (read_fi_buf[j] != increasing_fi_buf[j]) { + + pass = FALSE; + failure_mssg = "unexpected data read from file (1)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, %d expected.\n", j, read_fi_buf[j], + increasing_fi_buf[j]); +#endif /* JRM */ + } + } + else { + + if (read_fi_buf[j] != 0) { + + pass = FALSE; + failure_mssg = "unexpected data read from file (2)"; +#if 1 /* JRM */ + HDprintf("\nread_fi_buf[%d] = %d, 0 expected.\n", j, read_fi_buf[j]); +#endif /* JRM */ + } + } + } + } } if (show_progress) HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + /* 7) Close the test file and delete it (on rank 0 only). + * Close FAPL and DXPL. + */ + takedown_vfd_test_file(mpi_rank, filename, &lf, &fapl_id, &dxpl_id); + + if (show_progress) + HDfprintf(stdout, "%s: cp = %d, pass = %d.\n", fcn_name, cp++, pass); + /* report results */ if (mpi_rank == 0) { @@ -3885,7 +4284,7 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer H5_FAILED(); - if (show_progress) { + if ((disp_failure_mssgs) || (show_progress)) { HDfprintf(stdout, "%s: failure_mssg = \"%s\"\n", fcn_name, failure_mssg); } } @@ -3893,7 +4292,7 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer return (!pass); -} /* vector_write_test_6() */ +} /* vector_write_test_7() */ /*------------------------------------------------------------------------- * Function: main @@ -3915,13 +4314,25 @@ vector_write_test_6(int file_name_id, int mpi_rank, int mpi_size, H5FD_mpio_xfer int main(int argc, char **argv) { - unsigned nerrs = 0; - MPI_Comm comm = MPI_COMM_WORLD; - MPI_Info info = MPI_INFO_NULL; + unsigned nerrs = 0; + MPI_Comm comm = MPI_COMM_WORLD; + MPI_Info info = MPI_INFO_NULL; + int required = MPI_THREAD_MULTIPLE; + int provided = 0; int mpi_size; int mpi_rank; +#if 0 /* JRM */ MPI_Init(&argc, &argv); +#else /* JRM */ + MPI_Init_thread(&argc, &argv, required, &provided); + + if (provided != required) { + + HDprintf(" MPI doesn't support MPI_Init_thread with MPI_THREAD_MULTIPLE. Exiting\n"); + goto finish; + } +#endif /* JRM */ MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); @@ -3955,9 +4366,18 @@ main(int argc, char **argv) HDprintf("\nAllocation and initialze of file image buffers failed. Test aborted.\n"); } +#if 1 /* JRM */ + /* sleep for a bit to allow GDB to attach to the process */ + // sleep(60); +#endif /* JRM */ + MPI_Barrier(MPI_COMM_WORLD); - // sleep(60); +#if 1 /* JRM */ /* skip MPIO VFD tests if desired. */ + if (mpi_rank == 0) { + + HDprintf("\n\n --- TESTING MPIO VFD --- \n\n"); + } nerrs += vector_read_test_1(0, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, "mpio"); @@ -4026,6 +4446,141 @@ main(int argc, char **argv) nerrs += vector_write_test_6(5, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, "mpio"); + nerrs += + vector_write_test_7(6, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, "mpio"); + nerrs += + vector_write_test_7(6, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, "mpio"); + nerrs += + vector_write_test_7(6, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, "mpio"); +#endif /* JRM */ + + MPI_Barrier(MPI_COMM_WORLD); + + if (mpi_rank == 0) { + + HDprintf("\n\n --- TESTING SUBFILING VFD --- \n\n"); + } + + nerrs += vector_read_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += + vector_read_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, "subfiling"); + // sleep(1); + nerrs += + vector_read_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, "subfiling"); + // sleep(1); + + nerrs += vector_read_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += + vector_read_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, "subfiling"); + // sleep(1); + nerrs += + vector_read_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, "subfiling"); + // sleep(1); + + nerrs += vector_read_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += + vector_read_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, "subfiling"); + // sleep(1); + nerrs += + vector_read_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, "subfiling"); + // sleep(1); + + nerrs += vector_read_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_read_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_read_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_read_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_read_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_read_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_1(7, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_2(8, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_3(9, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_4(10, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_5(11, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_6(12, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_6(12, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_6(12, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + + nerrs += vector_write_test_7(13, mpi_rank, mpi_size, H5FD_MPIO_INDEPENDENT, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_7(13, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_INDIVIDUAL_IO, + "subfiling"); + // sleep(1); + nerrs += vector_write_test_7(13, mpi_rank, mpi_size, H5FD_MPIO_COLLECTIVE, H5FD_MPIO_COLLECTIVE_IO, + "subfiling"); + // sleep(1); + finish: /* make sure all processes are finished before final report, cleanup -- cgit v0.12