From 95057847c7adfe3bc351ca61be77848dc91138b7 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Tue, 14 Jun 2016 18:43:02 -0400 Subject: [PATCH] Remove calibrate command from lttng CLI MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- src/bin/lttng/Makefile.am | 2 +- src/bin/lttng/command.h | 1 - src/bin/lttng/commands/calibrate.c | 265 ----------------------------- src/bin/lttng/lttng.c | 2 - src/common/mi-lttng.c | 49 +----- src/common/mi-lttng.h | 19 --- 6 files changed, 4 insertions(+), 334 deletions(-) delete mode 100644 src/bin/lttng/commands/calibrate.c diff --git a/src/bin/lttng/Makefile.am b/src/bin/lttng/Makefile.am index acd973b25..03aa31bd0 100644 --- a/src/bin/lttng/Makefile.am +++ b/src/bin/lttng/Makefile.am @@ -11,7 +11,7 @@ lttng_SOURCES = command.h conf.c conf.h commands/start.c \ commands/disable_events.c commands/enable_channels.c \ commands/disable_channels.c commands/add_context.c \ commands/set_session.c commands/version.c \ - commands/calibrate.c commands/view.c \ + commands/view.c \ commands/snapshot.c \ commands/save.c \ commands/load.c \ diff --git a/src/bin/lttng/command.h b/src/bin/lttng/command.h index 3ac61e1e4..b5c968d39 100644 --- a/src/bin/lttng/command.h +++ b/src/bin/lttng/command.h @@ -66,7 +66,6 @@ DECL_COMMAND(disable_channels); DECL_COMMAND(add_context); DECL_COMMAND(set_session); DECL_COMMAND(version); -DECL_COMMAND(calibrate); DECL_COMMAND(view); DECL_COMMAND(enable_consumer); DECL_COMMAND(disable_consumer); diff --git a/src/bin/lttng/commands/calibrate.c b/src/bin/lttng/commands/calibrate.c deleted file mode 100644 index 95a03d212..000000000 --- a/src/bin/lttng/commands/calibrate.c +++ /dev/null @@ -1,265 +0,0 @@ -/* - * Copyright (C) 2011 - David Goulet - * Copyright (C) 2011 - Mathieu Desnoyers - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License, version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#define _LGPL_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "../command.h" - -static int opt_event_type; -static int opt_kernel; -static int opt_userspace; - -enum { - OPT_HELP = 1, - OPT_TRACEPOINT, - OPT_MARKER, - OPT_PROBE, - OPT_FUNCTION, - OPT_FUNCTION_ENTRY, - OPT_SYSCALL, - OPT_USERSPACE, - OPT_KERNEL, - OPT_LIST_OPTIONS, -}; - -static struct lttng_handle *handle; -static struct mi_writer *writer; - -static struct poptOption long_options[] = { - /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */ - {"help", 'h', POPT_ARG_NONE, 0, OPT_HELP, 0, 0}, - {"kernel", 'k', POPT_ARG_NONE, 0, OPT_KERNEL, 0, 0}, - {"userspace", 'u', POPT_ARG_NONE, 0, OPT_USERSPACE, 0, 0}, - {"function", 0, POPT_ARG_NONE, 0, OPT_FUNCTION, 0, 0}, - {"list-options", 0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, NULL}, - {0, 0, 0, 0, 0, 0, 0} -}; - -/* - * Calibrate LTTng. - * - * Returns a CMD_* error. - */ -static int calibrate_lttng(void) -{ - int ret = CMD_SUCCESS; - struct lttng_domain dom; - struct lttng_calibrate calibrate; - - memset(&dom, 0, sizeof(dom)); - memset(&calibrate, 0, sizeof(calibrate)); - - /* Create lttng domain */ - if (opt_kernel) { - dom.type = LTTNG_DOMAIN_KERNEL; - } else if (opt_userspace) { - dom.type = LTTNG_DOMAIN_UST; - } else { - /* Checked by the caller. */ - assert(0); - } - - handle = lttng_create_handle(NULL, &dom); - if (handle == NULL) { - ret = CMD_ERROR; - goto error; - } - - switch (opt_event_type) { - case LTTNG_EVENT_TRACEPOINT: - DBG("Calibrating kernel tracepoints"); - break; - case LTTNG_EVENT_PROBE: - DBG("Calibrating kernel probes"); - break; - case LTTNG_EVENT_FUNCTION: - DBG("Calibrating kernel functions"); - calibrate.type = LTTNG_CALIBRATE_FUNCTION; - ret = lttng_calibrate(handle, &calibrate); - if (ret < 0) { - ERR("%s", lttng_strerror(ret)); - goto error; - } - MSG("%s calibration done", opt_kernel ? "Kernel" : "UST"); - break; - case LTTNG_EVENT_FUNCTION_ENTRY: - DBG("Calibrating kernel function entry"); - break; - case LTTNG_EVENT_SYSCALL: - DBG("Calibrating kernel syscall"); - break; - default: - ret = CMD_UNDEFINED; - goto error; - } - - if (lttng_opt_mi) { - assert(writer); - ret = mi_lttng_calibrate(writer, &calibrate); - if (ret) { - ret = CMD_ERROR; - goto error; - } - } - -error: - lttng_destroy_handle(handle); - - return ret; -} - -/* - * Calibrate LTTng tracer. - * - * Returns a CMD_* error. - */ -int cmd_calibrate(int argc, const char **argv) -{ - int opt, ret = CMD_SUCCESS, command_ret = CMD_SUCCESS, success = 1; - static poptContext pc; - - pc = poptGetContext(NULL, argc, argv, long_options, 0); - poptReadDefaultConfig(pc, 0); - - /* Default event type */ - opt_event_type = LTTNG_EVENT_FUNCTION; - - while ((opt = poptGetNextOpt(pc)) != -1) { - switch (opt) { - case OPT_HELP: - SHOW_HELP(); - goto end; - case OPT_TRACEPOINT: - ret = CMD_UNDEFINED; - goto end; - case OPT_MARKER: - ret = CMD_UNDEFINED; - goto end; - case OPT_PROBE: - ret = CMD_UNDEFINED; - break; - case OPT_FUNCTION: - opt_event_type = LTTNG_EVENT_FUNCTION; - break; - case OPT_FUNCTION_ENTRY: - ret = CMD_UNDEFINED; - goto end; - case OPT_SYSCALL: - ret = CMD_UNDEFINED; - goto end; - case OPT_USERSPACE: - opt_userspace = 1; - break; - case OPT_KERNEL: - opt_kernel = 1; - break; - case OPT_LIST_OPTIONS: - list_cmd_options(stdout, long_options); - goto end; - default: - ret = CMD_UNDEFINED; - goto end; - } - } - - ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace); - if (ret) { - ret = CMD_ERROR; - goto end; - } - - /* Mi check */ - if (lttng_opt_mi) { - writer = mi_lttng_writer_create(fileno(stdout), lttng_opt_mi); - if (!writer) { - ret = -LTTNG_ERR_NOMEM; - goto end; - } - - /* Open command element */ - ret = mi_lttng_writer_command_open(writer, - mi_lttng_element_command_calibrate); - if (ret) { - ret = CMD_ERROR; - goto end; - } - - /* Open output element */ - ret = mi_lttng_writer_open_element(writer, - mi_lttng_element_command_output); - if (ret) { - ret = CMD_ERROR; - goto end; - } - } - - command_ret = calibrate_lttng(); - if (command_ret) { - success = 0; - } - - /* Mi closing */ - if (lttng_opt_mi) { - /* Close output element */ - ret = mi_lttng_writer_close_element(writer); - if (ret) { - ret = CMD_ERROR; - goto end; - } - - /* Success ? */ - ret = mi_lttng_writer_write_element_bool(writer, - mi_lttng_element_command_success, success); - if (ret) { - ret = CMD_ERROR; - goto end; - } - - /* Command element close */ - ret = mi_lttng_writer_command_close(writer); - if (ret) { - ret = CMD_ERROR; - goto end; - } - } - -end: - /* Mi clean-up */ - if (writer && mi_lttng_writer_destroy(writer)) { - /* Preserve original error code */ - ret = ret ? ret : -LTTNG_ERR_MI_IO_FAIL; - } - - /* Overwrite ret if an error occurred during calibrate_lttng() */ - ret = command_ret ? command_ret : ret; - - poptFreeContext(pc); - return ret; -} diff --git a/src/bin/lttng/lttng.c b/src/bin/lttng/lttng.c index 95afcb770..1aa153001 100644 --- a/src/bin/lttng/lttng.c +++ b/src/bin/lttng/lttng.c @@ -66,7 +66,6 @@ static struct option long_options[] = { /* First level command */ static struct cmd_struct commands[] = { { "add-context", cmd_add_context}, - { "calibrate", cmd_calibrate}, { "create", cmd_create}, { "destroy", cmd_destroy}, { "disable-channel", cmd_disable_channels}, @@ -281,7 +280,6 @@ static void show_basic_help(void) puts(" untrack " CONFIG_CMD_DESCR_UNTRACK); puts(""); puts("Miscellaneous:"); - puts(" calibrate " CONFIG_CMD_DESCR_CALIBRATE); puts(" help " CONFIG_CMD_DESCR_HELP); puts(" version " CONFIG_CMD_DESCR_VERSION); puts(" view " CONFIG_CMD_DESCR_VIEW); diff --git a/src/common/mi-lttng.c b/src/common/mi-lttng.c index 57678c1b8..a15bde4e3 100644 --- a/src/common/mi-lttng.c +++ b/src/common/mi-lttng.c @@ -47,7 +47,6 @@ LTTNG_HIDDEN const char * const mi_lttng_schema_version_value = XSTR(MI_SCHEMA_M const char * const mi_lttng_element_command = "command"; const char * const mi_lttng_element_command_action = "snapshot_action"; const char * const mi_lttng_element_command_add_context = "add-context"; -const char * const mi_lttng_element_command_calibrate = "calibrate"; const char * const mi_lttng_element_command_create = "create"; const char * const mi_lttng_element_command_destroy = "destroy"; const char * const mi_lttng_element_command_disable_channel = "disable-channel"; @@ -167,10 +166,6 @@ const char * const mi_lttng_loglevel_type_range = "RANGE"; const char * const mi_lttng_loglevel_type_single = "SINGLE"; const char * const mi_lttng_loglevel_type_unknown = "UNKNOWN"; -/* String related to lttng_calibrate */ -const char * const mi_lttng_element_calibrate = "calibrate"; -const char * const mi_lttng_element_calibrate_function = "FUNCTION"; - /* String related to a lttng_snapshot_output */ const char * const mi_lttng_element_snapshot_ctrl_url = "ctrl_url"; const char * const mi_lttng_element_snapshot_data_url = "data_url"; @@ -188,6 +183,9 @@ const char * const mi_lttng_context_type_perf_cpu_counter; const char * const mi_lttng_context_type_perf_thread_counter; const char * const mi_lttng_element_track_untrack_pid_target; const char * const mi_lttng_element_track_untrack_targets; +const char * const mi_lttng_element_calibrate; +const char * const mi_lttng_element_calibrate_function; +const char * const mi_lttng_element_command_calibrate; /* This is a merge of jul loglevel and regular loglevel * Those should never overlap by definition @@ -436,22 +434,6 @@ const char *mi_lttng_buffertype_string(enum lttng_buffer_type value) } } -LTTNG_HIDDEN -const char *mi_lttng_calibratetype_string(enum lttng_calibrate_type val) -{ - const char *ret; - - switch (val) { - case LTTNG_CALIBRATE_FUNCTION: - ret = mi_lttng_element_calibrate_function; - break; - default: - ret = mi_lttng_element_empty; - break; - } - return ret; -} - LTTNG_HIDDEN struct mi_writer *mi_lttng_writer_create(int fd_output, int mi_output_type) { @@ -1425,31 +1407,6 @@ end: return ret; } -LTTNG_HIDDEN -int mi_lttng_calibrate(struct mi_writer *writer, - struct lttng_calibrate *calibrate) -{ - int ret; - - /* Open calibrate element */ - ret = mi_lttng_writer_open_element(writer, mi_lttng_element_calibrate); - if (ret) { - goto end; - } - - /* Calibration type */ - ret = mi_lttng_writer_write_element_string(writer, config_element_type, - mi_lttng_calibratetype_string(calibrate->type)); - if (ret) { - goto end; - } - - /* Closing calibrate element */ - ret = mi_lttng_writer_close_element(writer); -end: - return ret; -} - LTTNG_HIDDEN int mi_lttng_perf_counter_context(struct mi_writer *writer, struct lttng_event_perf_counter_ctx *perf_context) diff --git a/src/common/mi-lttng.h b/src/common/mi-lttng.h index cf5f468f7..e21080024 100644 --- a/src/common/mi-lttng.h +++ b/src/common/mi-lttng.h @@ -53,7 +53,6 @@ struct mi_lttng_version { extern const char * const mi_lttng_element_command; extern const char * const mi_lttng_element_command_action; extern const char * const mi_lttng_element_command_add_context; -extern const char * const mi_lttng_element_command_calibrate; extern const char * const mi_lttng_element_command_create; extern const char * const mi_lttng_element_command_destroy; extern const char * const mi_lttng_element_command_disable_channel; @@ -173,10 +172,6 @@ extern const char * const mi_lttng_loglevel_type_range; extern const char * const mi_lttng_loglevel_type_single; extern const char * const mi_lttng_loglevel_type_unknown; -/* Sting related to lttng_calibrate */ -extern const char * const mi_lttng_element_calibrate; -extern const char * const mi_lttng_element_calibrate_function; - /* String related to a lttng_snapshot */ extern const char * const mi_lttng_element_snapshot_ctrl_url; extern const char * const mi_lttng_element_snapshot_data_url; @@ -194,7 +189,6 @@ const char *mi_lttng_logleveltype_string(enum lttng_loglevel_type value); const char *mi_lttng_eventfieldtype_string(enum lttng_event_field_type value); const char *mi_lttng_domaintype_string(enum lttng_domain_type value); const char *mi_lttng_buffertype_string(enum lttng_buffer_type value); -const char *mi_lttng_calibratetype_string(enum lttng_calibrate_type val); /* * Create an instance of a machine interface writer. @@ -654,19 +648,6 @@ int mi_lttng_targets_open(struct mi_writer *writer); */ int mi_lttng_pid_target(struct mi_writer *writer, pid_t pid, int is_open); -/* - * Machine interface for struct lttng_calibrate. - * - * writer An instance of a machine interface writer. - * - * calibrate A lttng_calibrate instance. - * - * Returns zero if the element's value could be written. - * Negative values indicate an error. - */ -int mi_lttng_calibrate(struct mi_writer *writer, - struct lttng_calibrate *calibrate); - /* * Machine interface of a context. * -- 2.34.1