Tracing fixes:
- Fixes to the RTLA tooling. - A fix to a tp_printk overriding tp_printk_stop_on_boot on command line. -----BEGIN PGP SIGNATURE----- iIoEABYIADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCYgWtxxQccm9zdGVkdEBn b29kbWlzLm9yZwAKCRAp5XQQmuv6qsaaAQD+4lcpIRKdkfGb09xMlh8Gr8OvRoVb 5XAhzHVpETjGUAEAyIJAG+7Epw/St8FCSupNAEWTzGghjhoJhFblTd17jAg= =CCON -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
32f6c5d037
|
@ -19595,6 +19595,14 @@ F: Documentation/trace/timerlat-tracer.rst
|
|||
F: Documentation/trace/hwlat_detector.rst
|
||||
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
|
||||
M: Hu Haowen <src.res@email.cn>
|
||||
L: linux-doc-tw-discuss@lists.sourceforge.net
|
||||
|
|
|
@ -252,6 +252,10 @@ __setup("trace_clock=", set_trace_boot_clock);
|
|||
|
||||
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))
|
||||
tracepoint_printk = 1;
|
||||
return 1;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
NAME := rtla
|
||||
VERSION := 0.5
|
||||
# Follow the kernel version
|
||||
VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion)
|
||||
|
||||
# From libtracefs:
|
||||
# Makefiles suck: This macro sets a default value of $(2) for the
|
||||
|
@ -85,6 +86,7 @@ clean: doc_clean
|
|||
|
||||
tarball: clean
|
||||
rm -rf $(NAME)-$(VERSION) && mkdir $(NAME)-$(VERSION)
|
||||
echo $(VERSION) > $(NAME)-$(VERSION)/VERSION
|
||||
cp -r $(DIRS) $(FILES) $(NAME)-$(VERSION)
|
||||
mkdir $(NAME)-$(VERSION)/Documentation/
|
||||
cp -rp $(SRCTREE)/../../../Documentation/tools/rtla/* $(NAME)-$(VERSION)/Documentation/
|
||||
|
|
|
@ -750,6 +750,9 @@ void osnoise_put_context(struct osnoise_context *context)
|
|||
*/
|
||||
void osnoise_destroy_tool(struct osnoise_tool *top)
|
||||
{
|
||||
if (!top)
|
||||
return;
|
||||
|
||||
trace_instance_destroy(&top->trace);
|
||||
|
||||
if (top->context)
|
||||
|
|
|
@ -701,9 +701,9 @@ osnoise_hist_set_signals(struct osnoise_hist_params *params)
|
|||
int osnoise_hist_main(int argc, char *argv[])
|
||||
{
|
||||
struct osnoise_hist_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
struct trace_instance *trace;
|
||||
struct osnoise_tool *record;
|
||||
struct osnoise_tool *tool;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
|
@ -792,9 +792,8 @@ int osnoise_hist_main(int argc, char *argv[])
|
|||
out_hist:
|
||||
osnoise_free_histogram(tool->data);
|
||||
out_destroy:
|
||||
osnoise_destroy_tool(record);
|
||||
osnoise_destroy_tool(tool);
|
||||
if (params->trace_output)
|
||||
osnoise_destroy_tool(record);
|
||||
free(params);
|
||||
out_exit:
|
||||
exit(return_value);
|
||||
|
|
|
@ -483,9 +483,9 @@ static void osnoise_top_set_signals(struct osnoise_top_params *params)
|
|||
int osnoise_top_main(int argc, char **argv)
|
||||
{
|
||||
struct osnoise_top_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
struct trace_instance *trace;
|
||||
struct osnoise_tool *record;
|
||||
struct osnoise_tool *tool;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
|
@ -571,9 +571,8 @@ int osnoise_top_main(int argc, char **argv)
|
|||
|
||||
out_top:
|
||||
osnoise_free_top(tool->data);
|
||||
osnoise_destroy_tool(record);
|
||||
osnoise_destroy_tool(tool);
|
||||
if (params->trace_output)
|
||||
osnoise_destroy_tool(record);
|
||||
out_exit:
|
||||
exit(return_value);
|
||||
}
|
||||
|
|
|
@ -729,9 +729,9 @@ timerlat_hist_set_signals(struct timerlat_hist_params *params)
|
|||
int timerlat_hist_main(int argc, char *argv[])
|
||||
{
|
||||
struct timerlat_hist_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *tool = NULL;
|
||||
struct trace_instance *trace;
|
||||
struct osnoise_tool *record;
|
||||
struct osnoise_tool *tool;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
|
@ -813,9 +813,8 @@ int timerlat_hist_main(int argc, char *argv[])
|
|||
|
||||
out_hist:
|
||||
timerlat_free_histogram(tool->data);
|
||||
osnoise_destroy_tool(record);
|
||||
osnoise_destroy_tool(tool);
|
||||
if (params->trace_output)
|
||||
osnoise_destroy_tool(record);
|
||||
free(params);
|
||||
out_exit:
|
||||
exit(return_value);
|
||||
|
|
|
@ -521,9 +521,9 @@ timerlat_top_set_signals(struct timerlat_top_params *params)
|
|||
int timerlat_top_main(int argc, char *argv[])
|
||||
{
|
||||
struct timerlat_top_params *params;
|
||||
struct osnoise_tool *record = NULL;
|
||||
struct osnoise_tool *top = NULL;
|
||||
struct trace_instance *trace;
|
||||
struct osnoise_tool *record;
|
||||
struct osnoise_tool *top;
|
||||
int return_value = 1;
|
||||
int retval;
|
||||
|
||||
|
@ -609,9 +609,8 @@ int timerlat_top_main(int argc, char *argv[])
|
|||
|
||||
out_top:
|
||||
timerlat_free_top(top->data);
|
||||
osnoise_destroy_tool(record);
|
||||
osnoise_destroy_tool(top);
|
||||
if (params->trace_output)
|
||||
osnoise_destroy_tool(record);
|
||||
free(params);
|
||||
out_exit:
|
||||
exit(return_value);
|
||||
|
|
|
@ -20,14 +20,14 @@ int enable_tracer_by_name(struct tracefs_instance *inst, const char *tracer_name
|
|||
|
||||
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);
|
||||
if (retval < 0) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ void disable_tracer(struct tracefs_instance *inst)
|
|||
|
||||
retval = tracefs_tracer_set(inst, t);
|
||||
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)
|
|||
time_t duration;
|
||||
|
||||
duration = difftime(now, start_time);
|
||||
tm_info = localtime(&duration);
|
||||
tm_info = gmtime(&duration);
|
||||
|
||||
snprintf(output, output_size, "%3d %02d:%02d:%02d",
|
||||
tm_info->tm_yday,
|
||||
tm_info->tm_hour - 1,
|
||||
tm_info->tm_hour,
|
||||
tm_info->tm_min,
|
||||
tm_info->tm_sec);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue