*/
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");
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");
}
}
} 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 ")",
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;
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 */