Add -j/--jul to lttng UI and ABI
[lttng-tools.git] / src / bin / lttng / commands / enable_channels.c
index 4816d62c68263a4a26a245fabc9764c17365424e..18f8d020eef5089ef4309ec9608a3ebd5589fcd7 100644 (file)
@@ -89,7 +89,7 @@ static struct poptOption long_options[] = {
  */
 static void usage(FILE *ofp)
 {
-       fprintf(ofp, "usage: lttng enable-channel NAME[,NAME2,...] [-u|-k] [OPTIONS]\n");
+       fprintf(ofp, "usage: lttng enable-channel NAME[,NAME2,...] (-u | -k) [OPTIONS]\n");
        fprintf(ofp, "\n");
        fprintf(ofp, "Options:\n");
        fprintf(ofp, "  -h, --help               Show this help\n");
@@ -104,28 +104,42 @@ static void usage(FILE *ofp)
        fprintf(ofp, "      --overwrite          Flight recorder mode%s\n",
                DEFAULT_CHANNEL_OVERWRITE ? " (default)" : "");
        fprintf(ofp, "      --subbuf-size SIZE   Subbuffer size in bytes {+k,+M,+G}\n");
-       fprintf(ofp, "                               (default: %zu, kernel default: %zu)\n",
-               default_get_channel_subbuf_size(),
-               default_get_kernel_channel_subbuf_size());
+       fprintf(ofp, "                               (default UST uid: %zu, UST pid: %zu, kernel: %zu, metadata: %zu)\n",
+               default_get_ust_uid_channel_subbuf_size(),
+               default_get_ust_pid_channel_subbuf_size(),
+               default_get_kernel_channel_subbuf_size(),
+               default_get_metadata_subbuf_size());
        fprintf(ofp, "                               Rounded up to the next power of 2.\n");
        fprintf(ofp, "      --num-subbuf NUM     Number of subbufers\n");
-       fprintf(ofp, "                               (default: %u)\n",
-               DEFAULT_CHANNEL_SUBBUF_NUM);
+       fprintf(ofp, "                               (default UST uid: %u, UST pid: %u, kernel: %u, metadata: %u)\n",
+               DEFAULT_UST_UID_CHANNEL_SUBBUF_NUM, DEFAULT_UST_PID_CHANNEL_SUBBUF_NUM,
+               DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM, DEFAULT_METADATA_SUBBUF_NUM);
        fprintf(ofp, "                               Rounded up to the next power of 2.\n");
-       fprintf(ofp, "      --switch-timer USEC  Switch timer interval in usec (default: %u)\n",
-               DEFAULT_CHANNEL_SWITCH_TIMER);
-       fprintf(ofp, "      --read-timer USEC    Read timer interval in usec (UST default: %u, kernel default: %u)\n",
-               DEFAULT_UST_CHANNEL_READ_TIMER, DEFAULT_KERNEL_CHANNEL_READ_TIMER);
+       fprintf(ofp, "      --switch-timer USEC  Switch timer interval in usec\n");
+       fprintf(ofp, "                               (default UST uid: %u, UST pid: %u, kernel: %u, metadata: %u)\n",
+               DEFAULT_UST_UID_CHANNEL_SWITCH_TIMER, DEFAULT_UST_PID_CHANNEL_SWITCH_TIMER,
+               DEFAULT_KERNEL_CHANNEL_SWITCH_TIMER, DEFAULT_METADATA_SWITCH_TIMER);
+       fprintf(ofp, "      --read-timer USEC    Read timer interval in usec.\n");
+       fprintf(ofp, "                               (default UST uid: %u, UST pid: %u, kernel: %u, metadata: %u)\n",
+               DEFAULT_UST_UID_CHANNEL_READ_TIMER, DEFAULT_UST_UID_CHANNEL_READ_TIMER,
+               DEFAULT_KERNEL_CHANNEL_READ_TIMER, DEFAULT_METADATA_READ_TIMER);
        fprintf(ofp, "      --output TYPE        Channel output type (Values: %s, %s)\n",
                        output_mmap, output_splice);
-       fprintf(ofp, "      --buffers-uid        Use per UID buffer (-u only)\n");
-       fprintf(ofp, "      --buffers-pid        Use per PID buffer (-u only)\n");
+       fprintf(ofp, "                               (default UST uid: %s, UST pid: %s, kernel: %s, metadata: %s)\n",
+                       DEFAULT_UST_UID_CHANNEL_OUTPUT == LTTNG_EVENT_MMAP ? output_mmap : output_splice,
+                       DEFAULT_UST_PID_CHANNEL_OUTPUT == LTTNG_EVENT_MMAP ? output_mmap : output_splice,
+                       DEFAULT_KERNEL_CHANNEL_OUTPUT == LTTNG_EVENT_MMAP ? output_mmap : output_splice,
+                       DEFAULT_METADATA_OUTPUT == LTTNG_EVENT_MMAP ? output_mmap : output_splice);
+       fprintf(ofp, "      --buffers-uid        Use per UID buffer (-u/-j only)\n");
+       fprintf(ofp, "      --buffers-pid        Use per PID buffer (-u/-j only)\n");
        fprintf(ofp, "      --buffers-global     Use shared buffer for the whole system (-k only)\n");
        fprintf(ofp, "  -C, --tracefile-size SIZE\n");
-       fprintf(ofp, "                           Maximum size of each tracefile within a stream (in bytes).\n");
+       fprintf(ofp, "                           Maximum size of each tracefile within a stream (in bytes). 0 means unlimited.\n");
+       fprintf(ofp, "                               (default: %u)\n", DEFAULT_CHANNEL_TRACEFILE_SIZE);
        fprintf(ofp, "  -W, --tracefile-count COUNT\n");
        fprintf(ofp, "                           Used in conjunction with -C option, this will limit the number\n");
-       fprintf(ofp, "                           of files created to the specified count.\n");
+       fprintf(ofp, "                           of files created to the specified count. 0 means unlimited.\n");
+       fprintf(ofp, "                               (default: %u)\n", DEFAULT_CHANNEL_TRACEFILE_COUNT);
        fprintf(ofp, "\n");
 }
 
@@ -188,24 +202,31 @@ static int enable_channel(char *session_name)
                }
        } else if (opt_userspace) {
                dom.type = LTTNG_DOMAIN_UST;
-               if (opt_buffer_uid) {
-                       dom.buf_type = LTTNG_BUFFER_PER_UID;
+               if (opt_buffer_pid) {
+                       dom.buf_type = LTTNG_BUFFER_PER_PID;
                } else {
                        if (opt_buffer_global) {
                                ERR("Buffer type not supported for domain -u");
                                ret = CMD_ERROR;
                                goto error;
                        }
-                       dom.buf_type = LTTNG_BUFFER_PER_PID;
+                       dom.buf_type = LTTNG_BUFFER_PER_UID;
                }
        } else {
-               ERR("Please specify a tracer (-k/--kernel or -u/--userspace)");
+               print_missing_domain();
                ret = CMD_ERROR;
                goto error;
        }
 
        set_default_attr(&dom);
 
+       if (chan.attr.tracefile_size == 0 && chan.attr.tracefile_count) {
+               ERR("Missing option --tracefile-size. "
+                               "A file count without a size won't do anything.");
+               ret = CMD_ERROR;
+               goto error;
+       }
+
        if ((chan.attr.tracefile_size > 0) &&
                        (chan.attr.tracefile_size < chan.attr.subbuf_size)) {
                WARN("Tracefile size rounded up from (%" PRIu64 ") to subbuffer size (%" PRIu64 ")",
@@ -248,6 +269,7 @@ static int enable_channel(char *session_name)
                        switch (-ret) {
                        case LTTNG_ERR_KERN_CHAN_EXIST:
                        case LTTNG_ERR_UST_CHAN_EXIST:
+                       case LTTNG_ERR_CHAN_EXIST:
                                WARN("Channel %s: %s (session %s)", channel_name,
                                                lttng_strerror(ret), session_name);
                                goto error;
@@ -259,8 +281,7 @@ static int enable_channel(char *session_name)
                        warn = 1;
                } else {
                        MSG("%s channel %s enabled for session %s",
-                                       opt_kernel ? "Kernel" : "UST", channel_name,
-                                       session_name);
+                                       get_domain_str(dom.type), channel_name, session_name);
                }
 
                /* Next event */
This page took 0.024705 seconds and 4 git commands to generate.