OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

vt_plugin_cntr_int.h
1 /**
2 * VampirTrace
3 * http://www.tu-dresden.de/zih/vampirtrace
4 *
5 * Copyright (c) 2005-2012, ZIH, TU Dresden, Federal Republic of Germany
6 *
7 * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
8 * Centre, Federal Republic of Germany
9 *
10 * See the file COPYING in the package base directory for details
11 **/
12
13 #if defined(VT_PLUGIN_CNTR)
14
15 #ifndef _VT_PLUGIN_CNTR_INT_H
16 #define _VT_PLUGIN_CNTR_INT_H
17
18 #include "vt_plugin_cntr.h"
19 #include "vt_thrd.h"
20
21 #define VT_PLUGIN_PROCESS_GROUP_ALL_STRING "All Processes"
22 #define VT_PLUGIN_PROCESS_GROUP_HOST_STRING "Processes on Host "
23 #define VT_PLUGIN_PROCESS_GROUP_PROCESS_STRING "Threads on Process "
24
25 enum cntr_group{
26 VT_PLUGIN_PROCESS_GROUP_ALL = 0,
27 VT_PLUGIN_PROCESS_GROUP_HOST,
28 VT_PLUGIN_PROCESS_GROUP_PROCESS,
29 VT_PLUGIN_PROCESS_GROUP_MAX
30 };
31
32 EXTERN uint8_t vt_plugin_cntr_used;
33
34 /**
35 * VampirTrace internal functions, which may change in later releases
36 */
37
38 /**
39 * get the number of synch metrics for the current thread
40 */
41 uint32_t vt_plugin_cntr_get_num_synch_metrics(VTThrd * thrd);
42 /**
43 * get the current value of the synch counter nr for the current thread
44 */
45 uint64_t vt_plugin_cntr_get_synch_value(VTThrd * thrd, int nr, uint32_t * cid,
46 uint64_t * value);
47
48 /**
49 * write all callback data for threadID, which occured between the
50 * last call of this function and time
51 */
52 void vt_plugin_cntr_write_callback_data(uint64_t time, uint32_t tid);
53
54 /**
55 * stores all collected asynch event plugins data
56 */
57 void vt_plugin_cntr_write_asynch_event_data(uint64_t time, uint32_t tid);
58
59 /**
60 * This should read the environment, and map the libraries
61 */
62 void vt_plugin_cntr_init(void);
63 /**
64 * This should set the correct counters for the current vampir trace thread
65 */
66 void vt_plugin_cntr_thread_init(VTThrd * thrd, uint32_t tid);
67 /**
68 * enable counters before tracing
69 */
70 void vt_plugin_cntr_thread_enable_counters(VTThrd * thrd);
71 /**
72 * disable counters after tracing
73 */
74 void vt_plugin_cntr_thread_disable_counters(VTThrd * thrd);
75
76 /**
77 * This should free all per thread ressources
78 */
79 void vt_plugin_cntr_thread_exit(VTThrd * thrd);
80
81 /**
82 * This should free all general ressources
83 * nr_threads is the number of threads the process generated
84 */
85 void vt_plugin_cntr_finalize(uint32_t nr_threads);
86 /**
87 * This should be used to check whether the current thread is
88 * a monitor thread of a callback function.
89 * Monitor threads should not be traced.
90 */
91 int vt_plugin_cntr_is_registered_monitor_thread(void);
92
93 /**
94 * writes all post_mortem events to the trace files
95 * thrd is the thread for which the values shall be collected
96 * This should be called when closing all threads
97 */
98 void vt_plugin_cntr_write_post_mortem(VTThrd * thrd);
99
100 /* Set Group IDs */
101 void vt_plugin_cntr_set_all_group(uint32_t group_id);
102 void vt_plugin_cntr_set_host_group(uint32_t group_id);
103 void vt_plugin_cntr_set_process_group(uint32_t group_id);
104
105 #endif /* _VT_PLUGIN_CNTR_INT_H */
106
107 #endif /* VT_PLUGIN_CNTR */
VTThrd
VTThrd struct holds all thread-specific data:
Definition: vt_thrd.h:65