|
ARGOBOTS
|
Functions | |
| int | ABT_info_query_config (ABT_info_query_kind query_kind, void *val) |
Get the configuration information associated with query_kind. More... | |
| int | ABT_info_print_config (FILE *fp) |
| Write the configuration information to the output stream. More... | |
| int | ABT_info_print_all_xstreams (FILE *fp) |
| Write the information of all created ESs to the output stream. More... | |
| int | ABT_info_print_xstream (FILE *fp, ABT_xstream xstream) |
| Write the information of the target ES to the output stream. More... | |
| int | ABT_info_print_sched (FILE *fp, ABT_sched sched) |
| Write the information of the target scheduler to the output stream. More... | |
| int | ABT_info_print_pool (FILE *fp, ABT_pool pool) |
| Write the information of the target pool to the output stream. More... | |
| int | ABT_info_print_thread (FILE *fp, ABT_thread thread) |
| Write the information of the target ULT to the output stream. More... | |
| int | ABT_info_print_thread_attr (FILE *fp, ABT_thread_attr attr) |
| Write the information of the target ULT attribute to the output stream. More... | |
| int | ABT_info_print_task (FILE *fp, ABT_task task) |
| Write the information of the target tasklet to the output stream. More... | |
| int | ABT_info_print_thread_stack (FILE *fp, ABT_thread thread) |
| Dump the stack of the target thread to the output stream. More... | |
| int | ABT_info_print_thread_stacks_in_pool (FILE *fp, ABT_pool pool) |
| Dump stack information of all the threads in the target pool. More... | |
| int | ABT_info_trigger_print_all_thread_stacks (FILE *fp, double timeout, void(*cb_func)(ABT_bool, void *), void *arg) |
| Dump stacks of threads in pools existing in Argobots. More... | |
This group is for getting diverse runtime information of Argobots. The routines in this group are meant for debugging and diagnosing Argobots.
| int ABT_info_print_all_xstreams | ( | FILE * | fp | ) |
Write the information of all created ESs to the output stream.
ABT_info_print_all_xstreams() writes the information of all ESs to the given output stream fp.
| [in] | fp | output stream |
| ABT_SUCCESS | on success |
| ABT_ERR_UNINITIALIZED | Argobots has not been initialized |
| int ABT_info_print_config | ( | FILE * | fp | ) |
Write the configuration information to the output stream.
ABT_info_print_config() writes the configuration information to the given output stream fp.
| [in] | fp | output stream |
| ABT_SUCCESS | on success |
| ABT_ERR_UNINITIALIZED | Argobots has not been initialized |
| int ABT_info_print_pool | ( | FILE * | fp, |
| ABT_pool | pool | ||
| ) |
Write the information of the target pool to the output stream.
ABT_info_print_pool() writes the information of the target pool pool to the given output stream fp.
| [in] | fp | output stream |
| [in] | pool | handle to the target pool |
| ABT_SUCCESS | on success |
| int ABT_info_print_sched | ( | FILE * | fp, |
| ABT_sched | sched | ||
| ) |
Write the information of the target scheduler to the output stream.
ABT_info_print_sched() writes the information of the target scheduler sched to the given output stream fp.
| [in] | fp | output stream |
| [in] | sched | handle to the target scheduler |
| ABT_SUCCESS | on success |
| int ABT_info_print_task | ( | FILE * | fp, |
| ABT_task | task | ||
| ) |
Write the information of the target tasklet to the output stream.
ABT_info_print_task() writes the information of the target tasklet task to the given output stream fp.
| [in] | fp | output stream |
| [in] | task | handle to the target tasklet |
| ABT_SUCCESS | on success |
| int ABT_info_print_thread | ( | FILE * | fp, |
| ABT_thread | thread | ||
| ) |
Write the information of the target ULT to the output stream.
ABT_info_print_thread() writes the information of the target ULT thread to the given output stream fp.
| [in] | fp | output stream |
| [in] | thread | handle to the target ULT |
| ABT_SUCCESS | on success |
| int ABT_info_print_thread_attr | ( | FILE * | fp, |
| ABT_thread_attr | attr | ||
| ) |
Write the information of the target ULT attribute to the output stream.
ABT_info_print_thread_attr() writes the information of the target ULT attribute attr to the given output stream fp.
| [in] | fp | output stream |
| [in] | attr | handle to the target ULT attribute |
| ABT_SUCCESS | on success |
| int ABT_info_print_thread_stack | ( | FILE * | fp, |
| ABT_thread | thread | ||
| ) |
Dump the stack of the target thread to the output stream.
ABT_info_print_thread_stack() dumps the call stack of thread to the given output stream fp.
| [in] | fp | output stream |
| [in] | thread | handle to the target thread |
| ABT_SUCCESS | on success |
| int ABT_info_print_thread_stacks_in_pool | ( | FILE * | fp, |
| ABT_pool | pool | ||
| ) |
Dump stack information of all the threads in the target pool.
ABT_info_print_thread_stacks_in_pool() dumps call stacks of all threads stored in pool. This function returns ABT_ERR_POOL if pool does not support p_print_all.
| [in] | fp | output stream |
| [in] | pool | handle to the target pool |
| ABT_SUCCESS | on success |
| int ABT_info_print_xstream | ( | FILE * | fp, |
| ABT_xstream | xstream | ||
| ) |
Write the information of the target ES to the output stream.
ABT_info_print_xstream() writes the information of the target ES xstream to the given output stream fp.
| [in] | fp | output stream |
| [in] | xstream | handle to the target ES |
| ABT_SUCCESS | on success |
| int ABT_info_query_config | ( | ABT_info_query_kind | query_kind, |
| void * | val | ||
| ) |
Get the configuration information associated with query_kind.
ABT_info_query_config() gets the configuration information associated with the given query_kind and writes a value to val.
The behavior of ABT_info_query_config() depends on query_kind.
val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the debug mode is enabled. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to print an error number when an error happens. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to print debug messages. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to be Valgrind friendly. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_FALSE is set to *val if the Argobots library is configured to ignore some error checks. Otherwise, ABT_TRUE is set.val must be a pointer to a variable of the type ABT_bool. ABT_FALSE is set to *val if the Argobots library is configured to ignore an access violation error regarding pool producers. Otherwise, ABT_TRUE is set.val must be a pointer to a variable of the type ABT_bool. ABT_FALSE is set to *val if the Argobots library is configured to ignore an access violation error regarding pool consumers. Otherwise, ABT_TRUE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to save floating-point registers on user-level context switching. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the thread cancellation feature. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the task cancellation feature. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the thread/task migration cancellation feature. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the stackable scheduler feature is supported. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the external thread feature is supported. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the sleep feature of predefined schedulers. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to print all the configuration settings on ABT_init(). Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type ABT_bool. ABT_TRUE is set to *val if the Argobots library is configured to enable the affinity setting. Otherwise, ABT_FALSE is set.val must be a pointer to a variable of the type unsigned int. The maximum number of execution streams that can be created in Argobots is set to *val.val must be a pointer to a variable of the type size_t. The default stack size of ULTs is set to *val.val must be a pointer to a variable of the type size_t. The default stack size of ULT-type schedulers is set to *val.val must be a pointer to a variable of the type uint64_t. The default event-checking frequency of predefined schedulers is set to *val.val must be a pointer to a variable of the type uint64_t. The default sleep time (nanoseconds) of predefined schedulers is set to *val.| [in] | query_kind | query kind |
| [out] | val | a pointer to a result |
| ABT_SUCCESS | on success |
| ABT_ERR_INV_QUERY_KIND | given query kind is invalid |
| ABT_ERR_UNINITIALIZED | Argobots has not been initialized |
| int ABT_info_trigger_print_all_thread_stacks | ( | FILE * | fp, |
| double | timeout, | ||
| void(*)(ABT_bool, void *) | cb_func, | ||
| void * | arg | ||
| ) |
Dump stacks of threads in pools existing in Argobots.
ABT_info_trigger_print_all_thread_stacks() tries to dump call stacks of all threads stored in pools in the Argobots runtime. This function itself does not print stacks; it immediately returns after updating a flag. Stacks are printed when all execution streams stop in ABT_xstream_check_events().
If some execution streams do not stop within a certain time period, one of the stopped execution streams starts to print stack information. In this case, this function might not work correctly and at worst causes a crash. This function does not work at all if no execution stream executes ABT_xstream_check_events().
cb_func is called after completing stack dump unless it is NULL. The first argument is set to ABT_TRUE if not all the execution streams stop within timeout. Otherwise, ABT_FALSE is set. The second argument is user-defined data arg. Since cb_func is not called by a thread or an execution stream, ABT_self_...() functions in cb_func return undefined values. Neither signal-safety nor thread-safety is required for cb_func.
In Argobots, ABT_info_trigger_print_all_thread_stacks is exceptionally signal-safe; it can be safely called in a signal handler.
The following threads are not captured in this function:
ABT_thread_suspend())| [in] | fp | output stream |
| [in] | timeout | timeout (second). Disabled if the value is negative. |
| [in] | cb_func | call-back function |
| [in] | arg | an argument passed to cb_func |
| ABT_SUCCESS | on success |
1.8.11