Commit 32f6c5d0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'trace-v5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace

Pull tracing fixes from Steven Rostedt:

 - Fixes to the RTLA tooling

 - A fix to a tp_printk overriding tp_printk_stop_on_boot on the
   command line

* tag 'trace-v5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  tracing: Fix tp_printk option related with tp_printk_stop_on_boot
  MAINTAINERS: Add RTLA entry
  rtla: Fix segmentation fault when failing to enable -t
  rtla/trace: Error message fixup
  rtla/utils: Fix session duration parsing
  rtla: Follow kernel version
parents f1baf68e 3203ce39
...@@ -19595,6 +19595,14 @@ F: Documentation/trace/timerlat-tracer.rst ...@@ -19595,6 +19595,14 @@ F: Documentation/trace/timerlat-tracer.rst
F: Documentation/trace/hwlat_detector.rst F: Documentation/trace/hwlat_detector.rst
F: arch/*/kernel/trace.c F: arch/*/kernel/trace.c
Real-time Linux Analysis (RTLA) tools
M: Daniel Bristot de Oliveira <bristot@kernel.org>
M: Steven Rostedt <rostedt@goodmis.org>
L: linux-trace-devel@vger.kernel.org
S: Maintained
F: Documentation/tools/rtla/
F: tools/tracing/rtla/
TRADITIONAL CHINESE DOCUMENTATION TRADITIONAL CHINESE DOCUMENTATION
M: Hu Haowen <src.res@email.cn> M: Hu Haowen <src.res@email.cn>
L: linux-doc-tw-discuss@lists.sourceforge.net L: linux-doc-tw-discuss@lists.sourceforge.net
......
...@@ -252,6 +252,10 @@ __setup("trace_clock=", set_trace_boot_clock); ...@@ -252,6 +252,10 @@ __setup("trace_clock=", set_trace_boot_clock);
static int __init set_tracepoint_printk(char *str) static int __init set_tracepoint_printk(char *str)
{ {
/* Ignore the "tp_printk_stop_on_boot" param */
if (*str == '_')
return 0;
if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0)) if ((strcmp(str, "=0") != 0 && strcmp(str, "=off") != 0))
tracepoint_printk = 1; tracepoint_printk = 1;
return 1; return 1;
......
NAME := rtla NAME := rtla
VERSION := 0.5 # Follow the kernel version
VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion)
# From libtracefs: # From libtracefs:
# Makefiles suck: This macro sets a default value of $(2) for the # Makefiles suck: This macro sets a default value of $(2) for the
...@@ -85,6 +86,7 @@ clean: doc_clean ...@@ -85,6 +86,7 @@ clean: doc_clean
tarball: clean tarball: clean
rm -rf $(NAME)-$(VERSION) && mkdir $(NAME)-$(VERSION) rm -rf $(NAME)-$(VERSION) && mkdir $(NAME)-$(VERSION)
echo $(VERSION) > $(NAME)-$(VERSION)/VERSION
cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION) cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
mkdir $(NAME)-$(VERSION)/Documentation/ mkdir $(NAME)-$(VERSION)/Documentation/
cp -rp $(SRCTREE)/../../../Documentation/tools/rtla/* $(NAME)-$(VERSION)/Documentation/ cp -rp $(SRCTREE)/../../../Documentation/tools/rtla/* $(NAME)-$(VERSION)/Documentation/
......
...@@ -750,6 +750,9 @@ void osnoise_put_context(struct osnoise_context *context) ...@@ -750,6 +750,9 @@ void osnoise_put_context(struct osnoise_context *context)
*/ */
void osnoise_destroy_tool(struct osnoise_tool *top) void osnoise_destroy_tool(struct osnoise_tool *top)
{ {
if (!top)
return;
trace_instance_destroy(&top->trace); trace_instance_destroy(&top->trace);
if (top->context) if (top->context)
......
...@@ -701,9 +701,9 @@ osnoise_hist_set_signals(struct osnoise_hist_params *params) ...@@ -701,9 +701,9 @@ osnoise_hist_set_signals(struct osnoise_hist_params *params)
int osnoise_hist_main(int argc, char *argv[]) int osnoise_hist_main(int argc, char *argv[])
{ {
struct osnoise_hist_params *params; struct osnoise_hist_params *params;
struct osnoise_tool *record = NULL;
struct osnoise_tool *tool = NULL;
struct trace_instance *trace; struct trace_instance *trace;
struct osnoise_tool *record;
struct osnoise_tool *tool;
int return_value = 1; int return_value = 1;
int retval; int retval;
...@@ -792,9 +792,8 @@ int osnoise_hist_main(int argc, char *argv[]) ...@@ -792,9 +792,8 @@ int osnoise_hist_main(int argc, char *argv[])
out_hist: out_hist:
osnoise_free_histogram(tool->data); osnoise_free_histogram(tool->data);
out_destroy: out_destroy:
osnoise_destroy_tool(tool);
if (params->trace_output)
osnoise_destroy_tool(record); osnoise_destroy_tool(record);
osnoise_destroy_tool(tool);
free(params); free(params);
out_exit: out_exit:
exit(return_value); exit(return_value);
......
...@@ -483,9 +483,9 @@ static void osnoise_top_set_signals(struct osnoise_top_params *params) ...@@ -483,9 +483,9 @@ static void osnoise_top_set_signals(struct osnoise_top_params *params)
int osnoise_top_main(int argc, char **argv) int osnoise_top_main(int argc, char **argv)
{ {
struct osnoise_top_params *params; struct osnoise_top_params *params;
struct osnoise_tool *record = NULL;
struct osnoise_tool *tool = NULL;
struct trace_instance *trace; struct trace_instance *trace;
struct osnoise_tool *record;
struct osnoise_tool *tool;
int return_value = 1; int return_value = 1;
int retval; int retval;
...@@ -571,9 +571,8 @@ int osnoise_top_main(int argc, char **argv) ...@@ -571,9 +571,8 @@ int osnoise_top_main(int argc, char **argv)
out_top: out_top:
osnoise_free_top(tool->data); osnoise_free_top(tool->data);
osnoise_destroy_tool(tool);
if (params->trace_output)
osnoise_destroy_tool(record); osnoise_destroy_tool(record);
osnoise_destroy_tool(tool);
out_exit: out_exit:
exit(return_value); exit(return_value);
} }
...@@ -729,9 +729,9 @@ timerlat_hist_set_signals(struct timerlat_hist_params *params) ...@@ -729,9 +729,9 @@ timerlat_hist_set_signals(struct timerlat_hist_params *params)
int timerlat_hist_main(int argc, char *argv[]) int timerlat_hist_main(int argc, char *argv[])
{ {
struct timerlat_hist_params *params; struct timerlat_hist_params *params;
struct osnoise_tool *record = NULL;
struct osnoise_tool *tool = NULL;
struct trace_instance *trace; struct trace_instance *trace;
struct osnoise_tool *record;
struct osnoise_tool *tool;
int return_value = 1; int return_value = 1;
int retval; int retval;
...@@ -813,9 +813,8 @@ int timerlat_hist_main(int argc, char *argv[]) ...@@ -813,9 +813,8 @@ int timerlat_hist_main(int argc, char *argv[])
out_hist: out_hist:
timerlat_free_histogram(tool->data); timerlat_free_histogram(tool->data);
osnoise_destroy_tool(tool);
if (params->trace_output)
osnoise_destroy_tool(record); osnoise_destroy_tool(record);
osnoise_destroy_tool(tool);
free(params); free(params);
out_exit: out_exit:
exit(return_value); exit(return_value);
......
...@@ -521,9 +521,9 @@ timerlat_top_set_signals(struct timerlat_top_params *params) ...@@ -521,9 +521,9 @@ timerlat_top_set_signals(struct timerlat_top_params *params)
int timerlat_top_main(int argc, char *argv[]) int timerlat_top_main(int argc, char *argv[])
{ {
struct timerlat_top_params *params; struct timerlat_top_params *params;
struct osnoise_tool *record = NULL;
struct osnoise_tool *top = NULL;
struct trace_instance *trace; struct trace_instance *trace;
struct osnoise_tool *record;
struct osnoise_tool *top;
int return_value = 1; int return_value = 1;
int retval; int retval;
...@@ -609,9 +609,8 @@ int timerlat_top_main(int argc, char *argv[]) ...@@ -609,9 +609,8 @@ int timerlat_top_main(int argc, char *argv[])
out_top: out_top:
timerlat_free_top(top->data); timerlat_free_top(top->data);
osnoise_destroy_tool(top);
if (params->trace_output)
osnoise_destroy_tool(record); osnoise_destroy_tool(record);
osnoise_destroy_tool(top);
free(params); free(params);
out_exit: out_exit:
exit(return_value); exit(return_value);
......
...@@ -20,14 +20,14 @@ int enable_tracer_by_name(struct tracefs_instance *inst, const char *tracer_name ...@@ -20,14 +20,14 @@ int enable_tracer_by_name(struct tracefs_instance *inst, const char *tracer_name
tracer = TRACEFS_TRACER_CUSTOM; tracer = TRACEFS_TRACER_CUSTOM;
debug_msg("enabling %s tracer\n", tracer_name); debug_msg("Enabling %s tracer\n", tracer_name);
retval = tracefs_tracer_set(inst, tracer, tracer_name); retval = tracefs_tracer_set(inst, tracer, tracer_name);
if (retval < 0) { if (retval < 0) {
if (errno == ENODEV) if (errno == ENODEV)
err_msg("tracer %s not found!\n", tracer_name); err_msg("Tracer %s not found!\n", tracer_name);
err_msg("failed to enable the tracer %s\n", tracer_name); err_msg("Failed to enable the %s tracer\n", tracer_name);
return -1; return -1;
} }
...@@ -44,7 +44,7 @@ void disable_tracer(struct tracefs_instance *inst) ...@@ -44,7 +44,7 @@ void disable_tracer(struct tracefs_instance *inst)
retval = tracefs_tracer_set(inst, t); retval = tracefs_tracer_set(inst, t);
if (retval < 0) if (retval < 0)
err_msg("oops, error disabling tracer\n"); err_msg("Oops, error disabling tracer\n");
} }
/* /*
......
...@@ -77,11 +77,11 @@ void get_duration(time_t start_time, char *output, int output_size) ...@@ -77,11 +77,11 @@ void get_duration(time_t start_time, char *output, int output_size)
time_t duration; time_t duration;
duration = difftime(now, start_time); duration = difftime(now, start_time);
tm_info = localtime(&duration); tm_info = gmtime(&duration);
snprintf(output, output_size, "%3d %02d:%02d:%02d", snprintf(output, output_size, "%3d %02d:%02d:%02d",
tm_info->tm_yday, tm_info->tm_yday,
tm_info->tm_hour - 1, tm_info->tm_hour,
tm_info->tm_min, tm_info->tm_min,
tm_info->tm_sec); tm_info->tm_sec);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment