projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement support for lttng-modules syscall filtering
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
main.c
diff --git
a/src/bin/lttng-sessiond/main.c
b/src/bin/lttng-sessiond/main.c
index fdc53760330d6d12766dc9ed370b1a1b641f5290..22dd28e1e9df1538baa242e595284580db67dc60 100644
(file)
--- a/
src/bin/lttng-sessiond/main.c
+++ b/
src/bin/lttng-sessiond/main.c
@@
-67,7
+67,7
@@
#include "health-sessiond.h"
#include "testpoint.h"
#include "ust-thread.h"
#include "health-sessiond.h"
#include "testpoint.h"
#include "ust-thread.h"
-#include "
jul
-thread.h"
+#include "
agent
-thread.h"
#include "save.h"
#include "load-session-thread.h"
#include "save.h"
#include "load-session-thread.h"
@@
-153,10
+153,11
@@
static const struct option long_options[] = {
{ "verbose-consumer", 0, 0, 'Z' },
{ "no-kernel", 0, 0, 'N' },
{ "pidfile", 1, 0, 'p' },
{ "verbose-consumer", 0, 0, 'Z' },
{ "no-kernel", 0, 0, 'N' },
{ "pidfile", 1, 0, 'p' },
- { "
jul
-tcp-port", 1, 0, 'J' },
+ { "
agent
-tcp-port", 1, 0, 'J' },
{ "config", 1, 0, 'f' },
{ "load", 1, 0, 'l' },
{ "kmod-probes", 1, 0, 'P' },
{ "config", 1, 0, 'f' },
{ "load", 1, 0, 'l' },
{ "kmod-probes", 1, 0, 'P' },
+ { "extra-kmod-probes", 1, 0, 'e' },
{ NULL, 0, 0, 0 }
};
{ NULL, 0, 0, 0 }
};
@@
-204,7
+205,7
@@
static pthread_t kernel_thread;
static pthread_t dispatch_thread;
static pthread_t health_thread;
static pthread_t ht_cleanup_thread;
static pthread_t dispatch_thread;
static pthread_t health_thread;
static pthread_t ht_cleanup_thread;
-static pthread_t
jul
_reg_thread;
+static pthread_t
agent
_reg_thread;
static pthread_t load_session_thread;
/*
static pthread_t load_session_thread;
/*
@@
-289,8
+290,8
@@
long page_size;
/* Application health monitoring */
struct health_app *health_sessiond;
/* Application health monitoring */
struct health_app *health_sessiond;
-/*
JUL TCP port for registration. Used by the JUL
thread. */
-unsigned int
jul_tcp_port = DEFAULT_JUL
_TCP_PORT;
+/*
Agent TCP port for registration. Used by the agent
thread. */
+unsigned int
agent_tcp_port = DEFAULT_AGENT
_TCP_PORT;
/* Am I root or not. */
int is_root; /* Set to 1 if the daemon is running as root */
/* Am I root or not. */
int is_root; /* Set to 1 if the daemon is running as root */
@@
-571,7
+572,7
@@
static void cleanup(void)
(void) unlink(path);
snprintf(path, PATH_MAX, "%s/%s", rundir,
(void) unlink(path);
snprintf(path, PATH_MAX, "%s/%s", rundir,
- DEFAULT_LTTNG_SESSIOND_
JUL
PORT_FILE);
+ DEFAULT_LTTNG_SESSIOND_
AGENT
PORT_FILE);
DBG("Removing %s", path);
(void) unlink(path);
DBG("Removing %s", path);
(void) unlink(path);
@@
-2593,6
+2594,7
@@
static int copy_session_consumer(int domain, struct ltt_session *session)
dir_name = DEFAULT_KERNEL_TRACE_DIR;
break;
case LTTNG_DOMAIN_JUL:
dir_name = DEFAULT_KERNEL_TRACE_DIR;
break;
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_UST:
DBG3("Copying tracing session consumer output in UST session");
if (session->ust_session->consumer) {
case LTTNG_DOMAIN_UST:
DBG3("Copying tracing session consumer output in UST session");
if (session->ust_session->consumer) {
@@
-2637,6
+2639,7
@@
static int create_ust_session(struct ltt_session *session,
switch (domain->type) {
case LTTNG_DOMAIN_JUL:
switch (domain->type) {
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_UST:
break;
default:
case LTTNG_DOMAIN_UST:
break;
default:
@@
-2882,6
+2885,7
@@
static int process_client_msg(struct command_ctx *cmd_ctx, int sock,
}
break;
case LTTNG_DOMAIN_JUL:
}
break;
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_UST:
if (!cmd_ctx->session->ust_session) {
ret = LTTNG_ERR_NO_CHANNEL;
case LTTNG_DOMAIN_UST:
if (!cmd_ctx->session->ust_session) {
ret = LTTNG_ERR_NO_CHANNEL;
@@
-2963,6
+2967,7
@@
static int process_client_msg(struct command_ctx *cmd_ctx, int sock,
break;
case LTTNG_DOMAIN_JUL:
break;
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_UST:
{
if (!ust_app_supported()) {
case LTTNG_DOMAIN_UST:
{
if (!ust_app_supported()) {
@@
-3056,6
+3061,7
@@
skip_domain:
cmd_ctx->lsm->cmd_type == LTTNG_STOP_TRACE) {
switch (cmd_ctx->lsm->domain.type) {
case LTTNG_DOMAIN_JUL:
cmd_ctx->lsm->cmd_type == LTTNG_STOP_TRACE) {
switch (cmd_ctx->lsm->domain.type) {
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_UST:
if (uatomic_read(&ust_consumerd_state) != CONSUMER_STARTED) {
ret = LTTNG_ERR_NO_USTCONSUMERD;
case LTTNG_DOMAIN_UST:
if (uatomic_read(&ust_consumerd_state) != CONSUMER_STARTED) {
ret = LTTNG_ERR_NO_USTCONSUMERD;
@@
-3116,17
+3122,21
@@
skip_domain:
}
case LTTNG_DISABLE_EVENT:
{
}
case LTTNG_DISABLE_EVENT:
{
+ /* FIXME: passing packed structure to non-packed pointer */
+ /* TODO: handle filter */
ret = cmd_disable_event(cmd_ctx->session, cmd_ctx->lsm->domain.type,
cmd_ctx->lsm->u.disable.channel_name,
ret = cmd_disable_event(cmd_ctx->session, cmd_ctx->lsm->domain.type,
cmd_ctx->lsm->u.disable.channel_name,
-
cmd_ctx->lsm->u.disable.name
);
+
&cmd_ctx->lsm->u.disable.event
);
break;
}
case LTTNG_DISABLE_ALL_EVENT:
{
DBG("Disabling all events");
break;
}
case LTTNG_DISABLE_ALL_EVENT:
{
DBG("Disabling all events");
+ /* FIXME: passing packed structure to non-packed pointer */
ret = cmd_disable_event_all(cmd_ctx->session, cmd_ctx->lsm->domain.type,
ret = cmd_disable_event_all(cmd_ctx->session, cmd_ctx->lsm->domain.type,
- cmd_ctx->lsm->u.disable.channel_name);
+ cmd_ctx->lsm->u.disable.channel_name,
+ &cmd_ctx->lsm->u.disable.event);
break;
}
case LTTNG_ENABLE_CHANNEL:
break;
}
case LTTNG_ENABLE_CHANNEL:
@@
-4205,10
+4215,11
@@
static void usage(void)
fprintf(stderr, " -p, --pidfile FILE Write a pid to FILE name overriding the default value.\n");
fprintf(stderr, " --verbose-consumer Verbose mode for consumer. Activate DBG() macro.\n");
fprintf(stderr, " --no-kernel Disable kernel tracer\n");
fprintf(stderr, " -p, --pidfile FILE Write a pid to FILE name overriding the default value.\n");
fprintf(stderr, " --verbose-consumer Verbose mode for consumer. Activate DBG() macro.\n");
fprintf(stderr, " --no-kernel Disable kernel tracer\n");
- fprintf(stderr, " --
jul-tcp-port JUL application
registration TCP port\n");
+ fprintf(stderr, " --
agent-tcp-port Agent
registration TCP port\n");
fprintf(stderr, " -f --config Load daemon configuration file\n");
fprintf(stderr, " -l --load PATH Load session configuration\n");
fprintf(stderr, " --kmod-probes Specify kernel module probes to load\n");
fprintf(stderr, " -f --config Load daemon configuration file\n");
fprintf(stderr, " -l --load PATH Load session configuration\n");
fprintf(stderr, " --kmod-probes Specify kernel module probes to load\n");
+ fprintf(stderr, " --extra-kmod-probes Specify extra kernel module probes to load\n");
}
/*
}
/*
@@
-4361,22
+4372,22
@@
static int set_option(int opt, const char *arg, const char *optname)
ret = -ENOMEM;
}
break;
ret = -ENOMEM;
}
break;
- case 'J': /*
JUL
TCP port. */
+ case 'J': /*
Agent
TCP port. */
{
unsigned long v;
errno = 0;
v = strtoul(arg, NULL, 0);
if (errno != 0 || !isdigit(arg[0])) {
{
unsigned long v;
errno = 0;
v = strtoul(arg, NULL, 0);
if (errno != 0 || !isdigit(arg[0])) {
- ERR("Wrong value in --
jul
-tcp-port parameter: %s", arg);
+ ERR("Wrong value in --
agent
-tcp-port parameter: %s", arg);
return -1;
}
if (v == 0 || v >= 65535) {
return -1;
}
if (v == 0 || v >= 65535) {
- ERR("Port overflow in --
jul
-tcp-port parameter: %s", arg);
+ ERR("Port overflow in --
agent
-tcp-port parameter: %s", arg);
return -1;
}
return -1;
}
-
jul
_tcp_port = (uint32_t) v;
- DBG3("
JUL TCP port set to non default: %u", jul
_tcp_port);
+
agent
_tcp_port = (uint32_t) v;
+ DBG3("
Agent TCP port set to non default: %u", agent
_tcp_port);
break;
}
case 'l':
break;
}
case 'l':
@@
-4395,6
+4406,14
@@
static int set_option(int opt, const char *arg, const char *optname)
ret = -ENOMEM;
}
break;
ret = -ENOMEM;
}
break;
+ case 'e':
+ free(kmod_extra_probes_list);
+ kmod_extra_probes_list = strdup(arg);
+ if (!kmod_extra_probes_list) {
+ perror("strdup");
+ ret = -ENOMEM;
+ }
+ break;
case 'f':
/* This is handled in set_options() thus silent break. */
break;
case 'f':
/* This is handled in set_options() thus silent break. */
break;
@@
-4916,9
+4935,9
@@
error:
}
/*
}
/*
- * Write
JUL
TCP port using the rundir.
+ * Write
agent
TCP port using the rundir.
*/
*/
-static void write_
jul
port(void)
+static void write_
agent_
port(void)
{
int ret;
char path[PATH_MAX];
{
int ret;
char path[PATH_MAX];
@@
-4926,18
+4945,18
@@
static void write_julport(void)
assert(rundir);
ret = snprintf(path, sizeof(path), "%s/"
assert(rundir);
ret = snprintf(path, sizeof(path), "%s/"
- DEFAULT_LTTNG_SESSIOND_
JUL
PORT_FILE, rundir);
+ DEFAULT_LTTNG_SESSIOND_
AGENT
PORT_FILE, rundir);
if (ret < 0) {
if (ret < 0) {
- PERROR("snprintf
jul
port path");
+ PERROR("snprintf
agent
port path");
goto error;
}
/*
goto error;
}
/*
- * Create TCP
JUL
port file in rundir. Return value is of no importance.
+ * Create TCP
agent
port file in rundir. Return value is of no importance.
* The execution will continue even though we are not able to write the
* file.
*/
* The execution will continue even though we are not able to write the
* file.
*/
- (void) utils_create_pid_file(
jul
_tcp_port, path);
+ (void) utils_create_pid_file(
agent
_tcp_port, path);
error:
return;
error:
return;
@@
-5174,8
+5193,8
@@
int main(int argc, char **argv)
*/
ust_app_ht_alloc();
*/
ust_app_ht_alloc();
- /* Initialize
JUL
domain subsystem. */
- if ((ret =
jul_init
()) < 0) {
+ /* Initialize
agent
domain subsystem. */
+ if ((ret =
agent_setup
()) < 0) {
/* ENOMEM at this point. */
goto error;
}
/* ENOMEM at this point. */
goto error;
}
@@
-5279,7
+5298,7
@@
int main(int argc, char **argv)
}
write_pidfile();
}
write_pidfile();
- write_
jul
port();
+ write_
agent_
port();
/* Initialize communication library */
lttcomm_init();
/* Initialize communication library */
lttcomm_init();
@@
-5357,12
+5376,12
@@
int main(int argc, char **argv)
goto exit_apps_notify;
}
goto exit_apps_notify;
}
- /* Create
JUL
registration thread. */
- ret = pthread_create(&
jul
_reg_thread, NULL,
-
jul
_thread_manage_registration, (void *) NULL);
+ /* Create
agent
registration thread. */
+ ret = pthread_create(&
agent
_reg_thread, NULL,
+
agent
_thread_manage_registration, (void *) NULL);
if (ret != 0) {
if (ret != 0) {
- PERROR("pthread_create
JUL
");
- goto exit_
jul
_reg;
+ PERROR("pthread_create
agent
");
+ goto exit_
agent
_reg;
}
/* Don't start this thread if kernel tracing is not requested nor root */
}
/* Don't start this thread if kernel tracing is not requested nor root */
@@
-5388,13
+5407,13
@@
int main(int argc, char **argv)
}
exit_kernel:
}
exit_kernel:
- ret = pthread_join(
jul
_reg_thread, &status);
+ ret = pthread_join(
agent
_reg_thread, &status);
if (ret != 0) {
if (ret != 0) {
- PERROR("pthread_join
JUL
");
+ PERROR("pthread_join
agent
");
goto error; /* join error, exit without cleanup */
}
goto error; /* join error, exit without cleanup */
}
-exit_
jul
_reg:
+exit_
agent
_reg:
ret = pthread_join(apps_notify_thread, &status);
if (ret != 0) {
PERROR("pthread_join apps notify");
ret = pthread_join(apps_notify_thread, &status);
if (ret != 0) {
PERROR("pthread_join apps notify");
This page took
0.032161 seconds
and
4
git commands to generate.