projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move and hide new 'lttng_counter_transport_*' private symbols
[lttng-ust.git]
/
liblttng-ust
/
lttng-ust-comm.c
diff --git
a/liblttng-ust/lttng-ust-comm.c
b/liblttng-ust/lttng-ust-comm.c
index 7e3bf45036d6f28741a337bd4d9004d3ae192b80..f45097b030116fc9a17958d74803adcdc8a8d867 100644
(file)
--- a/
liblttng-ust/lttng-ust-comm.c
+++ b/
liblttng-ust/lttng-ust-comm.c
@@
-373,9
+373,13
@@
extern void lttng_ring_buffer_client_overwrite_rt_exit(void);
extern void lttng_ring_buffer_client_discard_exit(void);
extern void lttng_ring_buffer_client_discard_rt_exit(void);
extern void lttng_ring_buffer_metadata_client_exit(void);
extern void lttng_ring_buffer_client_discard_exit(void);
extern void lttng_ring_buffer_client_discard_rt_exit(void);
extern void lttng_ring_buffer_metadata_client_exit(void);
+LTTNG_HIDDEN
extern void lttng_counter_client_percpu_32_modular_init(void);
extern void lttng_counter_client_percpu_32_modular_init(void);
+LTTNG_HIDDEN
extern void lttng_counter_client_percpu_32_modular_exit(void);
extern void lttng_counter_client_percpu_32_modular_exit(void);
+LTTNG_HIDDEN
extern void lttng_counter_client_percpu_64_modular_init(void);
extern void lttng_counter_client_percpu_64_modular_init(void);
+LTTNG_HIDDEN
extern void lttng_counter_client_percpu_64_modular_exit(void);
static char *get_map_shm(struct sock_info *sock_info);
extern void lttng_counter_client_percpu_64_modular_exit(void);
static char *get_map_shm(struct sock_info *sock_info);
@@
-430,17
+434,17
@@
void lttng_fixup_ust_mutex_nest_tls(void)
}
/*
}
/*
- * Fixup
urcu bp
TLS.
+ * Fixup
lttng-ust urcu
TLS.
*/
static
*/
static
-void lttng_fixup_
urcu_bp
_tls(void)
+void lttng_fixup_
lttng_ust_urcu
_tls(void)
{
(void) lttng_ust_urcu_read_ongoing();
}
void lttng_ust_fixup_tls(void)
{
{
(void) lttng_ust_urcu_read_ongoing();
}
void lttng_ust_fixup_tls(void)
{
- lttng_fixup_
urcu_bp
_tls();
+ lttng_fixup_
lttng_ust_urcu
_tls();
lttng_fixup_ringbuffer_tls();
lttng_fixup_vtid_tls();
lttng_fixup_nest_count_tls();
lttng_fixup_ringbuffer_tls();
lttng_fixup_vtid_tls();
lttng_fixup_nest_count_tls();
@@
-772,7
+776,7
@@
static
int handle_bytecode_recv(struct sock_info *sock_info,
int sock, struct ustcomm_ust_msg *lum)
{
int handle_bytecode_recv(struct sock_info *sock_info,
int sock, struct ustcomm_ust_msg *lum)
{
- struct lttng_ust_bytecode_node *bytecode;
+ struct lttng_ust_bytecode_node *bytecode
= NULL
;
enum lttng_ust_bytecode_node_type type;
const struct lttng_ust_objd_ops *ops;
uint32_t data_size, data_size_max, reloc_offset;
enum lttng_ust_bytecode_node_type type;
const struct lttng_ust_objd_ops *ops;
uint32_t data_size, data_size_max, reloc_offset;
@@
-829,7
+833,7
@@
int handle_bytecode_recv(struct sock_info *sock_info,
switch (len) {
case 0: /* orderly shutdown */
ret = 0;
switch (len) {
case 0: /* orderly shutdown */
ret = 0;
- goto e
rror_free_bytecode
;
+ goto e
nd
;
default:
if (len == bytecode->bc.len) {
DBG("Bytecode %s data received",
default:
if (len == bytecode->bc.len) {
DBG("Bytecode %s data received",
@@
-842,41
+846,33
@@
int handle_bytecode_recv(struct sock_info *sock_info,
ERR("%s remote end closed connection",
sock_info->name);
ret = len;
ERR("%s remote end closed connection",
sock_info->name);
ret = len;
- goto e
rror_free_bytecode
;
+ goto e
nd
;
}
ret = len;
}
ret = len;
- goto e
rror_free_bytecode
;
+ goto e
nd
;
} else {
DBG("Incorrect %s bytecode data message size: %zd",
bytecode_type_str(lum->cmd), len);
ret = -EINVAL;
} else {
DBG("Incorrect %s bytecode data message size: %zd",
bytecode_type_str(lum->cmd), len);
ret = -EINVAL;
- goto e
rror_free_bytecode
;
+ goto e
nd
;
}
}
ops = objd_ops(lum->handle);
if (!ops) {
ret = -ENOENT;
}
}
ops = objd_ops(lum->handle);
if (!ops) {
ret = -ENOENT;
- goto e
rror_free_bytecode
;
+ goto e
nd
;
}
}
- if (ops->cmd)
{
+ if (ops->cmd)
ret = ops->cmd(lum->handle, lum->cmd,
ret = ops->cmd(lum->handle, lum->cmd,
- (unsigned long) bytecode,
+ (unsigned long)
&
bytecode,
NULL, sock_info);
NULL, sock_info);
- if (ret)
- goto error_free_bytecode;
- /* don't free bytecode if everything went fine. */
- } else {
+ else
ret = -ENOSYS;
ret = -ENOSYS;
- goto error_free_bytecode;
- }
-
- goto end;
-error_free_bytecode:
- free(bytecode);
end:
end:
+ free(bytecode);
return ret;
}
return ret;
}
@@
-971,18
+967,13
@@
int handle_message(struct sock_info *sock_info,
goto error;
}
}
goto error;
}
}
- if (ops->cmd)
{
+ if (ops->cmd)
ret = ops->cmd(lum->handle, lum->cmd,
ret = ops->cmd(lum->handle, lum->cmd,
- (unsigned long) node,
+ (unsigned long)
&
node,
&args, sock_info);
&args, sock_info);
- if (ret) {
- free(node);
- }
- /* Don't free exclusion data if everything went fine. */
- } else {
+ else
ret = -ENOSYS;
ret = -ENOSYS;
- free(node);
- }
+ free(node);
break;
}
case LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE:
break;
}
case LTTNG_UST_EVENT_NOTIFIER_GROUP_CREATE:
@@
-1216,6
+1207,7
@@
int handle_message(struct sock_info *sock_info,
&args, sock_info);
else
ret = -ENOSYS;
&args, sock_info);
else
ret = -ENOSYS;
+ free(args.counter.counter_data);
break;
}
case LTTNG_UST_COUNTER_GLOBAL:
break;
}
case LTTNG_UST_COUNTER_GLOBAL:
@@
-1233,6
+1225,16
@@
int handle_message(struct sock_info *sock_info,
&args, sock_info);
else
ret = -ENOSYS;
&args, sock_info);
else
ret = -ENOSYS;
+ if (args.counter_shm.shm_fd >= 0) {
+ int close_ret;
+
+ lttng_ust_lock_fd_tracker();
+ close_ret = close(args.counter_shm.shm_fd);
+ lttng_ust_unlock_fd_tracker();
+ args.counter_shm.shm_fd = -1;
+ if (close_ret)
+ PERROR("close");
+ }
break;
}
case LTTNG_UST_COUNTER_CPU:
break;
}
case LTTNG_UST_COUNTER_CPU:
@@
-1250,6
+1252,16
@@
int handle_message(struct sock_info *sock_info,
&args, sock_info);
else
ret = -ENOSYS;
&args, sock_info);
else
ret = -ENOSYS;
+ if (args.counter_shm.shm_fd >= 0) {
+ int close_ret;
+
+ lttng_ust_lock_fd_tracker();
+ close_ret = close(args.counter_shm.shm_fd);
+ lttng_ust_unlock_fd_tracker();
+ args.counter_shm.shm_fd = -1;
+ if (close_ret)
+ PERROR("close");
+ }
break;
}
case LTTNG_UST_EVENT_NOTIFIER_CREATE:
break;
}
case LTTNG_UST_EVENT_NOTIFIER_CREATE:
@@
-2394,8
+2406,6
@@
void ust_before_fork(sigset_t *save_sigset)
ust_lock_nocheck();
lttng_ust_urcu_before_fork();
ust_lock_nocheck();
lttng_ust_urcu_before_fork();
- if (lttng_ust_liburcu_bp_before_fork)
- lttng_ust_liburcu_bp_before_fork();
lttng_ust_lock_fd_tracker();
lttng_perf_lock();
}
lttng_ust_lock_fd_tracker();
lttng_perf_lock();
}
@@
-2424,8
+2434,6
@@
void ust_after_fork_parent(sigset_t *restore_sigset)
return;
DBG("process %d", getpid());
lttng_ust_urcu_after_fork_parent();
return;
DBG("process %d", getpid());
lttng_ust_urcu_after_fork_parent();
- if (lttng_ust_liburcu_bp_after_fork_parent)
- lttng_ust_liburcu_bp_after_fork_parent();
/* Release mutexes and reenable signals */
ust_after_fork_common(restore_sigset);
}
/* Release mutexes and reenable signals */
ust_after_fork_common(restore_sigset);
}
@@
-2452,8
+2460,6
@@
void ust_after_fork_child(sigset_t *restore_sigset)
DBG("process %d", getpid());
/* Release urcu mutexes */
lttng_ust_urcu_after_fork_child();
DBG("process %d", getpid());
/* Release urcu mutexes */
lttng_ust_urcu_after_fork_child();
- if (lttng_ust_liburcu_bp_after_fork_child)
- lttng_ust_liburcu_bp_after_fork_child();
lttng_ust_cleanup(0);
/* Release mutexes and reenable signals */
ust_after_fork_common(restore_sigset);
lttng_ust_cleanup(0);
/* Release mutexes and reenable signals */
ust_after_fork_common(restore_sigset);
This page took
0.027994 seconds
and
4
git commands to generate.