Add default subbuf sizes getter functions
[lttng-tools.git] / src / common / defaults.h
1 /*
2 * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
3 * Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License, version 2 only,
7 * as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 */
18
19 #ifndef _DEFAULTS_H
20 #define _DEFAULTS_H
21
22 /* Default unix group name for tracing. */
23 #define DEFAULT_TRACING_GROUP "tracing"
24
25 /* Environment variable to set session daemon binary path. */
26 #define DEFAULT_SESSIOND_PATH_ENV "LTTNG_SESSIOND_PATH"
27
28 /* Default trace output directory name */
29 #define DEFAULT_TRACE_DIR_NAME "lttng-traces"
30
31 /* Default size of a hash table */
32 #define DEFAULT_HT_SIZE 4
33
34 /* Default session daemon paths */
35 #define DEFAULT_HOME_DIR "/tmp"
36 #define DEFAULT_UST_SOCK_DIR DEFAULT_HOME_DIR "/ust-app-socks"
37 #define DEFAULT_GLOBAL_APPS_PIPE DEFAULT_UST_SOCK_DIR "/global"
38 #define DEFAULT_TRACE_OUTPUT DEFAULT_HOME_DIR "/lttng"
39
40 #define DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait"
41 #define DEFAULT_HOME_APPS_WAIT_SHM_PATH "/lttng-ust-apps-wait-%u"
42
43 /* Default consumer paths */
44 #define DEFAULT_CONSUMERD_RUNDIR "%s"
45
46 /* Kernel consumer path */
47 #define DEFAULT_KCONSUMERD_PATH DEFAULT_CONSUMERD_RUNDIR "/kconsumerd"
48 #define DEFAULT_KCONSUMERD_CMD_SOCK_PATH DEFAULT_KCONSUMERD_PATH "/command"
49 #define DEFAULT_KCONSUMERD_ERR_SOCK_PATH DEFAULT_KCONSUMERD_PATH "/error"
50
51 /* UST 64-bit consumer path */
52 #define DEFAULT_USTCONSUMERD64_PATH DEFAULT_CONSUMERD_RUNDIR "/ustconsumerd64"
53 #define DEFAULT_USTCONSUMERD64_CMD_SOCK_PATH DEFAULT_USTCONSUMERD64_PATH "/command"
54 #define DEFAULT_USTCONSUMERD64_ERR_SOCK_PATH DEFAULT_USTCONSUMERD64_PATH "/error"
55
56 /* UST 32-bit consumer path */
57 #define DEFAULT_USTCONSUMERD32_PATH DEFAULT_CONSUMERD_RUNDIR "/ustconsumerd32"
58 #define DEFAULT_USTCONSUMERD32_CMD_SOCK_PATH DEFAULT_USTCONSUMERD32_PATH "/command"
59 #define DEFAULT_USTCONSUMERD32_ERR_SOCK_PATH DEFAULT_USTCONSUMERD32_PATH "/error"
60
61
62 /* Default lttng run directory */
63 #define DEFAULT_LTTNG_RUNDIR "/var/run/lttng"
64 #define DEFAULT_LTTNG_HOME_RUNDIR "%s/.lttng"
65
66 /* Default unix socket path */
67 #define DEFAULT_GLOBAL_CLIENT_UNIX_SOCK DEFAULT_LTTNG_RUNDIR "/client-lttng-sessiond"
68 #define DEFAULT_GLOBAL_APPS_UNIX_SOCK DEFAULT_LTTNG_RUNDIR "/apps-lttng-sessiond"
69 #define DEFAULT_HOME_APPS_UNIX_SOCK DEFAULT_LTTNG_HOME_RUNDIR "/apps-lttng-sessiond"
70 #define DEFAULT_HOME_CLIENT_UNIX_SOCK DEFAULT_LTTNG_HOME_RUNDIR "/client-lttng-sessiond"
71
72 /*
73 * Value taken from the hard limit allowed by the kernel when using setrlimit
74 * with RLIMIT_NOFILE on an Intel i7 CPU and Linux 3.0.3.
75 */
76 #define DEFAULT_POLL_SIZE 65535
77
78 /* Default channel attributes */
79 #define DEFAULT_CHANNEL_NAME "channel0"
80 #define DEFAULT_CHANNEL_OVERWRITE 0 /* usec */
81 /* DEFAULT_CHANNEL_SUBBUF_SIZE must always be a power of 2 */
82 #define DEFAULT_CHANNEL_SUBBUF_SIZE 4096 /* bytes */
83 /* DEFAULT_CHANNEL_SUBBUF_NUM must always be a power of 2 */
84 #define DEFAULT_CHANNEL_SUBBUF_NUM 4
85 #define DEFAULT_CHANNEL_SWITCH_TIMER 0 /* usec */
86 #define DEFAULT_CHANNEL_READ_TIMER 200 /* usec */
87 #define DEFAULT_CHANNEL_OUTPUT LTTNG_EVENT_MMAP
88
89 #define DEFAULT_METADATA_SUBBUF_SIZE 4096
90 #define DEFAULT_METADATA_SUBBUF_NUM 2
91
92 /* Kernel has different defaults */
93
94 /* DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE must always be a power of 2 */
95 #define DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE 262144 /* bytes */
96 /*
97 * DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM must always be a power of 2.
98 * Update help manually if override.
99 */
100 #define DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM DEFAULT_CHANNEL_SUBBUF_NUM
101 /* See lttng-kernel.h enum lttng_kernel_output for channel output */
102 #define DEFAULT_KERNEL_CHANNEL_OUTPUT LTTNG_EVENT_SPLICE
103
104 /* User space defaults */
105
106 /* Must be a power of 2 */
107 #define DEFAULT_UST_CHANNEL_SUBBUF_SIZE 4096 /* bytes */
108 /* Must be a power of 2. Update help manuall if override. */
109 #define DEFAULT_UST_CHANNEL_SUBBUF_NUM DEFAULT_CHANNEL_SUBBUF_NUM
110 /* See lttng-ust.h enum lttng_ust_output */
111 #define DEFAULT_UST_CHANNEL_OUTPUT LTTNG_EVENT_MMAP
112
113 /*
114 * Default timeout value for the sem_timedwait() call. Blocking forever is not
115 * wanted so a timeout is used to control the data flow and not freeze the
116 * session daemon.
117 */
118 #define DEFAULT_SEM_WAIT_TIMEOUT 30 /* in seconds */
119
120 extern size_t default_channel_subbuf_size;
121 extern size_t default_metadata_subbuf_size;
122 extern size_t default_ust_channel_subbuf_size;
123 extern size_t default_kernel_channel_subbuf_size;
124
125
126 /*
127 * Returns the default subbuf size.
128 *
129 * This function depends on a value that is set at constructor time, so it is
130 * unsafe to call it from another constructor.
131 */
132 static inline
133 size_t default_get_channel_subbuf_size(void)
134 {
135 return default_channel_subbuf_size;
136 }
137
138 /*
139 * Returns the default metadata subbuf size.
140 *
141 * This function depends on a value that is set at constructor time, so it is
142 * unsafe to call it from another constructor.
143 */
144 static inline
145 size_t default_get_metadata_subbuf_size(void)
146 {
147 return default_metadata_subbuf_size;
148 }
149
150 /*
151 * Returns the default subbuf size for the kernel domain.
152 *
153 * This function depends on a value that is set at constructor time, so it is
154 * unsafe to call it from another constructor.
155 */
156 static inline
157 size_t default_get_kernel_channel_subbuf_size(void)
158 {
159 return default_kernel_channel_subbuf_size;
160 }
161
162 /*
163 * Returns the default subbuf size for the UST domain.
164 *
165 * This function depends on a value that is set at constructor time, so it is
166 * unsafe to call it from another constructor.
167 */
168 static inline
169 size_t default_get_ust_channel_subbuf_size(void)
170 {
171 return default_ust_channel_subbuf_size;
172 }
173
174 #endif /* _DEFAULTS_H */
This page took 0.032713 seconds and 5 git commands to generate.