Make futex compat internal to liblttng-ust
[lttng-ust.git] / src / lib / lttng-ust / lttng-ust-comm.c
index cd5b378c49be203d8d9fa72e37dc43f327fa86e3..61f0b34adc9d634113119ddf323a8b056aff8bde 100644 (file)
@@ -37,8 +37,9 @@
 #include <lttng/ust-libc-wrapper.h>
 #include <lttng/ust-thread.h>
 #include <lttng/ust-tracer.h>
+#include <lttng/ust-common.h>
 #include <urcu/tls-compat.h>
-#include "common/compat/futex.h"
+#include "lib/lttng-ust/futex.h"
 #include "common/ustcomm.h"
 #include "common/ust-fd.h"
 #include "common/logging.h"
@@ -263,7 +264,7 @@ struct sock_info {
 };
 
 /* Socket from app (connect) to session daemon (listen) for communication */
-struct sock_info global_apps = {
+static struct sock_info global_apps = {
        .name = "global",
        .global = 1,
 
@@ -285,7 +286,7 @@ struct sock_info global_apps = {
 
 /* TODO: allow global_apps_sock_path override */
 
-struct sock_info local_apps = {
+static struct sock_info local_apps = {
        .name = "local",
        .global = 0,
        .root_handle = -1,
@@ -356,24 +357,6 @@ static int got_timeout_env;
 
 static char *get_map_shm(struct sock_info *sock_info);
 
-ssize_t lttng_ust_read(int fd, void *buf, size_t len)
-{
-       ssize_t ret;
-       size_t copied = 0, to_copy = len;
-
-       do {
-               ret = read(fd, buf + copied, to_copy);
-               if (ret > 0) {
-                       copied += ret;
-                       to_copy -= ret;
-               }
-       } while ((ret > 0 && to_copy > 0)
-               || (ret < 0 && errno == EINTR));
-       if (ret > 0) {
-               ret = copied;
-       }
-       return ret;
-}
 /*
  * Returns the HOME directory path. Caller MUST NOT free(3) the returned
  * pointer.
@@ -391,48 +374,48 @@ const char *get_lttng_home_dir(void)
 }
 
 /*
- * Force a read (imply TLS fixup for dlopen) of TLS variables.
+ * Force a read (imply TLS allocation for dlopen) of TLS variables.
  */
 static
-void lttng_fixup_nest_count_tls(void)
+void lttng_nest_count_alloc_tls(void)
 {
        asm volatile ("" : : "m" (URCU_TLS(lttng_ust_nest_count)));
 }
 
 static
-void lttng_fixup_ust_mutex_nest_tls(void)
+void lttng_ust_mutex_nest_alloc_tls(void)
 {
        asm volatile ("" : : "m" (URCU_TLS(ust_mutex_nest)));
 }
 
 /*
- * Fixup lttng-ust urcu TLS.
+ * Allocate lttng-ust urcu TLS.
  */
 static
-void lttng_fixup_lttng_ust_urcu_tls(void)
+void lttng_lttng_ust_urcu_alloc_tls(void)
 {
        (void) lttng_ust_urcu_read_ongoing();
 }
 
-void lttng_ust_fixup_tls(void)
+void lttng_ust_alloc_tls(void)
 {
-       lttng_fixup_lttng_ust_urcu_tls();
-       lttng_fixup_ringbuffer_tls();
-       lttng_fixup_vtid_tls();
-       lttng_fixup_nest_count_tls();
-       lttng_fixup_procname_tls();
-       lttng_fixup_ust_mutex_nest_tls();
-       lttng_ust_fixup_perf_counter_tls();
-       lttng_ust_fixup_fd_tracker_tls();
-       lttng_fixup_cgroup_ns_tls();
-       lttng_fixup_ipc_ns_tls();
-       lttng_fixup_net_ns_tls();
-       lttng_fixup_time_ns_tls();
-       lttng_fixup_uts_ns_tls();
-       lttng_ust_fixup_ring_buffer_client_discard_tls();
-       lttng_ust_fixup_ring_buffer_client_discard_rt_tls();
-       lttng_ust_fixup_ring_buffer_client_overwrite_tls();
-       lttng_ust_fixup_ring_buffer_client_overwrite_rt_tls();
+       lttng_lttng_ust_urcu_alloc_tls();
+       lttng_ringbuffer_alloc_tls();
+       lttng_vtid_alloc_tls();
+       lttng_nest_count_alloc_tls();
+       lttng_procname_alloc_tls();
+       lttng_ust_mutex_nest_alloc_tls();
+       lttng_ust_perf_counter_alloc_tls();
+       lttng_ust_common_alloc_tls();
+       lttng_cgroup_ns_alloc_tls();
+       lttng_ipc_ns_alloc_tls();
+       lttng_net_ns_alloc_tls();
+       lttng_time_ns_alloc_tls();
+       lttng_uts_ns_alloc_tls();
+       lttng_ust_ring_buffer_client_discard_alloc_tls();
+       lttng_ust_ring_buffer_client_discard_rt_alloc_tls();
+       lttng_ust_ring_buffer_client_overwrite_alloc_tls();
+       lttng_ust_ring_buffer_client_overwrite_rt_alloc_tls();
 }
 
 /*
@@ -453,7 +436,7 @@ void lttng_ust_init_thread(void)
         * ensure those are initialized before a signal handler nesting over
         * this thread attempts to use them.
         */
-       lttng_ust_fixup_tls();
+       lttng_ust_alloc_tls();
 }
 
 int lttng_get_notify_socket(void *owner)
@@ -638,7 +621,7 @@ void get_allow_blocking(void)
 }
 
 static
-int register_to_sessiond(int socket, enum ustctl_socket_type type)
+int register_to_sessiond(int socket, enum lttng_ust_ctl_socket_type type)
 {
        return ustcomm_send_reg_msg(socket,
                type,
@@ -1758,7 +1741,7 @@ void *ust_listener_thread(void *arg)
        int sock, ret, prev_connect_failed = 0, has_waited = 0, fd;
        long timeout;
 
-       lttng_ust_fixup_tls();
+       lttng_ust_alloc_tls();
        /*
         * If available, add '-ust' to the end of this thread's
         * process name
@@ -1876,7 +1859,7 @@ restart:
                sock_info->root_handle = ret;
        }
 
-       ret = register_to_sessiond(sock_info->socket, USTCTL_SOCKET_CMD);
+       ret = register_to_sessiond(sock_info->socket, LTTNG_UST_CTL_SOCKET_CMD);
        if (ret < 0) {
                ERR("Error registering to %s ust cmd socket",
                        sock_info->name);
@@ -1969,7 +1952,7 @@ restart:
        }
 
        ret = register_to_sessiond(sock_info->notify_socket,
-                       USTCTL_SOCKET_NOTIFY);
+                       LTTNG_UST_CTL_SOCKET_NOTIFY);
        if (ret < 0) {
                ERR("Error registering to %s ust notify socket",
                        sock_info->name);
@@ -2061,7 +2044,7 @@ quit:
  * Weak symbol to call when the ust malloc wrapper is not loaded.
  */
 __attribute__((weak))
-void lttng_ust_libc_wrapper_malloc_init(void)
+void lttng_ust_libc_wrapper_malloc_ctor(void)
 {
 }
 
@@ -2070,10 +2053,10 @@ void lttng_ust_libc_wrapper_malloc_init(void)
  * sessiond by polling the application common named pipe.
  */
 static
-void lttng_ust_init(void)
+void lttng_ust_ctor(void)
        __attribute__((constructor));
 static
-void lttng_ust_init(void)
+void lttng_ust_ctor(void)
 {
        struct timespec constructor_timeout;
        sigset_t sig_all_blocked, orig_parent_mask;
@@ -2086,11 +2069,11 @@ void lttng_ust_init(void)
                return;
 
        /*
-        * Fixup interdependency between TLS fixup mutex (which happens
+        * Fixup interdependency between TLS allocation mutex (which happens
         * to be the dynamic linker mutex) and ust_lock, taken within
         * the ust lock.
         */
-       lttng_ust_fixup_tls();
+       lttng_ust_alloc_tls();
 
        lttng_ust_loaded = 1;
 
@@ -2131,8 +2114,10 @@ void lttng_ust_init(void)
        lttng_ust_logging_init();
        lttng_ust_getenv_init();
 
+       /* Call the liblttng-ust-common constructor. */
+       lttng_ust_common_ctor();
+
        lttng_ust_tp_init();
-       lttng_ust_init_fd_tracker();
        lttng_ust_clock_init();
        lttng_ust_getcpu_plugin_init();
        lttng_ust_statedump_init();
@@ -2142,7 +2127,7 @@ void lttng_ust_init(void)
        /*
         * Invoke ust malloc wrapper init before starting other threads.
         */
-       lttng_ust_libc_wrapper_malloc_init();
+       lttng_ust_libc_wrapper_malloc_ctor();
 
        timeout_mode = get_constructor_timeout(&constructor_timeout);
 
@@ -2393,8 +2378,8 @@ void lttng_ust_before_fork(sigset_t *save_sigset)
        sigset_t all_sigs;
        int ret;
 
-       /* Fixup lttng-ust TLS. */
-       lttng_ust_fixup_tls();
+       /* Allocate lttng-ust TLS. */
+       lttng_ust_alloc_tls();
 
        if (URCU_TLS(lttng_ust_nest_count))
                return;
@@ -2445,7 +2430,7 @@ void lttng_ust_after_fork_parent(sigset_t *restore_sigset)
  * After fork, in the child, we need to cleanup all the leftover state,
  * except the worker thread which already magically disappeared thanks
  * to the weird Linux fork semantics. After tyding up, we call
- * lttng_ust_init() again to start over as a new PID.
+ * lttng_ust_ctor() again to start over as a new PID.
  *
  * This is meant for forks() that have tracing in the child between the
  * fork and following exec call (if there is any).
@@ -2466,7 +2451,7 @@ void lttng_ust_after_fork_child(sigset_t *restore_sigset)
        lttng_ust_cleanup(0);
        /* Release mutexes and reenable signals */
        ust_after_fork_common(restore_sigset);
-       lttng_ust_init();
+       lttng_ust_ctor();
 }
 
 void lttng_ust_after_setns(void)
This page took 0.028258 seconds and 4 git commands to generate.