X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng%2Flttng.c;h=7fbbcd68f4f216388aedc661f8b2cef4951c0778;hp=9714e8a3476c10ad721362bca4d019c1c2fc62ae;hb=8c0faa1d8372c06087498985643ec9d2619d785b;hpb=4e332453e14dd64400835b60c0a93c3629e173d3 diff --git a/lttng/lttng.c b/lttng/lttng.c index 9714e8a34..7fbbcd68f 100644 --- a/lttng/lttng.c +++ b/lttng/lttng.c @@ -50,6 +50,7 @@ static int process_opt_list_traces(void); static int process_opt_create_session(void); static int process_kernel_create_trace(void); static int process_opt_kernel_event(void); +static int process_kernel_start_trace(void); static int set_session_uuid(void); static void sighandler(int sig); static int set_signal_handler(void); @@ -137,6 +138,22 @@ static int process_client_opt(void) } else { // Enable all events } + + if (auto_trace || opt_start_trace) { + DBG("Starting kernel tracing"); + ret = process_kernel_start_trace(); + if (ret < 0) { + goto end; + } + } + + if (opt_stop_trace) { + DBG("Stopping kernel tracing"); + ret = lttng_kernel_stop_tracing(); + if (ret < 0) { + goto end; + } + } } if (opt_trace_pid != 0) { @@ -175,6 +192,33 @@ error: /* fall through */ return ret; } +/* + * process_kernel_start_trace + * + * Start a kernel trace. + */ +static int process_kernel_start_trace(void) +{ + int ret; + + ret = lttng_kernel_create_stream(); + if (ret < 0) { + goto error; + } + + ret = lttng_kernel_start_tracing(); + if (ret < 0) { + goto error; + } + + MSG("Kernel tracing started"); + + return 0; + +error: + return ret; +} + /* * process_kernel_create_trace *