X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng%2Fcommands%2Fcalibrate.c;h=1219685e7515ab8ca5541c3c8f9222a53c6e602d;hp=76227e27e20f4bd3228a46ea40b0f72c7cfb44af;hb=5edd7e09e892604b00ca937c0f1bc887bb5a842c;hpb=048e21597c85bd22503e7971fad045b607905d38 diff --git a/lttng/commands/calibrate.c b/lttng/commands/calibrate.c index 76227e27e..1219685e7 100644 --- a/lttng/commands/calibrate.c +++ b/lttng/commands/calibrate.c @@ -34,26 +34,29 @@ static int opt_event_type; static char *opt_kernel; -static char *opt_cmd_name; static int opt_pid_all; static int opt_userspace; +static char *opt_cmd_name; static pid_t opt_pid; enum { OPT_HELP = 1, - OPT_USERSPACE, OPT_TRACEPOINT, OPT_MARKER, OPT_PROBE, OPT_FUNCTION, OPT_FUNCTION_ENTRY, + OPT_SYSCALL, + OPT_USERSPACE, }; +static struct lttng_handle *handle; + 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_VAL, &opt_kernel, 1, 0, 0}, - {"userspace", 'u', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, 0, OPT_USERSPACE, 0, 0}, + {"userspace", 'u', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, &opt_cmd_name, OPT_USERSPACE, 0, 0}, {"all", 0, POPT_ARG_VAL, &opt_pid_all, 1, 0, 0}, {"pid", 'p', POPT_ARG_INT, &opt_pid, 0, 0, 0}, {"tracepoint", 0, POPT_ARG_NONE, 0, OPT_TRACEPOINT, 0, 0}, @@ -61,6 +64,7 @@ static struct poptOption long_options[] = { {"probe", 0, POPT_ARG_NONE, 0, OPT_PROBE, 0, 0}, {"function", 0, POPT_ARG_NONE, 0, OPT_FUNCTION, 0, 0}, {"function:entry", 0, POPT_ARG_NONE, 0, OPT_FUNCTION_ENTRY, 0, 0}, + {"syscall", 0, POPT_ARG_NONE, 0, OPT_SYSCALL, 0, 0}, {0, 0, 0, 0, 0, 0, 0} }; @@ -85,6 +89,7 @@ static void usage(FILE *ofp) fprintf(ofp, " Dynamic function entry/return probe.\n"); fprintf(ofp, " --function:entry symbol\n"); fprintf(ofp, " Function tracer event\n"); + fprintf(ofp, " --syscall System call eventl\n"); fprintf(ofp, " --marker User-space marker (deprecated)\n"); fprintf(ofp, "\n"); } @@ -105,6 +110,12 @@ static int calibrate_lttng(void) dom.type = LTTNG_DOMAIN_KERNEL; } + handle = lttng_create_handle(NULL, &dom); + if (handle == NULL) { + ret = -1; + goto end; + } + /* Kernel tracer action */ if (opt_kernel) { switch (opt_event_type) { @@ -117,11 +128,14 @@ static int calibrate_lttng(void) case LTTNG_EVENT_FUNCTION: DBG("Calibrating kernel functions"); calibrate.type = LTTNG_CALIBRATE_FUNCTION; - ret = lttng_calibrate(&dom, &calibrate); + ret = lttng_calibrate(handle, &calibrate); break; case LTTNG_EVENT_FUNCTION_ENTRY: DBG("Calibrating kernel function entry"); break; + case LTTNG_EVENT_SYSCALL: + DBG("Calibrating kernel syscall"); + break; default: ret = CMD_NOT_IMPLEMENTED; goto end; @@ -140,6 +154,8 @@ static int calibrate_lttng(void) goto end; } end: + lttng_destroy_handle(handle); + return ret; } @@ -165,10 +181,6 @@ int cmd_calibrate(int argc, const char **argv) usage(stderr); ret = CMD_SUCCESS; goto end; - case OPT_USERSPACE: - opt_userspace = 1; - opt_cmd_name = poptGetOptArg(pc); - break; case OPT_TRACEPOINT: ret = CMD_NOT_IMPLEMENTED; break; @@ -184,6 +196,12 @@ int cmd_calibrate(int argc, const char **argv) case OPT_FUNCTION_ENTRY: ret = CMD_NOT_IMPLEMENTED; break; + case OPT_SYSCALL: + ret = CMD_NOT_IMPLEMENTED; + break; + case OPT_USERSPACE: + opt_userspace = 1; + break; default: usage(stderr); ret = CMD_UNDEFINED;