Merge branch 'master' into benchmark
[lttng-tools.git] / benchmark / measures.h
1 /*
2 * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; only version 2
7 * of the License.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19 #ifndef _MEASURES_H
20 #define _MEASURES_H
21
22 /* Session daemon main() time */
23 cycles_t time_sessiond_boot_start;
24 cycles_t time_sessiond_boot_end;
25
26 /* Session daemon thread manage kconsumerd time */
27 cycles_t time_sessiond_th_kcon_start;
28 cycles_t time_sessiond_th_kcon_poll;
29
30 /* Session daemon thread manage kernel time */
31 cycles_t time_sessiond_th_kern_start;
32 cycles_t time_sessiond_th_kern_poll;
33
34 /* Session daemon thread manage apps time */
35 cycles_t time_sessiond_th_apps_start;
36 cycles_t time_sessiond_th_apps_poll;
37
38 /* Session daemon thread registration apps time */
39 cycles_t time_sessiond_th_reg_start;
40 cycles_t time_sessiond_th_reg_poll;
41
42 /* Session daemon thread registration apps time */
43 cycles_t time_sessiond_th_dispatch_start;
44 cycles_t time_sessiond_th_dispatch_block;
45
46 /* Session daemon thread manage client time */
47 cycles_t time_sessiond_th_cli_start;
48 cycles_t time_sessiond_th_cli_poll;
49
50 /* Create tracing session values */
51 cycles_t time_create_session_start;
52 cycles_t time_create_session_end;
53
54 /* Destroy tracing session values */
55 cycles_t time_destroy_session_start;
56 cycles_t time_destroy_session_end;
57
58 /* Enable an UST channel values */
59 cycles_t time_enable_ust_channel_start;
60 cycles_t time_enable_ust_channel_end;
61
62 /* Enable an UST event values */
63 cycles_t time_enable_ust_event_start;
64 cycles_t time_enable_ust_event_end;
65
66 /* Start UST tracing */
67 cycles_t time_start_ust_start;
68 cycles_t time_start_ust_end;
69
70 /*
71 * UST registration time
72 *
73 * Start time is taken *after* the poll() has detected activity on the apps
74 * socket and right *before* the accept(). There is a malloc() after that
75 * accept and then we recv() the request from the client. We need to measure
76 * the complete process.
77 */
78 cycles_t time_ust_register_start;
79 /*
80 * The stop time is measured right after the futex() wake up.
81 */
82 cycles_t time_ust_register_stop;
83
84 /*
85 * * UST unregister time
86 * */
87 cycles_t time_ust_unregister_start;
88 cycles_t time_ust_unregister_stop;
89
90 /*
91 * UST dispatch registration request time
92 *
93 * Start time taken *after* the dequeue which is a blocking call.
94 */
95 cycles_t time_ust_dispatch_register_start;
96 /*
97 * Stop time taken *before* the futex() wait so at this point, the registration
98 * was sent to the manage apps thread.
99 */
100 cycles_t time_ust_dispatch_register_stop;
101
102 /*
103 * UST managing registration time
104 */
105 /* read() from pipe */
106 cycles_t time_ust_register_read_start;
107 cycles_t time_ust_register_read_stop;
108 /* register_traceable_app() time */
109 cycles_t time_ust_register_add_start;
110 cycles_t time_ust_register_add_stop;
111 /* send register done command */
112 cycles_t time_ust_register_done_start;
113 cycles_t time_ust_register_done_stop;
114
115 /*
116 * UST notification time (using the shm/futex scheme). Those times were break
117 * down in seperate time for each big action step.
118 *
119 * Start time taken *before* we create/get the SHM mmap.
120 */
121 cycles_t time_ust_notify_apps_start;
122 /*
123 * Stop time taken after waiting all processes (futex_wait_update()).
124 */
125 cycles_t time_ust_notify_apps_stop;
126 /* mmap() call */
127 cycles_t time_ust_notify_mmap_start;
128 cycles_t time_ust_notify_mmap_stop;
129 /* Permissions time (chmod/chown) */
130 cycles_t time_ust_notify_perms_start;
131 cycles_t time_ust_notify_perms_stop;
132 /* Fork process */
133 cycles_t time_ust_notify_fork_start;
134 cycles_t time_ust_notify_fork_stop;
135 /* shm_open call */
136 cycles_t time_ust_notify_shm_start;
137 cycles_t time_ust_notify_shm_stop;
138
139 #endif /* _MEASURES_H */
This page took 0.055218 seconds and 4 git commands to generate.